spark可以通過讀取hive的元數據來兼容hive,讀取hive的表數據,然后在spark引擎中進行sql統計分析,從而,通過spark sql與hive結合實現數據分析將成為一種最佳實踐。配置步驟如下:
1、啟動hive的元數據服務
hive可以通過服務的形式對外提供元數據讀寫操作,通過簡單的配置即可編輯 $HIVE_HOME/conf/hive-site.xml,增加如下內容 :
<property>
<name>hive.metastore.uris</name>
<value>thrift:// master:9083</value>
</property>
啟動hive metastore
[root@master apache-hive-1.2.2-bin]# ./bin/hive --service metastore 1>/dev/null 2>&1 &
查看 metastore:
[root@master apache-hive-1.2.2-bin]# jobs
將hive的配置文件拷貝給spark
將 $HIVE_HOME/conf/hive-site.xml copy $SPARK_HOME/conf/
將 $HIVE_HOME/lib/mysql-connector-java-5.1.12.jar copy或者軟鏈到$SPARK_HOME/lib/
[1]+ Running ./bin/hive --service metastore > /dev/null 2>&1 &
2、spark配置
將hive的配置文件拷貝給spark
將 $HIVE_HOME/conf/hive-site.xml copy $SPARK_HOME/conf/
[root@master apache-hive-1.2.2-bin]# cp ./conf/hive-site.xml /usr/local/spark-2.3.0/conf/
將mysql的jdbc驅動包拷貝給spark
將 $HIVE_HOME/lib/mysql-connector-java-5.1.12.jar copy或者軟鏈到$SPARK_HOME/lib/
[root@master lib]# cp ./mysql-connector-5.1.8.jar /usr/local/spark-2.3.0/jars/
3、啟動spark-sql的shell交互界面
[root@master lib]# spark-sql
4、在spark sql 中執行hive操作
spark-sql> show databases;
2018-06-27 09:52:08 INFO CodeGenerator:54 - Code generated in 461.952527 ms
default
hive