hive on spark安装的一些问题

自己安装的可用环境:

    linux: CentOS-7
    hadoop : hadoop-2.8.1
    spark:  spark-1.6.3-bin-hadoop2.4-without-hive
    hive :  apache-hive-2.1.1-bin
    scala:  scala-2.12.3
    sql:  MariaDB

安装问题:

原本是想安装新版本的spark 2.0以后版本,发现各种问题解决不了,hive对spark也有要求。
下面记录下安装的一些东西:

1 . hive打开调试模式:

hive -hiveconf hive.root.logger=DEBUG,console

2 . spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-hadoop*.jar已经不存在,所以hive没有办法找到这个JAR包。JAR包在spark/jar/文件目录下面。


3 . Exception in thread “main” java.lang.NoClassDefFoundError: scala/collection/Iterable

这里原因是找不到spark 的jar文件,按照官网上的解决方法:
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark:+Getting+Started
最后修改后发现没什么用,也不知道是不是哪里弄的不对.最后网上找的方案 ,直接写查找路径,修改 bin/hive里

CLASSPATH=${CLASSPATH}:${HIVE_LIB}/*.jar

for f in ${HIVE_LIB}/*.jar; do
    CLASSPATH=${CLASSPATH}:$f;
done
在下面添加代码: 
for f in ${SPARK_HOME}/jars/*.jar; do
     CLASSPATH=${CLASSPATH}:$f;
done

再执行hive,出现错误问题:

FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. java.lang.ExceptionInInitializerError
    at org.apache.hadoop.hive.ql.plan.TableScanDesc.<init>(TableScanDesc.java:132)
    at org.apache.hadoop.hive.ql.plan.TableScanDesc.<init>(TableScanDesc.java:125)
    at org.apache.hadoop.hive.ql.plan.TableScanDesc.<init>(TableScanDesc.java:116)
    at org.apache.hadoop.hive.ql.plan.TableScanDescConstructorAccess.newInstance(Unknown Source)
    at org.apache.hive.com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy$1.newInstance(Kryo.java:1237)
    at org.apache.hive.com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1090)
    at org.apache.hive.com.esotericsoftware.kryo.serializers.FieldSerializer.create(FieldSerializer.java:570)
    at org.apache.hive.com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:546)
    at org.apache.hive.com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)

网上说hadoop 的版本不对需要,hadoop2.6的版本,因版本太老,不想试,跳过安装spark2.0以后版本,直接使用1.6的版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值