Spark集成Hive和Hbase實現離線數據分析

目錄

前言

一、Spark+Hive

1. 配置

2.測試

二、Spark+Hbase

1. 配置

2. 測試


前言

Spark SQL是Spark處理結構化數據的模塊。本節中將Spark SQL和Hive以及Hbase集成,實現離線數據的分析。Hive和Hbase的集成請參閱:Hive+Mysql+Hbase集成配置實現離線數據分析

說明:三臺機器的主機名分別爲:bigdata.centos01、bigdata.centos02、bigdata.centos03

服務分佈:

  bigdata.centos01 bigdata.centos02 bigdata.centos03

Spark

(v2.2.0)

 

Spark

(Master&Worker)

 

Hive

(v0.13.1)

    Hive

Hbase

(0.98.6)

 master

regionServer

master(後備)

regionServer

regionServer

一、Spark+Hive

1. 配置

  • 複製Hive的配置文件 hive-site.xml 到spark的 conf 目錄
# bigdata.centos03
scp conf/hive-site.xml bigdata.centos02:/opt/modules/spark-2.2.0-bin/conf
  • 修改複製的hive-site.xml
<!-- 配置hive metastore服務地址 -->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://bigdata.centos03:9083</value>
</property>
  • 複製mysql驅動包到spark的 jars 目錄
scp lib/mysql-connector-java-5.1.35.jar bigdata.centos02:/opt/modules/spark-2.2.0-bin/jars

2.測試

  • 啓動hive的 metastore 服務
bin/hive --service metastore
  • 進入spark-shell命令行
bin/spark-shell
  • 讀取hive內部表(u_data)數據
scala> spark.sql("select * from test.u_data").show()
  • 測試結果如下:

二、Spark+Hbase

Spark SQL和Hbase的集成,其核心就是Spark SQL通過Hive外部表來獲取Hbase表的數據。

1. 配置

  • 複製以下hive和hbase中的jar包到spark目錄
# hbase
hbase-client-0.98.6-cdh5.3.9.jar 
hbase-common-0.98.6-cdh5.3.9.jar 
hbase-protocol-0.98.6-cdh5.3.9.jar 
hbase-server-0.98.6-cdh5.3.9.jar
htrace-core-2.04.jar

# hive
# 由於spark編譯未指定hive的版本號,默認版本是1.2.1,而我用的hive版本是0.13.1
# 故而需要額外下載hive-hbase-handler-1.2.1.jar放入spark jars目錄
# 總而言之:jar包版本號要和spark編譯的hive版本號一致
hive-hbase-handler-1.2.1.jar

2. 測試

  • 進入spark-shell命令行
bin/spark-shell
  • 讀取hive外部表的數據
scala> spark.sql("select * from test.weblogs limit 2").show()
  • 測試結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章