- Spark与Hadoop安装见此:安装Spark1.5与Hadoop2.6
注意:Spark官方提供的二进制发行版是不支持hive的,需要自行编译。
安装hive
1 | wget -c http://mirrors.aliyun.com/apache/hive/hive-1.1.1/apache-hive-1.1.1-bin.tar.gz |
设置hive环境变量:
1 | export HIVE_HOME="/opt/local/apache-hive-1.1.1-bin" |
编辑 $HIVE_HOME/conf/hive-site.xml
:
1 | <configuration> |
设置MySQL的Hive元数据库。
1 | mysql -u root -p |
执行 $HIVE_HOME/bin/hive
即可进入 hive cli 控制台了。
一些注意事项
hive.optimize.ppd BUG
在执行一些 hiveQL 操作时,
1 | Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode(Lorg/apache/hadoop/hive/ql/lib/Node;)Lorg/apache/hadoop/hive/ql/plan/ExprNodeDesc; |
1 | hive> set hive.optimize.ppd=false; |
注意 hive jline与hadoop jline起冲突
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
Hive 已经更新 Jlive2 版本,而 hadoop 还是使用的 0.9x 系列。可以这样设置来解决这个问题:优先使用用户提供的jar包。
1 | export HADOOP_USER_CLASSPATH_FIRST=true |
为Spark添加mysql驱动
编辑 $SPARK_HOME/conf/spark-defaults.conf
文件,设置以下依赖。当使用 spark-submit
提交任务时需要 spark.executor.extraClassPath
配置,而使用 spark-shell
和spark-sql
等方式时需要 spark.driver.extraClassPath
配置。
1 | spark.executor.extraClassPath /opt/local/libs/mysql-connector-java-5.1.38.jar |
也可以在使用 spark-sql
时添加命令行参数来设置mysql驱动:--driver-class-path /opt/local/libs/mysql-connector-java-5.1.38.jar