Spark SQL CLI 的配置和使用
关键字:【spark-sql 配置 HDFS 、spark sql cli 配置 HDFS、spark-sql 保存数据到 HDFS】
友情链接:
使用说明
Distributed SQL Engine - Spark 2.4.5 Documentation (apache.org)
The Spark SQL CLI is a convenient tool to run the Hive metastore service in local mode and execute queries input from the command line. Note that the Spark SQL CLI cannot talk to the Thrift JDBC server.
( Spark SQL CLI 客户端工具运行在本地,通过查询 Hive 的元数据来执行命令行。注意:Thrift JDBC server 是无法和 Spark SQL CLI 通信的 )
Spark SQL CLI 读取和存储数据在本地
① 环境准备
确保你已经搭建了 Hive
并且已经启动了 Hive Metastore
服务
② 准备 hive-site.xml
配置文件
Spark
连接 Hive Metastore
服务需要 hive-site.xml
配置文件,需要将 $HIVE_HOME/conf/hive-site.xml
配置文件发送到集群中所有 $SPARK_HOME/conf
配置目录下
hive-site.xml
文件示例
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>xxx</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://121.198.84.49:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node3</value>
</property>
<!-- hive 元数据的位置,这个配置很关键 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 指定 hive 的元数据服务地址和端口 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node3:9083</value>
</property>
③ 准备驱动包
如果 hive
元数据存储在 mysql
中,需要将对应的 mysql
驱动包添加在 $SPARK_HOME/jars
目录下
④ 启动 spark-sql
# 进入 spark 目录
cd /opt/server/spark
# 启动 spark-sql
bin/spark-sql --master local[2] --conf spark.sql.shuffle.partitions=2
⑤ 测试
# 建表并插入数据
create table area(id int,name string);
# 查看表的信息
desc formatted stu;
Spark SQL CLI 读取和存储数据在 HDFS
官方的建议是将 Hadoop
的 core-site.xml
和 hdfs-site.xml
配置文件同时添加在 $SPARK_HOME/conf
中,我们来试试吧
⑥ 增加配置文件 core-site.xml
、 hdfs-site.xml
# 复制 Hadoop 目录下的 core-site.xml 和 hdfs-site.xml 文件
cp /opt/server/hadoop-2.7.5/etc/hadoop/core-site.xml /opt/server/spark/conf/
cp /opt/server/hadoop-2.7.5/etc/hadoop/hdfs-site.xml /opt/server/spark/conf/
⑦ 重新启动 spark-sql
并测试
# 建表
create table stu(id int,name string);
# 查看表信息
desc formatted stu;
spark-sql 常用命令
查看帮助
bin/spark-sql --help
执行 SQL 脚本文件
bin/spark-sql -f /opt/scripts/ods.sql