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