部署hive本地模式遇到的问题

部署hive本地模式遇到的问题以及解决方法

(原理也不懂,就是弄着弄着就好了,有待学习。。。)

1、元数据没有初始化
解决方法

schematool -dbType mysql -initSchema(此时使用的数据库是MySQL)

2、hive启动时报错
Exception in thread "main" Java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at org.apache.Hadoop.hive.ql.session.SessionState.start(SessionState.java:444) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:160) Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at org.apache.hadoop.fs.Path.initialize(Path.java:148) at org.apache.hadoop.fs.Path.<init>(Path.java:126) at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:487) at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430)
解决方法:

配置hive-site.xml
#如下命令将"${system:Java.io.tmpdir}"字段全部替换成"/hive/tmp"
sed -i 's#${system:Java.io.tmpdir}#/hive/tmp#g' hive-site.xml

3、hive中 “show databases;” 时出错

在这里插入图片描述

暂时没解决。。。

----------------------------------------------------------------------------------------------------------------------------------

解决啦!!!

但是咱啥也不知道,只能说配置hive-site.xml真的要面面俱到

在hive-site.xml中加入以下代码

<property>
<name>hive.exec.local.scratchdir</name>
<!-- <value>${system:java.io.tmpdir}/${system:user.name}</value>-->
<value>/var/develop/apache-hive-2.1.1-bin/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<!--<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>-->
<value>/var/develop/apache-hive-2.1.1-bin/iotmp/${hive.session.id}_resources
</value>
<description>Temporary local directory for added resources in the remote file system.
</description>
</property>

在加入这段代码之前,也加了另一段代码,但是没有什么用,就是不知道成功运行是不是两段代码共同作用的(真的是好菜啊。。。什么都不懂)

<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>

 <name>hive.exec.local.scratchdir</name>
 <value>/tmp/hive</value>

<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive/${hive.session.id}_resources</value>

<name>hive.scratch.dir.permission</name>
<value>733</value>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chaoyizi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值