datax将mysql导入文本_使用阿里Datax从Mysql向Hbase导入数据

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://:/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,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值