使用阿里Datax从Mysql向Hbase导入数据
Posted Hbase工作笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用阿里Datax从Mysql向Hbase导入数据相关的知识,希望对你有一定的参考价值。
再不点蓝字关注,机会就要飞走了哦!
前言:
详细Datax介绍请查看阅读原文相关介绍,本文主要讲下如何使用Datax从mysql数据库向Hbase中导入数据,因为官网无此方面相关配置介绍,我也是按着官网的简单介绍尝试摸索出来的,这里分享给大家。
1.Datax 是什么?
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
2.为什么使用Datax不使用Sqoop?
在工作中,有这么一个需求:从mysql中向Hbase中导入数据,其中Hbase的Rowkey由Mysql库中第一个字段A与第二个地段B通过下划线拼接而成,即:Rowkey=A_B.
而使用Sqoop导入数据只能指定一个字段(目前探索是这样,如果有误请大家指教),而Datax则提供了相关配置,可以根据数据源表字段设计Hbase的Rowkey字段,因此方便了很多。
再者,Datax安装方便,所有配置均通过Json文件进行配置,十分方便,而且清晰。
3.Json文件配置
Datax安装请看阅读原文,非常简单,因为所有的配置都在JSon文件中,这里我将自己的配置文件信息贴出,相关字段介绍同样请看阅读原文(更详细)。
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [],
"connection": [
{
"jdbcUrl": ["jdbc:mysql://<ip>:<port>/db_name"],
"querySql": ["sql语句"],
}
],
"password": "密码",
"username": "用户名"
}
},
"writer": {
"name": "hbase11xwriter",
"parameter": {
"hbaseConfig": {
"hbase.rootdir": "hdfs://xxxx:8020/hbase",
"hbase.cluster.distributed": "true",
"hbase.zookeeper.quorum": "zookeeper节点名称,不必写端口号"
},
"table": "hbase表名",
"mode": "normal",
"rowkeyColumn": [
{
"index":2,
"type":"string"
},
{
"index":-1,
"type":"string",
"value":"_"
},
{
"index":0,
"type":"string"
}
],
"column": [
{
"index":0,
"name": "列族:列名",
"type": "string"
},
{
"index":1,
"name": "列族:列名",
"type": "string"
},
{
"index":2,
"name": "列族:列名",
"type": "string"
}
],
"versionColumn":{
"index": -1,
"value":"123456789"
},
"encoding": "utf-8"
}
}
}
],
"setting": {
"speed": {
"channel": 20(并发数)
}
}
}
}
上面JSon文件中说明几点:
a. index 对应 mysql 表字段,0代表第一个字段
b. sql 语句中查出多少字段,Column 节点就要指定多少个name节点
c. hbase 1.1 之后版本 writer name 要指定为: hbase11xwriter
d. Json 文件中红色部分需要变更为自己的环境配置
如有任何疑问或是错误可直接加我微信一起探讨:3254402856,感谢!
想对你说:“
如果觉得还不错就帮我分享吧,
您的分享是我进行到底的动力。
有时候也挺累的,
但我想人生短短几十年,
如果有一天注定要离开,
我想,我要留下点什么。”
Hbase|Kylin|Hive|Impala|Spark|Phoenix ect.
虽没官方认证
将最好的祝福送给正在阅读的你,感恩!
以上是关于使用阿里Datax从Mysql向Hbase导入数据的主要内容,如果未能解决你的问题,请参考以下文章