2014年11月26日水曜日

AWS-EC2へのHadoop+Hiveインストールではまったところ

いろいろハマったけれど、ちゃんと公式ドキュメントを読んでその通りにインストールするのが大事。

Hadoop サンプル実行失敗

下記のようなメッセージが表示され一向に処理が進まない
ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0

/etc/hosts の 127.0.0.1 の行にec2のホスト名を追加することで解決した


Hive関連


基本はドキュメント通りに。
http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/cdh5ig_hive_installation.html

metastoreの設定には注意

デフォルトのderbyではうまく動作しなかったため、metastoreにはMySQLを使用した。
またmetastoreのスキーマはドキュメントでは hive-schema-0.12.0.mysql.sql だが hive-schema-0.13.0.mysql.sql を使用する。(0.12.0だと動かなかった)

SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/hive-schema-0.13.0.mysql.sql;

Hive-JSON-Serdeを使う場合の注意

rcongiu/Hive-JSON-Serde を使うと最新のHiveに対応していなかった。
最新版に対応してくれている sheetaldolas/Hive-JSON-Serde の json-serde-1.1.9.8 を使うことで解決した。

https://github.com/sheetaldolas/Hive-JSON-Serde

DDL実行時エラーへの対処

create tableを実行すると下記のようなエラーが発生した。
Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=hive, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

下記コマンドで /user の書き込みを可能にして対処
sudo su hdfs -c 'hadoop fs -chmod 777 /user'