1 目标库配置
创建HDFS目录并赋权
hdfs dfs -mkdir hdfs_path/zcbus
hdfs dfs -chmod 777 hdfs_path/zcbus
注:对于拥有kerboros认证的HDFS环境,在创建对应的目录权限后,请将krb5.conf和krb5.keytab配置文件复制到软件工作目录当中
2 配置说明
2.1 特殊属性通道参数说明
发送全量数据时,在通道属性处修改MERGE_KAFKA_MESSAGE_MAX_LEN参数提升效率
- 参数描述:
- 此参数可以指定Merge后数据包的大小,单位M,最小为5M,最大上限根据数据库类型有所不同,建议为128M。
- 此参数修改后,需要重启服务才能生效。
- 参数描述:
开启数据延迟加载real_delay_load_max和real_delay_load_min,配置增量同时只加载1张表real_load_table_count_at_once
- 参数描述:
(1)增量延迟加载最大时间,单位为分钟,默认为0,不延迟。real_delay_load_min和real_delay_load_max必须同时设置,而且real_delay_load_max需要大于real_delay_load_min。 如果(当前时间-kafka里数据的时间) <= real_delay_load_min,则暂时不加载,等到(当前时间-kafka里数据的时间) > real_delay_load_max启动加载,直到(当前时间-kafka里数据的时间) <= real_delay_load_min暂停加载,进入下一轮等待。
(2)增量延迟加载最小时间,单位为分钟,默认为0,不延迟。
(3)增量时同时装载的表个数,默认为0,所有的表一起装载。
- 参数描述:
备注:
当目标库HDFS时,建议先通过DORIS将全量及增量数据进行整合,再通过订阅-数据表页面的快照功能,将全量数据推送至HDFS,尽量减少文件碎片。详情请见维护文档-数据订阅-大数据-DORIS
2.2 KERBEROS认证
如客户环境为zookeeper管理的hive集群模式,在zookeeper认证中 采用KERBEROS三段式认证方式:principal=hadoop.hadoop.com@HADOOP.COM ;通过zookeeper后 zookeeper自动将principal改为dmo@HADOOP.COM,数据上传HDFS仍需要再次进行KERBEROS 认证。
注意:
- (1) principal大小写敏感,且时差必须在五分钟之内;
- (2) 数据库配置时 host填写如下信息:jdbc:hive2://10.29.43.39:21066/default;principal=hive/hadoop.hadoop.com@HADOOP.com;
port,user,password置空即可—因为采用KERBEROS认证 不再需要输入用户密码等信息 ;- (3) 配置HDFS时注意dfs.data.transfer.protection参数 要求两端保持一致
- (4)在对应容器当中的config目录下创建个{customerid}.ini,里面写上如下内容
[kerberos] hadoop.rpc.protection=authentication,privacy
2.2.1 在后台程序中:可用如下内容检测hdfs连接是否正常
[root@a6647b3b0b79 jar]# java -cp zcbusService.jar com.zcbus.connector.HadoopAccess -h
ZCBUS_CACHE_PATH=/usr/local/zcbus/cache
ZCBUS_CLUSTERID=0
Usage:
-h help
-hdfs ip:port hadoop ip port
-user hadoop user
-principal dmo@HADOOP.COM for kerberos
-customerid 10000 for kerberos make keytab file name
-put /usr/1.txt /hadoop/1.txt upload file to hdfs
例如:
上传本地文件:
java -Duser.timezone=Asia/Shanghai -Djava.security.krb5.conf=/usr/local/zcbus/config/10040_krb5.conf -cp zcbusService.jar com.zcbus.connector.HadoopAccess -hdfs 10.29.34.40:25000 -principal dmo@HADOOP.COM -customerid 10004 -put /usr/local/zcbus/cache/db_service10019/1.txt hdfs://hacluster/user/hive/warehouse/test.db/
查看HDFS文件是否上传成功:
java -Duser.timezone=Asia/Shanghai -Djava.security.krb5.conf=/usr/local/zcbus/config/10040_krb5.conf -cp zcbusService.jar com.zcbus.connector.HadoopAccess -hdfs pass-bigdata-hadoop-002.chinatelecom.cn:8020 -principal zcbus@CHINATELECOM.CN -customerid 10040 -ls /warehouse/tablespace/external/hive/stgb_acct.db/bill_end/eday_id=20240430/year=2023/
2.3 配置目标数据库参数列表
参数名称 | 默认值 | 参数描述 |
---|---|---|
host | 127.0.0.1 | hdfs地址 |
port | 8020 | hdfs端口 |
hdfs_path | /tmp | 上传文件的目标hdfs路径,路径内容支持使用用户名、表名或bsd里的时间进行替换,如:/data1/#schema_name#/#table_name#/eday_id=#YYYYMMDD#/year=#YYYY# |
service_host | 127.0.0.1 | API服务地址 |
service_port | 10000 | API服务端口 |
authentication | NULL | 认证方式,目前支持kerberos,kerberos认证,需要将认证用到的文件krb5.conf和krb5.keytab拷贝到config目录下,为了防止冲突,加customerid前缀进行区分,比如customerid是10002的订阅服务使用的配置文件,修改为10002_krb5.conf和10002.keytab |
principal | NULL | kerberos认证使用,注册过KDC的客户端名称 |
jdbc_mode | 0 | 设置为开启(1)时,使用jdbc模式装载,自动忽略service_host和service_port的设置 |
db_type | HDFS | 数据库类型 |
文档更新时间: 2025-01-06 22:37 作者:操李红