Spark SQL整合Hive

Spark SQL整合Hive,第1张

Spark SQL整合Hive

文章目录
  • 1. Spark SQL整合Hive
  • 2. SparkSQL与Hive共用元数据
    • 2.1 开启Hive元数据服务
      • 2.1.1 修改hive配置
      • 2.1.2 启动hive元数据服务
    • 2.2 拷贝hive-site.xml和mysql驱动
    • 2.3 启动SparkSQL
    • 2.4 测试

1. Spark SQL整合Hive

为什么要进行整合?
由于hive原生是基于MapReduce的,导致其查询耗时较长。而SparkSQL底层是spark core(RDD),在内存中计算数据,且是粗粒度资源调度。
为了保留Hive的架构解决方案,并优化查询速度,采用SparkSql与hive整合(spark on hive),通过SparkSQL读取hive中表的元数据,把HiveHQL底层采用MapReduce处理任务导致性能慢的特点,改为更加强大的Spark core引擎来进行相应的计算处理。

环境搭建准备 ( 搭建步骤前面写过 )

  1. 搭建hadoop集群
  2. 安装hive构建数据仓库
  3. 安装spark集群

SparkSQL整合hive
Spark SQL的其中一个分支就是Spark on Hive,就是使用Hive中HQL的解析逻辑、执行计划翻译、执行计划优化等逻辑,可认为将物理执行Task从MR作业替换成了Spark作业。
Spark SQL整合hive就是获取hive表中的元数据信息(在mysql中),然后通过Spark SQL来 *** 作数据。
整合步骤:

2. SparkSQL与Hive共用元数据 2.1 开启Hive元数据服务 2.1.1 修改hive配置

在hive的 hive-site.xml 修改一行配置,增加了这一行配置之后,以后在使用hive之前都 需要先启动元数据服务
开启hive元数据服务的目的: 是让spark sql 可以获取到hive的元数据


hive.metastore.uris
thrift://master:9083

2.1.2 启动hive元数据服务

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

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

验证hive是否可用:hive

2.2 拷贝hive-site.xml和mysql驱动

将hive-site.xml 复制到spark conf目录下
cp hive-site.xml /usr/local/soft/spark-2.4.5/conf/
将 mysql 驱动包复制到saprk jars目录下
cp mysql-connector-java-5.1.17.jar /usr/local/soft/spark-2.4.5/jars/

2.3 启动SparkSQL

使用yarn-client模式启动,不能使用yarn-cluster模式
使用命令启动:spark-sql --master yarn-client

2.4 测试

1、在spark-sql中设置运行参数:set spark.sql.shuffle.partitions=2;
SparkSQL默认使用的并行度是200个,可以根据数据量的大小进行调。由于student库中的student表数据量较小,将之调整为2
2、统计每个班级的人数
select clazz,count(1) from student group by clazz;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存