1. 程式人生 > >Spark SQL與hive hbase mysql整合

Spark SQL與hive hbase mysql整合

虛擬機器環境:centos7

一、Spark SQL 與Hive整合(spark-shell)

1.需要配置的專案

    1)將hive的配置檔案hive-site.xml拷貝到spark conf目錄,同時新增metastore的url配置。

        執行操作: vi hive-site.xml,新增如下內容:

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://netcloud04:9083</value>          #netcloud04是hive服務端地址不是mysql服務的地址  9083是預設埠


</property>
    2)拷貝hive中的mysql jar包到 spark 的 lib 目錄下
cp hive-0.13.1-bin/lib/mysql-connector-java-5.1.27-bin.jar spark-1.6-bin/lib/
    3)檢查spark-env.sh 檔案中的配置項

         執行操作: vi spark-env.sh,新增如下內容:

         HADOOP_CONF_DIR=/opt/soft/hadoop-2.6.4/etc/hadoop
2.啟動服務

    1)檢查mysql是否啟動

        # 檢視狀態:service mysqld status

        #啟動:service mysqld start

    2)啟動hive metastore服務

          bin/hive --service metastore

    3)啟動hive

           bin/hive,進入hive命令列

    4)建立本地檔案 kfk.txt,內容如下:

         0001 spark
         0002 hive
         0003 hbase
         0004 hadoop
    5)執行 hive語句

hive> show databases;
hive> create database kfk;
hive> create table if not exists test(userid string,username string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS textfile;
hive> load data local inpath "/opt/kfk.txt" into table test;
    6)啟動 spark-shell

        bin/spark-shell,進入spark-shell中,執行操作,返回結果

spark.sql("select * from kfk.test").show
0001 spark
0002 hive
0003 hbase
0004 hadoop


二、Spark SQL 與Hive整合(spark-sql)

    1)啟動spark-sql,進入該命令列

        bin/spark-sql

    2)檢視資料庫

        show databases;

default
kfk
    3)使用資料庫,並查詢表

# 使用資料庫
use kfk
# 查看錶
show tables;
# 查看錶資料
select * from test;


三、Spark SQL之ThriftServer和beeline使用

    1)啟動ThriftServer

        sbin/start-thriftserver.sh

    2)啟動beeline    

        bin/beeline !connect jdbc:hive2://node1:10000

        # 檢視資料庫
        show databases;
        # 查看錶資料

        select * from kfk.test;

四、Spark SQL與MySQL整合

    1)啟動spark-shell,進入shell命令列

            sbin/spark-shell

    2)spark-shell命令列中輸入 :paste 可以輸入整段命令

val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://192.168.0.103:3306/face").option("dbtable", "s_user").option("user", "root").option("password", "root").load()

        jdbcDF.show

五、Spark SQL與HBase整合

    Spark SQL與HBase整合,其核心就是Spark Sql通過hive外部表來獲取HBase的表資料。

    1)拷貝HBase的包和hive包到 spark的 lib目錄下

    2)啟動spark-shell,進入命令列
        bin/spark-shell

        val df =spark.sql("select count(1) from weblogs").show