虚拟机环境: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