Spark SQL CLI 的配置和使用

关键字:【spark-sql 配置 HDFS 、spark sql cli 配置 HDFS、spark-sql 保存数据到 HDFS】

友情链接:

环境搭建-Spark on YARN

Hive 安装 以及使用

Hadoop 介绍及集群搭建

Hive 的SQL基本操作

使用说明

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&amp;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

官方的建议是将 Hadoopcore-site.xmlhdfs-site.xml 配置文件同时添加在 $SPARK_HOME/conf 中,我们来试试吧

⑥ 增加配置文件 core-site.xmlhdfs-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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值