更新时间:2024-11-29 GMT+08:00

典型场景:从FTP服务器导入数据到HBase

操作场景

该任务指导用户使用Loader将数据从FTP服务器导入到HBase。

前提条件

  • 创建或获取该任务中创建Loader作业的业务用户和密码。
  • 获取FTP服务器使用的用户和密码,且该用户具备FTP服务器上源文件的读取权限。若源文件在导入后文件名要增加后缀,则该用户还需具备源文件的写入权限。
  • 检查磁盘空间,确保没有出现告警且余量满足导入、导出数据的大小。
  • 使用Loader从FTP服务器导入数据时,确保FTP服务器输入路径目录名、输入路径的子目录名及子文件名不能包含特殊字符/\"':;,中的任意字符。
  • 如果设置的作业需要使用指定YARN队列功能,该用户需要已授权有相关YARN队列的权限。
  • 设置任务的用户需要获取该任务的执行权限,并获取该任务对应的连接的使用权限。

操作步骤

设置作业基本信息

  1. 登录“Loader WebUI”界面。

    1. 登录FusionInsight Manager系统。
    2. 选择“集群 > 服务 > Loader”。
    3. 单击“LoaderServer(节点名称,主)”打开“Loader WebUI”界面。
      图1 Loader WebUI界面

  2. 单击“新建作业”,进入“基本信息”界面,创建作业基本信息。

    图2 “基本信息”界面
    1. “名称”中输入作业的名称。
    2. “类型”中选择“导入”
    3. “组”中设置作业所属组,默认没有已创建的组,单击“添加”创建一个新的组,输入组的名称,单击“确定”保存。
    4. “队列”中选择执行该作业的YARN队列。默认值“root.default”
    5. “优先级”中选择执行该作业的YARN队列优先级。默认值为“NORMAL”。可选值为“VERY_LOW”“LOW”“NORMAL”“HIGH”“VERY_HIGH”

  3. “连接”区域,单击“添加”新建一个的连接,在“连接器”中选择“ftp-connector”,单击“添加”,输入配置连接参数,单击“测试”验证连接是否可用,待提示“测试成功”后单击“确定”。Loader支持配置多个FTP服务器操作数据,单击“添加”可增加多行FTP服务器的配置信息。

    表1 连接参数

    参数名

    说明

    示例

    FTP服务器的IP

    FTP服务器的IP地址。

    ftpName

    FTP服务器端口

    FTP服务器的端口号。

    22

    FTP用户名

    访问FTP服务器的用户名。

    root

    FTP密码

    访问FTP服务器的密码。

    xxxx

    FTP模式

    设置FTP访问模式,“ACTIVE”表示主动模式,“PASSIVE”表示被动模式。不指定参数值,默认为被动模式。

    PASSIVE

    FTP协议

    设置FTP传输协议:

    • “FTP”:FTP协议。
    • “SSL_EXPLICIT”:显式SSL协议。
    • “SSL_IMPLICIT”:隐式SSL协议。
    • “TLS_EXPLICIT”:显式TLS协议。
    • “TLS_IMPLICIT”:隐式TLS协议。

    不指定参数值,默认为FTP协议。

    FTP

    文件名编码类型

    填写FTP服务器支持的文件名、文件路径编码格式,不填写时使用系统默认格式UTF-8。

    UTF-8

    配置多个FTP服务器,多个服务器指定目录的数据将导入到HBase。

    设置数据源信息

  4. 单击“下一步”,进入“输入设置”界面,设置数据源信息。

    表2 输入设置参数

    参数名

    说明

    示例

    输入路径

    FTP服务器中源文件的输入路径,如果连接器配置多个地址此处可对应使用“;”分隔多个输入路径,数量需要与连接器中服务器的数量一致。

    说明:

    路径参数可以使用宏定义,具体请参考配置项中使用宏定义

    /opt/tempfile;/opt

    文件分割方式

    选择按文件或大小分割源文件,作为数据导入的MapReduce任务中各个map的输入文件。

    • 选择“FILE”,表示按文件分割源文件,即每个map处理一个或多个完整的源文件,同一个源文件不可分配至不同map,完成数据导入后保持源文件的目录结构。
    • 选择“SIZE”,表示按大小分割源文件,即每个map处理一定大小的输入文件,同一个源文件可分割至多个map,数据保存至输出目录时保存的文件数与map数量相同,文件名格式为“import_part_xxxx”“xxxx”为系统生成的随机数,具有唯一性。

    FILE

    过滤类型

    选择文件过滤的条件,与“路径过滤器”“文件过滤器”配合使用。

    • 选择“WILDCARD”,表示使用通配符过滤。
    • 选择“REGEX”,表示使用正则表达式匹配。
    • 不选择,则默认为通配符过滤。

    WILDCARD

    路径过滤器

    “过滤类型”配合使用,配置通配符或正则表达式对源文件的输入路径包含的目录进行过滤。“输入路径”不参与过滤。使用分号“;”分隔多个服务器上的路径过滤器,每个服务器的多个过滤条件使用逗号“,”隔开。配置为空时表示不过滤目录。

    • “?”匹配单个字符。
    • “*”配置多个字符。
    • 在匹配条件前加“^”表示取反,即文件过滤。

    例如,当“过滤类型”选择“WILDCARD”时,将该参数设置为“*”;当“过滤类型”选择“REGEX”时,将该参数设置为“\\.*”

    1*,2*;1*

    文件过滤器

    “过滤类型”配合使用,配置通配符或正则表达式对源文件的输入文件名进行过滤。使用分号“;”分隔多个服务器上的文件过滤器,每个服务器的多个过滤条件使用逗号“,”隔开。该参数不能配置为空。

    • “?”匹配单个字符。
    • “*”配置多个字符。
    • 在匹配条件前加“^”表示取反,即文件过滤。

    例如,当“过滤类型”选择“WILDCARD”时,将该参数设置为“*”;当“过滤类型”选择“REGEX”时,将该参数设置为“\\.*”

    *.txt,*.csv;*.txt

    编码类型

    源文件的编码格式,如UTF-8、GBK。导入文本文件时才能配置。

    UTF-8

    后缀名

    源文件导入成功后对输入文件增加的后缀值。该值为空,则表示不加后缀。数据源为文件系统,该参数才有效。用户若需增量导入数据建议设置该参数。

    例如设置为“.txt”,源文件为“test-loader.csv”,则导出后源文件名为“test-loader.csv.txt”

    .log

    压缩

    使用FTP协议导入数据时,是否开启压缩传输功能以减小带宽使用。

    • 选择“true”,表示开启压缩。
    • 选择“false”,表示关闭压缩。

    true

    设置数据转换

  5. 单击“下一步”,进入“转换”界面,设置数据传输过程中的转换操作。算子的选择和参数设置具体请参考算子帮助表3

    表3 算子输入、输出参数设置

    输入类型

    输出类型

    CSV文件输入

    HBase输出

    HTML输入

    HBase输出

    固定宽度文件输入

    HBase输出

    在“输入”中把“CSV文件输入”或者“HTML输入”或者“固定宽度文件输入”拖拽到网格中,在“输出”中把“HBase输出”拖拽到网格中,“输入”与“输出”之间用箭头进行连接。

    设置数据保存信息并运行作业

  6. 单击“下一步”,进入“输出设置”界面,根据实际场景在“存储类型”选择“HBASE_BULKLOAD”“HBASE_PUTLIST”,设置数据保存方式。

    表4 输出设置参数

    存储类型

    适用场景

    参数名

    说明

    示例

    HBASE_BULKLOAD

    数据量大

    HBase实例

    在HBase作业中,Loader支持从集群可添加的所有HBase服务实例中选择任意一个。如果选定的HBase服务实例在集群中未添加,则此作业无法正常运行。

    HBase

    导入前清理数据

    导入前清空原表的数据。“True”为执行清空,“False”为不执行。不配置此参数则默认不执行清空。

    true

    Map数

    配置数据操作的MapReduce任务中同时启动的map数量。参数值必须小于或等于3000,建议以FTP服务器当前最大连接数作为其取值。

    20

    Map数据块大小

    HBase不支持此参数,请配置“Map数”

    -

    HBASE_PUTLIST

    数据量小

    HBase实例

    在HBase作业中,Loader支持从集群可添加的所有HBase服务实例中选择任意一个。如果选定的HBase服务实例在集群中未添加,则此作业无法正常运行。

    HBase

    Map数

    配置数据操作的MapReduce任务中同时启动的map数量。参数值必须小于或等于3000。

    20

    Map数据块大小

    HBase不支持此参数,请配置“Map数”

    -

  7. 单击“保存并运行”,开始保存并运行作业。

    查看作业完成情况

  8. 进入“Loader WebUI”界面,待“状态”显示“成功”则说明作业完成。

    图3 查看作业