hive Job running in-process (local Hadoop) 引起的一系列问题完美解决方案

最近学习hive, 使用的hive版本为1.2.1
使用hive进行运行hsql时总是出现如下状况

hive Job running in-process (local Hadoop)

找了下原因是因为有个配置没有改, 他在hive-site.xml中
而在hive目录conf文件夹下没有hive-site.xml, 原来是hive-default.xml.template文件
它要修改为hive-site.xml(记得备份)
在修改名字后的hive-site.xml文件中有如下配置

<property>
	<name>hive.metastore.uris</name>
    <value>thrift://hadoop128:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

配置自己这台机器的地址和ip, 我的是hadoop128, 然后接着启动.
然后又报错了

Could not connect to meta store using any of the URIs provided

原来是现在的启动方式要进行改变了, 需要使用

./hive --service metastore & ./hive

这样启动, 可是还是报错了, 报错如下:

Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

原来这是因为tmp地址没有进行配置, 还是在hive-site.xml中配置如下:

<property>
    <name>system:java.io.tmpdir</name>
    <value>/opt/module/hive-1.2.1/tmp</value>
</property>
<property>
    <name>system:user.name</name>
    <value>iotmp</value>
</property>

具体tmp地址是根据你创建的tmp文件夹在哪里配置的, 就是提供hive运行存放一些数据的临时目录
接着再次启动hive, 我擦! 怎么有报错了

org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083.

这个很容易看出来是Socket相关错误, 不能在9083这个端口创建连接, 那么就有可能是端口被占用了
jps看一下
在这里插入图片描述
还真的是, 好几个Runjar, 都是之前错误运行产生的, 全部干掉
在这里插入图片描述
再启动, 成功启动
最后在设置一个值

hive> SET hive.exec.mode.local.auto=false;

原因是因为, 从hive 0.7版本之后, hive就支持配置自动在本地运行了, 所以要使用命令关掉这个配置
另外目前这个虽然是remote运行(MR确实在远程了, 没有使用本地的MR)但其实hive.metastore.warehouse.dir 还设置的是本地, 如果需要指定保存到hdfs, 即将元数据保存到远程目录上
在 hive-site.xml中配置

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>hdfs://hadoop128:9000/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>

重启hive
如果你以上的情况配置了还是没有用, 比如报错

Job Submission failed with exception 'java.net.ConnectException(Call From

那么, 这种情况有两种
1,你的hadoop集群没有启动
2,env配置文件不对
一般不会是集群没有启动, 所以好好看配置文件 hive-env.sh
在这里插入图片描述
最好按他的格式配置一下, 很容易就掉 HADOOP_HOME= XXXXX 这一项
以上所有可能造成没有在远程或者yarn上运行的情况都解决了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值