【问题标题】:Creating External Table in Hive from Spark从 Spark 在 Hive 中创建外部表
【发布时间】:2016-04-15 16:33:02
【问题描述】:

我在尝试从 Spark 在 Hive 中创建外部表并保存内容时遇到错误。

 The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw-

我什至尝试将 /tmp/hive 文件夹的权限设置为 chmod 777 但没有成功。

【问题讨论】:

标签: apache-spark hive spark-hive


【解决方案1】:

您在授予权限方面可能是错误的,因为我认为您授予了本地 /tmp/hive 目录的权限,但您应该授予 HDFS 中的 /tmp/hive 权限

hadoop fs -chmod 777 /tmp/hive

【讨论】:

  • 我已经这样做了,并且还完全控制了 /tmp/hive 文件夹,当我从 IDE 以本地模式运行 Spark 时,该文件夹正在创建我安装了 eclipse 的位置
【解决方案2】:

如果您首先使用 hdfs、cfs 或本地文件系统,请检查 hive-site.xml。

对于cfs,您必须使用sudo dse hadoop fs -chmod 777 /tmp/hive

对于 hdfs,您必须使用 sudo hdfs dfs -chmod 777 /tmp/hivesudo hadoop fs -chmod 777 /tmp/hive

我猜是本地的,你已经照顾好了。

【讨论】:

  • Hive 仓库的位置是 /apps/hive/warehouse 但是 /tmp/hive 文件夹也在我安装了 eclipse 的驱动器中创建
  • 在你的scala代码中设置这个参数,然后在创建spark上下文时设置“spark.eventLog.dir”,并将它指向某个适当的目录。参考spark.apache.org/docs/latest/configuration.html
【解决方案3】:

设置暂存目录的更好方法是 hive-site.xml 中的 /user/${username}/tmp/hive。这样,所有查询详细信息都将写入提交的用户临时目录。在这种情况下,您不需要更改临时目录的权限。否则全局暂存目录应该对所有用户都是可写的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多