【博学谷学习记录】超强总结,用心分享 | Spark与Hive集成

#博学谷IT技术支持#

1. 集成原理

HiveServer2:接收SQL语句,将SQL编译优化执行,翻译为MR程序提交Yarn执行。

MetaStore:提供元数据管理。

Spark On Hive是为了替换Hive的执行引擎,将MR变为Spark RDD程序运行,所以本质是替换HiveServer2。

2. 配置说明

  • 校验hive目录下conf目录hive-site.xml中是否有关于metastore的地址配置,如果没有需要新增。

  • 将hive-site.xml拷贝到spark的conf目录下
cd /export/server/hive/conf/
cp hive-site.xml  /export/server/spark/conf/
  • 将mysql连接驱动jar包拷贝到spark的jars目录下
cd /export/server/hive/lib/
cp mysql-connector-java-5.1.32.jar /export/server/spark/jars/
  • 启动hadoop和hive的metastore
start-all.sh
cd /export/server/hive/bin
nohup ./hive --service metastore &
jps -m
  • 测试是否集成成功
    • 此时无法看出是否集成成功
    • 解决方案:进入hive客户端,创建库和表并添加数据,在spark-sql客户端上如果可以看得到说明集成成功了,反之亦然。

在hive中执行:

cd /export/server/hive/bin
./hive

create database day12_pyspark;
use day12_pyspark;

create table stu(id int,name string,address string);

insert into table stu values(1,'张三','北京');

select * from stu;

在spark中执行

spark-sql> show databases;
day12_pyspark
default

spark-sql> use day12_pyspark;
Time taken: 0.026 seconds
spark-sql> show tables;
day12_pyspark   stu     false

select * from stu;

insert into table stu values(2,'李四','上海');
insert into table stu values(3,'王五','北京');
insert into table stu values(4,'赵六','北京');

3. 代码中集成hive

核心代码:

enableHiveSupport():开启和HIVE的整合
config('hive.metastore.uris','thrift://node1:9083'):告知给spark,hive的metastore地址
config('spark.sql.warehouse.dir','hdfs://node1:8020/user/hive/warehouse'):可选,指定默认的家目录,此配置一般与hive的默认家目录保持一致。如果不配置默认位置本地磁盘,建议配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值