第3.6章:DataX访问Hive2拉取数据(拓展篇)

DataX本身没有提供Hive支持,hivereader仍是通过hdfs的方式进行抽取的。在调研中发现,DataX介绍材料中提到通用RDBMS支持所有关系型数据库,RDBMSReader通过JDBC连接远程RDBMS数据库,并执行相应的sql语句将数据从RDBMS库中SELECT出来。

那么理论上,使用RDBMSReader直接访问Hive2获取数据方案可行。通过参考RDBMSReader插件文档(https://github.com/alibaba/DataX/blob/master/rdbmsreader/doc/rdbmsreader.md),从Hive2拉取数据可以分三步进行:

1、下载Hive JDBC驱动

Apache Hive可以使用安装包JDBC路径下的驱动包,例如:

apache-hive-3.1.2-bin/jdbc/hive-jdbc-3.1.2-standalone.jar

CDH可以使用官网下载的驱动包,下载地址(需要登录):

https://www.cloudera.com/downloads/connectors/hive/jdbc/2-6-11.htmlhttps://www.cloudera.com/downloads/connectors/hive/jdbc/2-6-11.html

2、配置DataX RDBMSReader

以Apache Hive 3.1.2为例,将hive驱动jar包hive-jdbc-3.1.2-standalone.jar,复制到datax/plugin/reader/rdbmsreader/libs目录下,并修改datax/plugin/reader/rdbmsreader/plugin.json文件,在文件中加入hive驱动org.apache.hive.jdbc.HiveDriver:

{

    "name": "rdbmsreader",

    "class": "com.alibaba.datax.plugin.reader.rdbmsreader.RdbmsReader",

    "description": "useScene: prod. mechanism: Jdbc connection using the database, execute select sql, retrieve data from the ResultSet. warn: The more you know about the database, the less problems you encounter.",

    "developer": "alibaba",

    "drivers":["dm.jdbc.driver.DmDriver","com.sybase.jdbc3.jdbc.SybDriver", "com.edb.Driver","com.cloudera.impala.jdbc41.Driver", "ru.yandex.clickhouse.ClickHouseDriver", "org.apache.hive.jdbc.HiveDriver"]

}

3、编写job文件

DataX配置完成后,我们就可以编写json文件。比如我们需要将Hive中test1表的数据导入至StarRocks中table_hive表中,json示例(注意Hive密码不能为空):

{

    "job": {

        "setting": {

            "speed": {

                 "channel": 1

            },

            "errorLimit": {

                "record": 0,

                "percentage": 0

            }

        },

        "content": [

            {

               "reader": {

                   "name": "rdbmsreader",

                   "parameter": {

                       "username": "starrocks",

                       "password": "starrocks",

                       "column": ["id","name"],

                       "where": "",

                       "connection": [

                           {

                               "table": ["test1"],

                               "jdbcUrl": ["jdbc:hive2://192.168.110.201:10000/default"]

                           }

                       ]

                   }

               },

               "writer": {

                    "name": "starrockswriter",

                    "parameter": {

                        "username": "root",

                        "password": "root",

                        "database": "starrocks",

                        "table": "table_hive",

                        "column": ["id", "name"],

                        "preSql": [],

                        "postSql": [],

                        "jdbcUrl": "jdbc:mysql://192.168.110.101:9030",

                        "loadUrl": ["192.168.110.101:8030"],

                        "loadProps": {}

                    }

                }

            }

        ]

    }

}

4、使用拓展

RDBMSReader理论上也可以通过JDBC的方式获取Impala+Kudu的数据,总体操作流程应为(暂未实践):

1、下载对应的 JDBC 驱动,并拷贝到 plugin/reader/rdbmsreader/libs 目录。

2、修改 plugin/reader/rdbmsreader/plugin.json 文件,在drivers中添加正确的 JDBC 驱动名,Impala的驱动名为:com.cloudera.impala.jdbc41.Driver,连接url为:jdbc:impala://localhost:21050。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值