使用阿里Datax从Mysql向Hbase导入数据

Posted Hbase工作笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用阿里Datax从Mysql向Hbase导入数据相关的知识,希望对你有一定的参考价值。

再不点蓝字关注,机会就要飞走了哦!

使用阿里Datax从Mysql向Hbase导入数据


前言:

详细Datax介绍请查看阅读原文相关介绍,本文主要讲下如何使用Datax从mysql数据库向Hbase中导入数据,因为官网无此方面相关配置介绍,我也是按着官网的简单介绍尝试摸索出来的,这里分享给大家。


1.Datax 是什么?


DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。


使用阿里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://<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导入数据的主要内容,如果未能解决你的问题,请参考以下文章

大数据DataX:HBase导入到MySQL

大数据DataX:MySQL导入到HBase

Datax官方笔记总结

去O数据同步助手-DataX

去O数据同步助手-DataX

DataX使用入门