开发者社区> sh_jepson> 正文

ETL数据导入/导出工具 HData(支持JDBC、Hive、HDFS、HBase、Kafka等)

简介: HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC、Hive、HDFS、HBase、MongoDB、FTP、Http、CSV、Excel、Kafka等)之间数据交换的问题。
+关注继续查看

HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC、Hive、HDFS、HBase、MongoDB、FTP、Http、CSV、Excel、Kafka等)之间数据交换的问题。HData在设计上同时参考了开源的Sqoop、DataX,却与之有不同的实现。HData采用“框架+插件”的结构,具有较好的扩展性,框架相当于数据缓冲区,插件则为访问不同的数据源提供实现。

【HData特性】

1、异构数据源之间高速数据传输;

2、跨平台独立运行;

3、数据传输过程全内存操作,不读写磁盘;

4、插件式扩展。

【HData设计】

  • 配置文件:XML格式,配置Reader、Writer的参数(如:并行度、数据库连接地址、账号、密码等);

  • Reader:数据读取模块,负责从数据源读取数据并写入RingBuffer;

  • Splitter:根据配置文件中Reader的并行度构造相应数据的ReaderConfig对象供Reader使用,以实现数据的并行读取;

  • RingBugffer:来自Disruptor的高性能环形数据缓冲区,基于事件监听模式的异步实现,采用无锁方式针对CPU缓存优化,在此用于Reader和Writer的数据交换;

  • Writer:数据写入模块,负责从RingBuffer中读取数据并写入目标数据源。

HData框架通过配置读取解析、RingBugffer 缓冲区、线程池封装等技术,统一处理了数据传输中的基本问题,并提供Reader、Splitter、Writer插件接口,基于此可以方便地开发出各种插件,以满足各种数据源访问的需求。

【编译&运行】

  • 编译

    执行 ./bin/package-hdata.sh 命令,执行成功后将会生成压缩包 ./buildhdata.tar.gz ,然后解压即可。

  • 运行

    ./bin/hdata --reader READER_NAME -Rk1=v1 -Rk2=v2 --writer WRITER_NAME -Wk1=v1 -Wk2=v2

READER_NAME、WRITER_NAME分别为读/写插件的名称,例如:jdbc、hive Reader插件的参数配置以-R为前缀,Writer插件的参数配置以-W为前缀。

配置参数请参考:https://github.com/stuxuhai/HData

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
06-PDI(Kettle)读取Hive写入HDFS,读取HDFS写入HBase中(下)
文章目录 06-PDI(Kettle)读取Hive写入HDFS,读取HDFS写入HBase中 环境准备 1.安装MySQL 1.1mysql安装参考: 1.2安装过程
36 0
06-PDI(Kettle)读取Hive写入HDFS,读取HDFS写入HBase中(上)
文章目录 06-PDI(Kettle)读取Hive写入HDFS,读取HDFS写入HBase中 环境准备 1.安装MySQL 1.1mysql安装参考: 1.2安装过程
54 0
HBase与HDFS之间的WAL(HLog)存储机制答疑解惑
HBase与HDFS之间的WAL(HLog)存储机制答疑解惑
78 0
HDFS/HBase技术报告·分布式数据库设计架构的全面解析
HDFS/HBase技术报告·分布式数据库设计架构的全面解析
73 0
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
145 0
在HDFS的HA模式下配置HBase
在HDFS的HA模式下配置HBase
61 0
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
133 0
通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据
下文将重点说明通过Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互导最后给出命令。 一、Mysql与HDFS互导数据 环境: 宿主机器操作系统为Win7,Mysql安装在宿主机上,宿主机地址为192.168.66.96 3台虚拟机操作系统为Ubuntu-12.04.1-32位 三台虚拟机已成功安装hadoop,并实现免密钥互访,配hosts为: 192.168.66.91 masternode 192.168.66.92 slavenode1 192.168.66.93 slavenode2 /etc/profile已配置好必备环境变量HADOO
168 0
大数据平台解决方案,Hadoop + HDFS+Hive+Hbase大数据开发整体架构设计
HDFS:分布式、高度容错性文件系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用,大规模的波若大数据平台(BR-odp)用户部署上1000台的HDFS集群。
3984 0
+关注
sh_jepson
遇之问题,与之斗争,穷尽方法,提高自己,重新再来。 https://github.com/Hackeruncle
文章
问答
文章排行榜
最热
最新
相关电子书
更多
海量数据分布式存储——Apache HDFS之最新进展
立即下载
消息队列 Kafka 版差异化特性
立即下载
任庆盛|Flink CDC + Kafka 加速业务实时化
立即下载