- 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