报错背景
hive-1.1.0-cdh5.16.2
spark-2.4.6-bin-hadoop2.6
启动hive时出现报错。
报错现象
启动hive:hive --service metastore &
报错信息:ls: 无法访问/opt/app/spark/lib/spark-assembly-*.jar: 没有那个文件或目录
报错原因
Spark升级到2.0.0之后,原有的lib的整个大JAR包已经被分散的小JAR包的替代,所以找不到spark-assembly的jar包。
报错解决
修改/opt/software/hive-1.1.0-cdh5.16.2/bin/hive脚本114行开始。
# add Spark assembly jar to the classpath if [[ -n "$SPARK_HOME" && !("$HIVE_SKIP_SPARK_ASSEMBLY" = "true") ]] then sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar` CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}" fi
修改后如下:
# add Spark assembly jar to the classpath if [[ -n "$SPARK_HOME" && !("$HIVE_SKIP_SPARK_ASSEMBLY" = "true") ]] then sparkAssemblyPath=`ls ${SPARK_HOME}/jars/spark-*.jar` CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}" fi