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
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
最终sparksql就可以用了。
注意:hive on spark 是通过hive来解析sql
sparksql是spark自身解析sql,所以当hive on spark 由于版本问题启动不了的时候,sparksql还是可以玩的。
2.hive on mr
hive-site.xml
开头新增<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>qwerasdf</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.0.59:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
注意在xml中已经有这几个参数,找出来删掉。
然后找到你的yarn-site.xml
加上<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
不然会包mapreduce_shuffle不存在。