うちで運用しているPresto + HivemetastoreのシステムでPrestoを0.174以上に上げてトラブったのでメモ書き。
うちで運用しているシステムっていうのはこれ => https://www.slideshare.net/techblogyahoo/teradata-prestodb
2020/02/16 追記
v330のドキュメントからはHive metastoreのCache周りの設定について記述が追加されました。
TL; DR
Presto 0.174でHivemetastoreに対するキャッシュがデフォルトで無効化されており PrestoのバージョンアップによりHivemetastoreへのリクエストが増えてしまいHivemetastoreを落としてしまった。
バージョンアップ前でも結構ギリギリだったやつがリクエスト増えたせいでHiveサーバーのキャパシティを超えてしまった。
対策
Hive metadataのキャッシュを再度有効化するにはhive.metastore-cache-ttl
と hive.metastore-refresh-interval
のパラメータを有効にする必要がある。
ただし、これらのパラメータはドキュメントには記載されていない。
presto/HiveClientConfig.java at ba8627aa260c96fefdc9e5f6069f4b86d0b3d45b · prestodb/presto
今回トラブったおかげでこのパラメータのデフォルト値が書かれているクラスのコードを読んだが、 他にもドキュメントに記載されてないパラメータがいくつかあったので改めてコードを読み直したい。
とりあえず、今回のトラブル関わったであろうパラメータ2つについては、ドキュメントに記載して欲しかったのでPRを送っておいた。
Add documentation for Hivemetastore settings by yuokada · Pull Request #9836 · prestodb/presto