cdh4->5 update苦労話
TRANSCRIPT
CDH4->5 UPDATE 苦労話
Cloudera World Tokyo 201511/10 2015
山田 雄 ネットビジネス本部
ディベロップメントデザインユニットアーキテクト1グループ
1.自己紹介2.UPDATE方法3.はまったポイント4.まとめ
本日のアジェンダ
◾️ 山田 雄(ヤマダ ユウ)
株式会社 リクルートライフスタイルネットビジネス本部アーキテクト 1Gデータ基盤 T
Twitter:@nii_yanBlog:イクジニアブログ
・ちょっと前までフリーランスエンジニア 縁があってリクルートライフスタイルにお世話になることになった。 ビックデータ、 Rubyが好き。
自己紹介
UPDATE方法
既存システム構成
RDB
File
ETL RDB
CDH4
CMをyum updateしてparcelでバーンってやれば
CDH5に出来るけど怖いので・・・
検証環境
RDB
File
ETL
RDB
CDH4
CDH5ETL
distcp
RDB
• distcpってなに?⇨クラスタ間でデータ同期をできる rsyncのようなものです。 差分更新出来ます。
• どんなプロトコル使えるの?⇨hftpとか、webhdfsとか、 hdfsとか。
• 帯域制限出来るの?。⇨bandwidthオプションあります。
• なんか注意点は?⇨異なるバージョン間でやるときは crcchek方式違うことがあるので、
skipcrcchekオプション使いましょう。
distcp豆知識
はまったポイント
HBaseのデータコピーが辛い・・・
• HBaseのデータをクラスタ間でコピーするコマンドが CDH4と5の間では使えなかった。
⇨Hiveのテーブルに 1度 loadしてから distcpすることで対応。
HBaseのデータがコピー出来ない問題
Hiveが信用ならない・・・
• Left outer joinする際に sub query使うと、 selectしたのと違うカラムが抽出される (HIVE-9613)
⇨left outer joinする度に別名を使うようにすると回避出来る。 (CDH5.4.3までは BUGの再現を確認。それ以降は未確認)
Hiveカラムずれ問題
• 以下の条件が揃う際に where句が効かない (CDH5.4.3以降は修正済み )– 4つ以上のテーブルを left outer joinでつなぐ– 複数の keyで joinする (aidと bidとか )– 複数の keyの joinを入れ子にする。 (aidで joinの後に bidで joinしてから aidで joinの様に )
– どこかの on句に keyの join以外の条件を追加– 入れ子にした後のテーブルのカラムで where句を生成
⇨keyの joinの順番を変える事で対応
Hive where句効かない問題
Oozieの変化についていけない・・・
• workflowのフォーマットが変わった。新しいフォーマットに移行すると、設定していたパラメータなど消える。⇨とりあえず旧フォーマットでも使えるので、そのままに。
• workflowの import,export機能がなくなった。⇨なくなった・・・ CDH5で復活するかも??
• Hiveの jobで HiveQLが書いてあるファイル内の hiveconfが使えなくなった。
⇨hivevarにするか、workflowのパラメータで設定。
Oozieのworkflowが色々変わった
CDHの UPDATEが早い
まとめ
UPDATEする際はきちんと検証しましょう
WE AREHIRING!!
リクリートライフスタイルでは一緒に働く仲間を募集しています。http://engineer.recruit-lifestyle.co.jp/recruiting/
ご清聴ありがとうございました