Ambari出现SPARK2 THRIFT SERVER Could not load shims in class org.apache.hadoop.hive.schshim.FairSchedulerShim错误
Spark Thrift Server是Spark社区基于HiveServer2实现的一个Thrift服务。旨在无缝兼容HiveServer2。
因为Spark Thrift Server的接口和协议都和HiveServer2完全一致,因此我们部署好Spark Thrift Server后,可以直接使用hive的beeline访问Spark Thrift Server执行相关语句。
Spark Thrift Server的目的也只是取代HiveServer2,因此它依旧可以和Hive Metastore进行交互,获取到hive的元数据。
当出现Could not load shims in class org.apache.hadoop.hive.schshim.FairSchedulerShim错误时怎么解决
1.先将hive-site.xml、hdfs-site.xml、core-site.xml拷贝到spark/conf目录下。
2.拷贝相关jar包到spark/jars目录
cp /usr/hdp/current/hive-client/lib/hive-shims* /usr/hdp/3.1.4.0-315/spark2/jars
cp /usr/hdp/3.1.4.0-315/hadoop-yarn/hadoop-yarn-server-resourcemanager.jar /usr/hdp/3.1.4.0-315/spark2/jars
作者本地目前看到引用的包有以下
hive-shims-0.20-3.1.0.3.1.4.0-315.jar
hive-shims-0.23-3.1.0.3.1.4.0-315.jar
hive-shims-3.1.0.3.1.4.0-315.jar
hive-shims-common-3.1.0.3.1.4.0-315.jar
hive-shims-common.jar
hive-shims.jar
hive-shims-scheduler-3.1.0.3.1.4.0-315.jar
hive-shims-scheduler.jar
hadoop-yarn-server-resourcemanager.jar
3.重启spark2