Spark/Hive
创始人
2024-05-30 15:05:59
0

Spark/Hive

  • Hive 原理
  • Spark with Hive
    • SparkSession + Hive Metastore
    • spark-sql CLI + Hive Metastore
    • Beeline + Spark Thrift Server
  • Hive on Spark

  • Hive 擅长元数据管理
  • Spark 擅长高效的分布式计算

Spark + Hive 集成 :

  • Hive on Spark : Hive 用 Spark 作为底层的计算引擎时
  • Spark with Hive : Spark 把 Hive 当元信息的管理工具

Hive 原理

Hive架构 , 可插拔的第 三方独立组件 :

  • User Interface 提供 SQL 接入服务
  • CLI 与 Web Interface 在本地接收 SQL 查询语句
  • Hive Server 2 提供 JDBC/ODBC 客户端连接,从远程提交 SQL 查询请求

在这里插入图片描述

SQL 查询的工作过程 :

  1. 收到 SQL 后,Driver 先用 Parser ,将查询语句转化为 AST(Abstract Syntax Tree,查询语法树)
  2. Hive 从 Hive Metastore 拿表的元信息,如 : 表名、列名、字段类型、数据文件存储路径、文件格式
  3. Planner 根据 AST 生成执行计划
  4. Optimizer 优化执行计划
  5. Execution 提交执行计划

Spark with Hive

Spark with Hive 集成方式 :

  • 创建 SparkSession,访问 Hive Metastore
  • 通过 spark-sql CLI,访问本地 Hive Metastore
  • 通过 Beeline,访问 Spark Thrift Server

SparkSession + Hive Metastore

启动 Hive Metastore

hive --service metastore

Spark 拿 Metastore 访问地址的两种办法 :

  • 创建 SparkSession 时,通过 config 指定 hive.metastore.uris
  • 把Hive的 hive-site.xml 拷到 Spark 的 conf 下

spark-shell 下写代码 :

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.DataFrameval hiveHost: String = _// 创建SparkSession实例
val spark = SparkSession.builder().config("hive.metastore.uris", s"thrift://hiveHost:9083").enableHiveSupport().getOrCreate()// 读取Hive表,创建DataFrame
val df: DataFrame = spark.sql(“select * from salaries”)
df.show/** 结果打印
+---+------+
| id|salary|
+---+------+
| 1| 26000|
| 2| 30000|
| 4| 25000|
| 3| 20000|
+---+------+
*/

SparkSession + Hive Metastore 集成方式 :

  • Spark 只涉及 Hive 的 Metastore

在这里插入图片描述

spark-sql CLI + Hive Metastore

spark-sql CLI 与 Hive Metastore 要在同个节点

  • spark-sql CLI 只能访问 本地 Hive Metastore

Beeline + Spark Thrift Server

用 Beeline 客户端,连接 Spark Thrift Server,从而完成 Hive 表的访问与处理

Hive Server 2 (Hive Thrift Server 2) 采用 Thrift RPC 协议框架

Beeline + Spark Thrift Server 集成 :

  • Spark Thrift Server 与 Hive Server 2 的实现逻辑一样。最大区别:SQL 查询接入后的解析、规划、优化与执行

在这里插入图片描述

启动 Spark Thrift Server :

$SPARK_HOME/sbin/start-thriftserver.sh

Spark Thrift Server 启动后,在任意节点上通过 Beeline 就能访问该服务

beeline -u "jdbc:hive2://hostname:10000"

Hive on Spark

Hive on Spark :Hive 用 Spark 作为分布式执行引擎

  • SQL 语句的解析、规划与优化都由 Hive 的 Driver 完成
  • Hive on Spark 衔接的部分是 Spark Core

指定 Spark 执行引擎

set hive.execution.engine=spark

相关内容

热门资讯

高考满分作文(实用6篇) 高考满分作文篇一:重拾初心,追寻梦想高考,是每个学生人生中的一次大考,也是人生道路上的一个重要转折点...
高考满分作文勇气范文【推荐6... 高考满分作文勇气范文 篇一标题:勇往直前,迎接挑战勇气是一种伟大的品质,它可以使我们面对困难和挑战时...
全国一卷高考优秀作文【优秀6... 全国一卷高考优秀作文 篇一:领导力的重要性在现代社会中,领导力被广泛认为是一种重要的能力。无论是在学...
高考作文案例“以自己的方式改... 高考作文案例“以自己的方式改变世界” 篇一第一篇内容:我与他人的互动当我们谈到改变世界时,很多人会想...
盘点高考中不得不看的奇人异事... 盘点高考中不得不看的奇人异事 篇一在高考这个重要的考试中,总会出现一些令人难以置信的奇人异事。这些事...
体育精神高考范文素材(最新6... 体育精神高考范文素材 篇一体育精神是高考中的重要素质高考作为一个重要的人生关卡,不仅仅考察学生的学术...
11年高考作文(优秀6篇) 11年高考作文 篇一标题:互联网对青少年的影响互联网在当今社会已经成为了青少年生活中不可或缺的一部分...
作文高考范文以及题目大全(精... 作文高考范文以及题目大全 篇一标题:我的高中生活字数:600字高中生活是人生中非常重要的一个阶段,它...
高考作文范文【推荐6篇】 高考作文范文 篇一:《高考改革与教育公平》高考作文范文 篇二:《高考改革与素质教育》高考作文范文 篇...
高考作文题目预测:用心创造快... 高考作文题目预测:用心创造快乐 篇一快乐是一种心态,也是一种态度。在现代社会中,人们往往忽视了用心创...
广东高考英语作文题目【经典3... 广东高考英语作文题目 篇一Title: The Importance of Time Managem...
全国及11个省市高考作文题目... 全国及11个省市高考作文题目 篇一题目:如何适应高考改革的新形势近年来,高考改革取得了显著的进展,不...
高考议论文(经典6篇) 高考议论文 篇一:高考制度是否应该改革高考是中国教育体系中的重要组成部分,对于每一个学生来说都至关重...
关于2021高考作文范文【优... 关于2021高考作文范文 篇一2021高考作文范文:努力奋斗的力量在2021年的高考作文中,我选择了...
云南高考理科状元:成绩出乎意... 云南高考理科状元:成绩出乎意料 篇一近日,云南省高考理科状元的成绩出乎意料地引起了广泛关注。这位学生...
网络安全作文高考范文5篇(推... 网络安全作文高考范文5篇篇一:网络安全的重要性网络安全已经成为当今社会中一个非常重要的问题。随着互联...
语文高分作文范文高考【推荐6... 语文高分作文范文高考 篇一《文字的魅力》语文在高考中占据着重要的地位,其高分作文更是备受考生们的关注...
带着镣铐舞蹈高考满分作文(精... 带着镣铐舞蹈高考满分作文 篇一在人生道路上,我们经常会遭遇各种各样的困难和挑战。有时候,我们会觉得自...
全国高考语文作文(精彩6篇) 全国高考语文作文 篇一我与书的故事书是人类的良师益友,它陪伴着我度过了许多难忘的时光。我与书的故事始...
责任的高三作文800字【最新... 责任的高三作文800字 篇一责任的重要性责任是一种使命感和担当精神,是对自己和他人的承诺。对于高三学...