项目场景:进入Hive数据库
执行“/bin/hive”命令。
问题描述
报错:
Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Call From hadoop102/192.168.40.102 to hadoop102:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
原因分析:
没有启动 YARN。
解决方案:
1、启动YARN,执行 “myhadoop.sh start” 命令。
2、在$HIVE_HOME 路径下,执行 “bin/hive” 命令。
注意事项:
hive的数据库MySQL在安装的时候一定初始化数据库,否则使用数据库时,会报错
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
,解决方案:初始化数据库,命令:schematool -initSchema -dbType mysql -verbose。
参考文章:Hive错误: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.Session
在远程模式下,必须先启动Hive metastore服务才可以使用hive。因为metastore服务和hIve server是两个单独的进程了。
附件:
myhadoop.sh脚本
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop 集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start
historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop
historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac