1

我在 Ubuntu Precise 12.04 x64 机器上使用 Cloudera CDH 4.1。我使用 Cloudera Manager 免费版进行了顺利安装(在我自己安装时遇到了一些困难)。但是,我仍然无法让 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)

我已将暂存文件夹移动到我的主目录中的一个文件夹(如异常所示),以便我可以将其 chmod 为 777。但是,子目录仍归 hive:hive 所有,并且 mapred:hadoop 无法写入它们。我没有找到任何解决方法,我希望有人能告诉我如何正确地做。在过去的几天里,我一直在寻找解决方法来让 Hive 工作,而且那是在我的本地机器上......我什至无法想象当我按计划在 EC2 上开始运行它时我的生活会是怎样。

谢谢各位!

4

1 回答 1

0

我遇到了同样的问题,正在使用 cloudera udacity VM。我可以创建一个表,从外部文件将数据加载到该表中,然后从表名中选择 *,就是这样。其他一切都失败了,甚至从表名中选择计数(1),从表名中选择 col1 等等。 . 使用了get同样的异常,mkdirs在-------------------创建文件失败

我注销,然后以 sudo hive 身份重新登录,突然之间,一切都像魅力一样。

希望这可以帮助 !

于 2014-12-20T14:57:32.907 回答