続いて Hadoop/Spark Conference Japan 2016 の午後3コマ目のメモを公開。
今あらためて考えるHive ~ユースケースの広がりにより顕在化した課題と対応~ / 吉田 耕陽氏(NTTデータ)
- Hive の泥臭い話
- HiveQL の構文、 ORCFile, パラメタチューニング
- はじめに
- Hadoop 10 際の今年、 Hive は 8 歳。
- ユーザの割合、圧倒的。
- ここ 2,3 年で Hive も大幅に変化
- 分散処理エンジンが選択可能に
- Tez, Hive on MRv2, Spark
- カラムナフォーマットが利用可能
- Parquet, ORCFile
- さらに低レイテンシ実現へ
- Hive LLAP
- 進化はうれしいが日本語情報が少ない
- プログラミング Hive
- Hadoop Hacks
- 分散処理エンジンが選択可能に
- 近年みかけるようになってきた Hive の使い方
- 将来データ量・処理量が増大することを見越したスモールスタート
- すでに実績のあるHadoop基盤での処理開発・移行
- ということから、これまでと異なるケースに直面することも
- 入力テーブルが多い、個々のテーブルサイズは小〜大
- BIツールが直接 Hive にアクセスすることも。
- HiveQL 編
- Hive 利用の増加→新規エンジニア参画も増加→ RDMS と同じようにHiveQLを書いてしまう
- Hadoop Hacks の Hive 導入章が参考になる
- 散見するのは
- 無邪気な order by
- マルチインサートを使っていない問題
- こっそりと表現力が増している Hive
- CTE (Common Table Expression)
- いわゆる with 句
- サブクエリを極力排除することができる
- View だと metastore にアクセスが
- いわゆる with 句
- WINDOW 関数
- LATERAL VIEW + explode
- 配列の値を行に展開して引き延ばすことができる
- CTE (Common Table Expression)
- まとめ
- 一昔前はいちぶ MR 、Pig 併用といった処理も Hive で完結させやすい
- UDF が必要なケースも減ってる (Built-in-Functionお充実)
- HiveMall で機械学習の分野にも進出
- Hive 利用の増加→新規エンジニア参画も増加→ RDMS と同じようにHiveQLを書いてしまう
- パラメタチューニング編
- データが増える処理では注意が必要
- Hive は生まれた背景から処理の流れの中でデータが減っていくことを期待しているようなパラメータが多い
- Reducer数: HDFS上の入力データサイズ / hive.exec.reducers.bytes.per.reducer
- Hive は生まれた背景から処理の流れの中でデータが減っていくことを期待しているようなパラメータが多い
- データが増える処理では注意が必要
- ORCFile について
- 高速・高圧縮率のカラム志向ファイルフォーマット
- RDB のアイデアを持ち込んだ高速化の試み
- Oreducate Pushdown
- Stride毎にインデックスをもっている。インデックス情報から走査範囲に検索対象カラムがない場合はスキャンをスキップ
- テーブル設計がその効果に大きく影響
- where 句のフィルタ条件に利用されるカラムはソートされているほうがよい、など。
- 大量テーブルの非正規化+辞書圧縮の合わせ技
- 高圧縮率問題
- 教訓と小技
- ORCFile を利用した場合 HDFS 上でみえるファイルサイズは信用しない方がいい
- orcfiledump
- ORCFile のインデックス情報を確認できる
- SHOW CREATE TABLE
- テーブルの統計情報を確認できる
- orcfiledump
- ORCFile を利用した場合 HDFS 上でみえるファイルサイズは信用しない方がいい
- チューニングの考え方 (案)
- Hadoop が本来想定していたワークロードとのギャップを意識することがトラブル対処やチューニングにつながる
- その例がスライドに。
- Hadoop が本来想定していたワークロードとのギャップを意識することがトラブル対処やチューニングにつながる
- あらためて考えた Hive
- 様々なワークロードに対応?
- 最初から最後まで Hive で書くこともできなくは、ない。
- でもやっぱり難しくなった?
- 半分 Yes.
- Hadoop on SQL との棲み分けは?
- 性能要求がみたされるまでは Hive でよいのかも。見極めは難。
- 様々なワークロードに対応?
- まとめ
- Hive は進化し続けている
- Hive のポテンシャルを引き出し、ちょっと尖ったケースで活用したい場合は、従来 Hadoop が想定していたワークロードとギャップを意識しつつ適用可能性の検討、 POC から入りましょう。
資料埋め込みリンク
- 公開されているものはこちらに埋め込みリンクさえていただく所存。
Hadoop/Spark Hadoop Conference 2016 でとってきた他のエントリへのリンク
のちほどリンクを追加していく所存。
garagekidztweetz.hatenablog.com garagekidztweetz.hatenablog.com garagekidztweetz.hatenablog.com garagekidztweetz.hatenablog.com garagekidztweetz.hatenablog.com