作者:相信奇迹的发生 | 来源:互联网 | 2023-09-01 19:03
1.hiveonspark(spark1)首先要想hiveonspark的话版本要对齐(spark2之后的貌似还不能成功)在hive-site里面更改hive.execut
1.hive on spark(spark1)
首先要想hive on spark的话版本要对齐(spark2之后的貌似还不能成功)
在hive-site里面更改hive.execution.engine = spark
spark.home=/home/hadoop/spark-2.3.0-bin-hadoop2.7
spark.submit.deployMode = client or cluster
将hive-site的${system:java.io.tmpdir} 替换成本地文件夹
${system:user.name}替换成${user.name}
启动hive的时候会报错主要是因为spark的包和scala的包不在classpath里
加上for f in ${SPARK_HOME}/jars/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
for f in ${SCALA_HOME}/lib/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
之后写sparksql的话要加jars里面加上mysql的驱动以及吧core-site.xml hive-site.xml和hdfs-site.xml放到spark conf文件夹下
hive-site这个参数修改成false
hive.metastore.schema.verification
false
最终sparksql就可以用了。
注意:hive on spark 是通过hive来解析sql
sparksql是spark自身解析sql,所以当hive on spark 由于版本问题启动不了的时候,sparksql还是可以玩的。
2.hive on mr
hive-site.xml
开头新增
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
qwerasdf
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.0.59:3306/hive
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
注意在xml中已经有这几个参数,找出来删掉。
然后找到你的yarn-site.xml
加上
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
不然会包mapreduce_shuffle不存在。