文档首页/
MapReduce服务 MRS/
组件操作指南(LTS版)/
使用HBase/
HBase企业级能力增强/
增强HBase BulkLoad工具数据迁移能力/
配置BulkloadTool工具支持解析自定义分隔符
更新时间:2025-12-08 GMT+08:00
配置BulkloadTool工具支持解析自定义分隔符
操作场景
Phoenix提供了批量数据导入工具CsvBulkloadTool,相关特性介绍请参见https://phoenix.apache.org/bulk_dataload.html,在此特性基础上,支持导入自定义分隔符文件,即用户可以采用限定长度内的任意可见字符进行组合作为分隔符来导入数据文件。
约束与限制
新增参数介绍
基于开源CsvBulkloadTool,新增以下两个参数:
- --multiple-delimiter(-md)
用于指定自定义分隔符,当此命令参数存在时,会优先生效,覆盖掉原命令中的-d参数。
- --multiple-delimiter-skip-check(-mdsc)
用于跳过分隔符长度及白名单校验,不建议使用。
按自定义分隔符导入数据至HBase
- 将数据文件上传到客户端所在节点,例如上传名为“data.csv”的文件到客户端所在节点的“/opt/test”目录下,分隔符为“|^[”,文件内容如下所示:

- 以客户端安装用户,登录安装客户端的节点。
- 执行以下命令切换到客户端目录:
cd 客户端安装目录
- 执行以下命令配置环境变量:
source bigdata_env
- 如果当前集群已启用Kerberos认证(安全模式),执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限和HDFS的操作权限:
kinit 组件业务用户
如果当前集群未启用Kerberos认证(普通模式),则执行以下命令设置Hadoop用户名:
export HADOOP_USER_NAME=hbase
- 执行以下命令,把1的数据文件“data.csv”上传至HDFS目录,例如上传至“/tmp”目录:
hdfs dfs -put /opt/test/data.csv /tmp
- 执行以下命令登录Phoenix客户端:
sqlline.py
- 执行以下命令创建TEST表:
CREATE TABLE TEST ( ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR, AGE INTEGER, ADDRESS VARCHAR, GENDER BOOLEAN, A DECIMAL, B DECIMAL ) split on (1, 2, 3,4,5,6,7,8,9);
表创建成功后,执行以下命令退出Phoenix命令行:
!quit
- 执行以下命令导入数据:
hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '自定义分隔符' -t 表名 -i 数据文件路径
例如,导入数据文件“data.csv”到TEST表:
hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '|^[' -t TEST -i /tmp/data.csv
- 执行以下命令,查看导入表TEST的数据:
登录Phoenix客户端:
sqlline.py
查询表TEST的数据:
SELECT * FROM TEST LIMIT 10;
如图1所示,文件“data.csv”中的数据已导入至TEST表中。
