【问题标题】:Error applying authorization policy on hive configuration: Couldn't create directory ${system:java.io.tmpdir}\${hive.session.id}_resources在配置单元配置上应用授权策略时出错:无法创建目录 ${system:java.io.tmpdir}\${hive.session.id}_resources
【发布时间】:2017-07-30 03:14:39
【问题描述】:

我在 Windows 上运行 Hadoop 3.0.0-alpha1 并在其中添加了 Hive 2.1.1。当我尝试使用 hive 命令打开蜂巢直线时,出现错误:

Error applying authorization policy on hive configuration: 
Couldn't create directory ${system:java.io.tmpdir}\${hive.session.id}_resources

怎么了?

我将mysql 作为 Hive 的元存储运行,并在 HDFS 中添加了所需的文件:

hadoop fs -mkdir /user/hive
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -mkdir /tmp

之后我更改了权限:

hadoop fs -chmod 777 /user/hive
hadoop fs -chmod 777 /user/hive/warehouse
hadoop fs -chmod 777 /tmp

YARNDFS 守护程序以及 mysql 正在运行,mysql jdbc-driver 已知适用于 hadoop 和 hive。

【问题讨论】:

  • 查看 Hive 文档关于“配置属性”cwiki.apache.org/confluence/display/Hive/… 尤其是 hive.exec.scratchdir 和 3+“scratchdir”道具。
  • 还要记住java.io.tmpdir是一个本地目录——纯Java代码不能使用HDFS!

标签: hadoop hive hadoop3


【解决方案1】:

在您的 hive-site.xml

中替换此特定配置
<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>

替换为

<property>
 <name>hive.downloaded.resources.dir</name>
  <!--
     <value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
   -->
  <value>/home/hduser/hive/tmp/${hive.session.id}_resources</value>
  <description>Temporary local directory for added resources in the remote file system.</description>
</property> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2013-10-25
    • 2017-07-09
    • 2020-01-03
    • 1970-01-01
    相关资源
    最近更新 更多