1)Problem
在 hive bin 目录执行以下命令报错:
!connect jdbc:hive2://xxx:10000
错误信息:
java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)
2)Solve
2-1) 问题定位
lsof -i :10000(hive2 默认端口)发现端口没起动
根据网上用户经验
hadoop引入了一个安全伪装机制,使得hadoop 不允许上层系统直接将实际用户传递到hadoop层,
而是将实际用户传递给一个超级代理,由此代理在hadoop上执行操作,避免任意客户端随意操作hadoop,
查看 hadoop 安装家目录下 ${HADOOP_HOME}etc/hadoop/core-site.xml
查看代理配置:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
感觉 配置没啥问题, 我是用root 用户登录访问的hive
查看后台 hive 服务:
jps -ml |grep hive
发现, hive2 进程都没启动, 启动hive2 服务
2-2)问题解决
正常 hive 服务启动如下
启动 metastore
cd ${HIVE_HOME}/bin && nohup ./hive --service metastore > /var/log/hive/metastore.log &
启动 hive2
cd ${HIVE_HOME}/bin && nohup ./hiveserver2 >/var/log/hive/hive.log &
正常启动后,查看下端口占用情况
lsof -i :10000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29990 root 474u IPv4 165271695 0t0 TCP *:ndmp (LISTEN)
有进程 问题解决