使用Spark跨集群同步Hive数据

本文适用有入门spark基础的同学,一些最基础知识不再赘述
通过阅读本文即可掌握使用Spark跨集群同步Hive数据的技巧!
众所周知,业界比较成熟的同步数据工具是Sqoop,它是连接关系型数据库和Hadoop的桥梁
比较常用的场景是从MySQL等RDB同步到Hive、Hbase或者将Hive、Hbase的数据导出到MySQL
但是在天池技术选型时选用了用Spark来从大数据集群同步数据到大禹集群
下面来比较一下这两种方式:
①Sqoop使用配置化,Spark需要代码开发
学习成本上使用Spark稍微高一些,但是同步数据复杂一些Sqoop的配置也不见得很简单
②Sqoop在同步数据进行存储时仍需要启动MapReduce任务,Spark使用自身框架进行内存计算
在效率上Spark比Sqoop要高
③Sqoop1和Sqoop2不能完全兼容,且网上在不同集群的Hive间同步数据的资料也比较少,出现问题时不保证能解决
所以选用了Spark作为天池的数据同步方式
下面就来介绍如何使用Spark进行数据同步

1.抽取数据文件
1.1 创建Spark入口对象指定源数据的Hive元数据服务
扩展:在远程连接Hive时Hive有两种服务Hive Metastore Server和HiveServer2
HiveServer2是JDBC连接,使用这种方式会占用数据本地集群的计算资源(常用默认端口10000的那种)
Spark连接Hive可以使用Hive Metastore Server,这样只需连接Hive的元数据,通过元数据记录的数据路径拉取数据使用Spark对数据进行计算(常用默认端口9083的那种)
在创建SparkSession对象时动态传参传入源数据集群的Hive Metastore Server地址

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值