datax parquet hdfswriter

datax parquet hdfswriter

背景
为什么我要开发这个工具呢?我之前安装的cdh集群版本是5.14,里面的impala支持parquet,不支持orc,但是偏偏呀,datax不支持直接写到hdfs的parquet。虽说datax和impala同时还支持txt格式,但是查询速度比较慢,问了很多,见别人有开发datax parquet reader的,就是没有writer,于是就有了我这个datax parquet hdfswriter。

使用方式

jar包资源可以扫码付款20元,私聊本人

1、很简单,只需要将我的文件夹替换掉你的datax里面的hdfswriter文件夹即可
2、设置"fileType":“parquet”,其他的参照datax 阿里官方即可

例子

{
    "job":{
        "content":[
            {
                "writer":{
                    "parameter":{
                        "writeMode":"append",
                        "column":[
                            {
                                "type":"bigint",
                                "name":"user_id"
                            },
                            {
                                "type":"string",
                                "name":"mobile"
                            }
                        ],
                        "fieldDelimiter":" ",
                        "fileType":"parquet",
                        "hadoopConfig":{
                            "dfs.nameservices":"nameservice1",
                            "dfs.ha.namenodes.nameservice1":"namenode128,namenode113",
                            "dfs.client.failover.proxy.provider.nameservice1":"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider",
                            "dfs.namenode.rpc-address.nameservice1.namenode113":"*****:8020",
                            "dfs.namenode.rpc-address.nameservice1.namenode128":"*****:8020"
                        },
                        "fileName":"rw_user_login",
                        "path":"/user/hive/warehouse/ods_test.db/rw_user_login/20200420",
                        "defaultFS":"hdfs://nameservice1"
                    },
                    "name":"hdfswriter"
                },
                "reader":{
                    "parameter":{
                        "username":"bigdata",
                        "column":[
                            "user_id",
                            "mobile"
                        ],
                        "connection":[
                            {
                                "table":[
                                    "rw_user_login"
                                ],
                                "jdbcUrl":[
                                    "jdbc:mysql://********:3306/***?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8"
                                ]
                            }
                        ],
                        "password":"****",
                        "splitPk":"user_id"
                    },
                    "name":"mysqlreader"
                }
            }
        ],
        "setting":{
            "speed":{
                "channel":8
            }
        }
    },
    "setting":{

    }
}
亲测速度对比,仅仅比text格式 慢10%,但是后续的查询速度快的很多
Mac本机测试
parquet
任务启动时刻                    : 2020-04-21 16:18:09
任务结束时刻                    : 2020-04-21 16:30:17
任务总计耗时                    :                727s
任务平均流量                    :          821.24KB/s
记录写入速度                    :           9725rec/s
读出记录总数                    :             7002364
读写失败总数                    :                   0

text
任务启动时刻                    : 2020-04-21 16:54:42
任务结束时刻                    : 2020-04-21 17:05:28
任务总计耗时                    :                645s
任务平均流量                    :          923.90KB/s
记录写入速度                    :          10941rec/s
读出记录总数                    :             7002364
读写失败总数                    :                   0
生产环境8g内存运行
任务启动时刻                    : 2020-04-21 18:29:14
任务结束时刻                    : 2020-04-21 18:29:56
任务总计耗时                    :                 42s
任务平均流量                    :           14.44MB/s
记录写入速度                    :         175059rec/s
读出记录总数                    :             7002364
读写失败总数                    :                   0

jar包资源可以扫码付款20元后,联系收款方加微信

datax parquet hdfswriter_第1张图片 datax parquet hdfswriter_第2张图片

你可能感兴趣的:(hadoop,datax)