- 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