https://segmentfault.com/a/1190000019456175
本文适用有入门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最重要的原因是本人使用Spark比较熟!
下面就来介绍如何使用Spark进行数据同步
1. 抽取数据文件
1.1 创建Spark入口对象指定源数据的Hive元数据服务
扩展:在远程连接Hive时Hive有两种服务Hive Meta