使用Loader从HDFS导入数据到ClickHouse
操作场景
该任务指导用户使用Loader将文件从HDFS导入到ClickHouse。
前提条件
- 创建或获取该任务中创建Loader作业的业务用户和密码。
- 确保用户已授权访问作业执行时操作的HDFS目录和数据。
- ClickHouse相关表已创建,并确保用户已授权访问作业执行时操作该表的权限。
- 检查磁盘空间,确保没有出现告警且余量满足导入、导出数据的大小。
- 使用Loader从HDFS导入数据时,确保HDFS输入路径目录名、输入路径的子目录名及子文件名不能包含特殊字符/\"':;,中的任意字符。
- 如果设置的作业需要使用指定YARN队列功能,该用户需要已授权有相关YARN队列的权限。
- 设置任务的用户需要获取该任务的执行权限,并获取该任务对应的连接的使用权限。
操作步骤
设置作业基本信息
- 登录“Loader WebUI”界面。
- 登录FusionInsight Manager系统,具体请参见访问集群Manager。
- 选择“集群 > 服务 > Loader”。
- 单击“LoaderServer(节点名称,主)”打开“Loader WebUI”界面。
图1 Loader WebUI界面
- 单击“新建作业”,进入“基本信息”界面,创建作业基本信息。
图2 “基本信息”界面
- 在“名称”中输入作业的名称。
- 在“类型”中选择“导入”。
- 在“组”中设置作业所属组,默认没有已创建的组,单击“添加”创建一个新的组,输入组的名称,单击“确定”保存。
- 在“队列”中选择执行该作业的YARN队列。默认值“root.default”。
- 在“优先级”中选择执行该作业的YARN队列优先级。默认值为“NORMAL”。可选值为“VERY_LOW”、“LOW”、“NORMAL”、“HIGH”和“VERY_HIGH”。
- 在“连接”区域,单击“添加”新建一个的连接,在“连接器”中选择“hdfs-connector”,输入配置连接参数,单击“测试”验证连接是否可用,待提示“测试成功”后单击“确定”。
设置数据源信息
- 单击“下一步”,进入“输入设置”界面,设置数据源信息。
表1 输入设置参数 参数名
说明
示例
输入路径
HDFS中源文件的输入路径。
说明:路径参数可以使用宏定义,具体请参考Loader算子配置项中使用宏定义。
/user/test
路径过滤器
配置通配符对源文件的输入路径包含的目录进行过滤。“输入路径”不参与过滤。配置多个过滤条件时使用“,”隔开,配置为空时表示不过滤目录。不支持正则表达式过滤。
*
文件过滤器
配置通配符对源文件的输入文件名进行过滤。配置多个过滤条件时使用“,”隔开。不能配置为空。不支持正则表达式过滤。
*
编码类型
源文件的编码格式,如UTF-8。导入文本文件时才能配置。
UTF-8
后缀名
源文件导入成功后对输入文件增加的后缀值。该值为空,表示不加后缀。
.log
设置数据转换
- 单击“下一步”,进入“转换”界面,设置数据传输过程中的转换操作。算子的选择和参数设置具体请参考Loader算子帮助及表2。
图3 算子操作方法示意
设置数据保存信息并运行作业
- 单击“下一步”,进入“输出设置”界面,根据实际场景在“存储类型”选择“CLICKHOUSE”,设置数据保存方式。
表3 输出设置参数 存储类型
参数名
说明
示例
CLICKHOUSE
ClickHouse实例
在ClickHouse作业中,Loader支持从集群可添加的所有ClickHouse服务实例中选择任意一个。如果选定的ClickHouse服务实例在集群中未添加,则此作业无法正常运行。
ClickHouse
导入前清理数据
导入前清空原表的数据。“True”为执行清空,“False”为不执行。不配置此参数则默认不执行清空。
说明:如果导入的表为ClickHouse分布式表,且需要清理数据时,请在导入前手动删除ClickHouse分布式表对应的本地表中的数据。
false
Map数
配置数据操作的MapReduce任务中同时启动的map数量。参数值必须小于或等于3000。
20
Map数据块大小
ClickHouse不支持此参数,请配置“Map数”。
-
个数
Map任务的个数。
-
- 单击“保存并运行”,开始保存并运行作业。
查看作业完成情况
- 进入“Loader WebUI”界面,待“状态”显示“成功”则说明作业完成。
图4 查看作业
- 使用ClickHouse客户端,查询ClickHouse表数据是否和HDFS导入的数据一致。