问题一
Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083
解决方法:
遇到这种情况大家都找不到头绪,是因为你开始的时候运行了hive的metastore,可以通过输入命令:
jps
查看有没有RunJar
然后再输入命令来启动:
hive --service metastore
问题二
Hive在spark2.0.0启动时无法访问spark-assembly-*.jar的解决办法
ls: /usr/local/share/spark-2.0.0-bin-hadoop2.7/lib/spark-assembly-*.jar: No such file or directory
原因:
发现主要原因是:在//bin/hive文件中,有这样的命令:加载spark中相关的JAR包
if [[ -n "$SPARK_HOME" ]]
then
sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
fi
但是spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包。
解决方法:
修改//bin/hive文件,将加载原来的
lib/spark-assembly-*.jar`替换成jars/*.jar
就不会出现这样的问题。
问题三
Hive中一些需要注意的点:
1.hive.metastore.uris指向的是运行metastore服务的主机,并不是指向运行hiveserver的主机,那台主机不用启动hiveserver也ok;
2.直接使用hive命令启动shell环境时,其实已经顺带启动了hiveserver,所以远程模式下其实只需要单独启动metastore,然后就可以进入shell环境正常使用
3.hiveserver和metastore进程名都叫RunJar。