Hive on Tezを試した
HDP2.1の頃のTezはまだ使わないほうが良いよと言われたけどHDP2.3になってdefaultになっていたので試してみた。
Tezのバージョンは0.7系です。
クエリはこんな感じ
FROM src INSERT OVERWRITE TABLE hoge PARTITION ... SELECT ... WHERE ... INSERT OVERWRITE TABLE piyo PARTITION ... SELECT ... WHERE ...
DAG Countersが下記のようになっていたのでinputのレコード件数が約77億で、データ量は2.7TBといったところ。実行時間は約11分だった。
ちなみにMapReduceの場合は3段のジョブになりmap数がそれぞれ、9867, 1603, 1618で実行時間は約15分だった。
kuradoのグラフは以下のような感じになっていて最初の山がTezでその後がMapReduceです。
Tezだとネットワークを結構使っていてここがボトルネックになっているのかも
というわけで今のところの僕のユースケースだとTezにしたからといって劇的に早くなるわけではなさそう。
Tezを使おうとしている部分は定期的に実行するバッチで、そこにそんなに複雑なクエリは無いというのもあります。
Tezの運用周りわからないのとshibのstatusボタンが効かなくなること https://github.com/tagomoris/shib/issues/46 を考えるとMapReduceでも良くね?みたいな気持ちも若干あるけど、まあHDP2.3でdefaultなので使っていくつもりではあります。