Ubuntu Precise 12.04 x64 ボックスで Cloudera CDH 4.1 を使用しています。スムーズなインストールのために Cloudera Manager Free エディションを使用しました (自分で行うときに大まかなバンプが発生した後)。ただし、まだ Hive を動作させることはできません。これで、Hive QL コマンドを発行してテーブルを作成し、ローカル データ (例では未加工のテーブル) をロードできます。しかし、データを別のテーブル (適切な serde とストレージを持つテーブル) に挿入しようとすると、ローカル フォルダーのアクセス許可が原因で失敗します。
org.apache.hadoop.hive.ql.metadata.HiveException: java.io.IOException: Mkdirs failed to create file:/home/yaboulnaga/tmp/hive-scratch/hive_2012-11-25_19-22-21_486_4469575874587213091/_task_tmp.-ext-10002
at org.apache.hadoop.hive.ql.io.HiveFileFormatUtils.getHiveRecordWriter(HiveFileFormatUtils.java:237)
at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:477)
at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:709)
at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:557)
at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:566)
at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:566)
at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:566)
at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:566)
at org.apache.hadoop.hive.ql.exec.ExecMapper.close(ExecMapper.java:193)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:393)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:327)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
777 に chmod できるように、scratch フォルダーをホーム ディレクトリ内のフォルダーに移動しました (例外を参照)。私はそのための回避策を見つけることができませんでした.誰かがそれを正しく行う方法を教えてくれることを願っています. 過去数日間、Hive を動作させるための回避策を見つけていましたが、それは私のローカル マシン上にあります... EC2 で計画どおりに実行を開始したときに、自分の人生がどのようになるかさえ考えられません。
ありがとう!