SparkSQL 与 Hive 整合
前提: 已经配置好 Hive, Spark.
配置 SparkSQL 数据源
- 将
$HIVE_HOME/conf/
中的hive-site.xml
和hive-log4j.properties
复制到$SPARK_HOME/conf
中. 如果$SPARK_HOME/conf
中没有hive-site.xml
, 那么spark-sql
,spark beeline
不能正确获取hive table
中的元数据和正确查询.
在
$SPARK_HOME/conf/spark-env.sh
中添加HIVE_HOME
,SPARK_CLASSPATH
:12export HIVE_HOME=/home/hadoop/workspace/hive-1.2.1export SPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-5.1.37-bin.jar:$SPARK_CLASSPATH可以设置
Spark
中的 log4j 配置文件, 使屏幕不打印额外 INFO 信息:
log4j.rootCategory=WARN, console重新启动
spark
启动
thriftserver
,spark sql
提供了thrift server
, 其功能相当于hiveServer2
, 提供 beeline 或 jdbc 客户端.$SPARK_HOME/sbin/start-thriftserver.sh –hiveconf hive.server2.thrift.port=10115
SparkSQL 验证
使用连接 URL “jdbc:hive2://h16:10115/mydb” 连接 SparkSQL
的 thrift server
中.