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なので使っていくつもりではあります。