大数据之非常详细Spark SQL操作Hive的读写过程

大数据

大数据之非常详细Spark SQL操作Hive的读写过程



一、Spark SQL架构和原理

1.shark和hive关系

Hive是Shark的前身

2.Hive的两种功能

2.1 作为数据仓库提供存储功能

Hive的元数据,如库、表等结构信息,均由Hive自身来维护,但数据本身存储在HDFS集群中

2.2 作为查询引擎提供检索查询功能

3.Hive的查询功能如下

1、将HQL翻译成MR代码。
2、将job打成jar包并发送到Hadoop集群中运行

二、Spark SQL操作Hive的方法

1.SparkSQL访问Hive仓库

在Spark安装目录中的conf目录下,添加hive配置文件

cd /opt/module/spark-2.1.1/conf
vi hive-site.xml

在这里插入图片描述

2.启动服务

在MySQL安装节点(slave001)启动MySQL服务:

systemctl start mysqld.service

在这里插入图片描述

启动Hive元数据服务,并验证Hive是否可用
启动命令如下

nohup hive --service metastore &>metastore.log&

在这里插入图片描述在这里插入图片描述

3.启动Hadoop集群

在这里插入图片描述

4.启动SQL

在这里插入图片描述

三、通过Spark SQL查询表中的数据

在hive中创建库test,表stu,并加载数据;然后通过Spark SQL查询表stu中的数据。

1.创建数据库test

在这里插入图片描述

查看一下是否创建出了test数据库

在这里插入图片描述

2.创建表stu

在这里插入图片描述

查看是否创建表成功

在这里插入图片描述

3.插入数据

在这里插入图片描述

查看是否插入成功

在这里插入图片描述

4.Spark连接Hive读写数据

利用spark-shell切换到终端窗口

在这里插入图片描述

显示数据库

在这里插入图片描述

查询数据

在这里插入图片描述


总结

以上就是今天要讲的内容,本文仅仅简单介绍了大数据之非常详细Spark SQL操作Hive的读写过程,结合以上步骤和书中内容相信你也可以的,加油。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark SQL可以通过JDBC连接操作MySQL数据库,也可以通过HiveContext连接操作Hive数据仓库。对于MySQL数据库,需要先将MySQL的JDBC驱动包添加到Spark的classpath中,然后使用SparkSession的read和write方法读写MySQL表。对于Hive数据仓库,需要先启动Hive服务,并将Hive的JDBC驱动包添加到Spark的classpath中,然后使用HiveContext的sql方法执行HiveQL语句。 ### 回答2: Spark SQLSpark 的一个子模块,它支持对结构化数据进行处理和分析,同时 Spark SQL 可以与多种数据源进行集成和交互,其中包括 MySQL 数据库Hive 数据仓库Spark SQL 操作 MySQL 数据库的实现方式通常是通过 JDBC 驱动来实现的。首先需要在 Spark 的配置文件中添加 MySQL 驱动的相关配置信息,同时也需要将 MySQL 驱动的 JAR 包添加到 Spark 的 Classpath 中,然后就可以使用 Spark SQL 的数据源 API 将 MySQL 数据库中的数据载入到 Spark 的 DataFrame 中进行处理和分析了。 Spark SQL 操作 Hive 数据仓库的实现方式也较为简单,因为 Spark 提供了对 Hive 的原生支持,可以直接将 Hive 表作为 Spark SQL 的数据源进行处理和分析。在使用 Spark SQL 操作 Hive 数据仓库时,需要在 Spark 的配置文件中添加 Hive 的相关配置信息,同时也需要将 Hive 的 JAR 包添加到 Spark 的 Classpath 中,然后就可以在 Spark SQL 中使用 Hive 数据源 API 从 Hive 数据仓库中读取数据进行分析和处理。 总的来说,Spark SQL 操作 MySQLHive 数据仓库都比较方便,只需要配置好相关的驱动和参数,就可以像处理普通数据文件一样对这些数据进行查询和转换。此外,Spark SQL 还支持多种数据源的交互,包括 JSON,CSV,Parquet,Avro 和 ORC 等格式的数据文件。Spark SQL 的数据源兼容性很好,可以方便地与多种数据源进行集成使用,为分布式数据处理和分析带来更多的便利和灵活性。 ### 回答3: Spark SQL是以SQL语言为基础的Apache Spark模块。它支持从多种数据源中读取数据,进行数据操作和数据分析。其中,MySQL数据库Hive数据仓库都是比较常见的数据源之一。下面就分别介绍一下Spark SQL操作MySQLHive的方法和步骤。 1. Spark SQL操作MySQL数据库 步骤一:导入MySQL的JDBC driver Spark SQL需要使用MySQL JDBC driver来操作MySQL数据库,因此需要先将其导入到Spark代码中。可以在maven中央仓库中找到适合版本的MySQL JDBC driver,然后将其添加到项目中。 步骤二:连接MySQL数据库Spark SQL中,一般通过jdbc的方式来连接MySQL数据库。需要提供MySQL服务的IP地址和端口,数据库名称以及登录MySQL的用户名和密码。连接MySQL数据库的代码示例: ``` val jdbcDF = spark.read .format("jdbc") .option("url", "jdbc:mysql://mysqlip:3306/test") .option("dbtable", "userinfo") .option("user", "root") .option("password", "root") .load() ``` 上述代码中,将MySQL的IP地址和端口、数据库名称、表名、用户名和密码等信息封装在.option()中。 步骤三:操作MySQL数据库 连接成功后,即可对MySQL数据库进行操作Spark SQL操作MySQL的方式与操作DataFrame或SQL类似。例如: ``` jdbcDF.show() ``` 上述代码中,使用.show()方法来展示加载到DataFrame中的MySQL表的数据。 2. Spark SQL操作Hive数据仓库 步骤一:配置Hive Support 为了让Spark SQL支持Hive,需要在构建Spark时开启Hive Support。可以在Spark官网(https://spark.apache.org/downloads.html)下载已经包含了Hive Support的Spark压缩包,或者自行下载源码进行编译。 步骤二:连接Hive数据仓库 连接Hive数据仓库需要使用Hive JDBC driver。可以从Apache官网(https://hive.apache.org/downloads.html)下载Hive JDBC driver并添加到项目。 连接Hive数据仓库的代码示例: ``` val spark = SparkSession.builder() .appName("SparkHive") .master("local") .enableHiveSupport() .getOrCreate() ``` 上述代码中,通过.enableHiveSupport()方法开启Spark SQL支持Hive。创建完SparkSession后,即可连接Hive数据库。 步骤三:操作Hive数据库 连接成功后,即可在Spark SQL操作Hive数据库Spark SQL通过HiveQL来操作Hive数据库,与操作SQL语句类似。例如: ``` spark.sql("SELECT * FROM testdb.userinfo").show() ``` 上述代码中,使用sql()方法来执行SELECT语句,并展示结果。 综上,Spark SQL可以操作MySQLHive等多种数据源。操作MySQL需要导入MySQL JDBC driver,并通过jdbc连接MySQL数据库操作Hive需要在构建Spark时开启Hive Support,并导入Hive JDBC driver。操作数据库的代码与Spark SQL操作DataFrame和SQL基本一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值