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

典型场景:从HDFS/OBS导出数据到SFTP服务器

操作场景

该任务指导用户使用Loader将数据从HDFS/OBS导出到SFTP服务器。

前提条件

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

操作步骤

设置作业基本信息

  1. 登录“Loader WebUI”界面。

    1. 登录FusionInsight Manager系统,具体请参见访问FusionInsight Manager(MRS 3.x及之后版本)
    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. “连接”区域,单击“添加”新建一个的连接,在“连接器”中选择“sftp-connector”,单击“添加”,输入配置连接参数,单击“测试”验证连接是否可用,待提示“测试成功”后单击“确定”。Loader支持配置多个SFTP服务器操作数据,单击“添加”可增加多行SFTP服务器的配置信息。

    表1 连接参数

    参数名

    说明

    示例

    名称

    SFTP服务器连接的名称。

    sftpName

    Sftp服务器的IP

    SFTP服务器的IP地址。

    10.16.0.1

    Sftp服务器端口

    SFTP服务器的端口号。

    22

    Sftp用户名

    访问SFTP服务器的用户名。

    root

    Sftp密码

    访问SFTP服务器的密码。

    xxxx

    Sftp公钥

    Sftp服务器公钥。

    OdDt/yn...etM

    配置多个SFTP服务器时,HDFS/OBS的数据将分为多份随机导出到各个SFTP服务器。

    设置数据源信息

  4. 单击“下一步”,进入“输入设置”界面,在“源文件类型”中选择“HDFS”,设置数据源信息。

    表2 数据来源配置参数

    参数名

    解释说明

    示例

    输入目录

    从HDFS/OBS导出时的输入路径。

    说明:

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

    /user/test

    路径过滤器

    配置通配符对源文件的输入路径包含的目录进行过滤。“输入目录”不参与过滤。配置多个过滤条件时使用“,”隔开,配置为空时表示不过滤目录。不支持正则表达式过滤。

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

    *

    文件过滤器

    配置通配符对源文件的输入文件名进行过滤。配置多个过滤条件时使用“,”隔开。不能配置为空。不支持正则表达式过滤。

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

    *

    文件类型

    文件导入类型:

    • “TEXT_FILE”:导入文本文件并保存为文本文件
    • “SEQUENCE_FILE”:导入文本文件并保存在“sequence file”文件格式
    • “BINARY_FILE”:以二进制流的方式导入文件,可以导入任何格式的文件,不对文件做任何处理。
    说明:

    文件类型选择“TEXT_FILE”“SEQUENCE_FILE”导入时,Loader会自动根据文件的后缀选择对应的解压方法,对文件进行解压。

    TEXT_FILE

    文件分割方式

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

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

    FILE

    Map数

    配置数据操作的MapReduce任务中同时启动的Map数量。不可与“Map数据块大小”同时配置。参数值必须小于或等于3000,建议以SFTP服务器的CPU的核数作为其取值。

    说明:

    为了提高导入数据速度,需要确保以下条件:

    • 每个Map连接时,相当于一个客户端连接,因此需要确保SFTP服务器最大连接数大于Map数量。
    • 确保SFTP服务器上的磁盘IO或网络带宽都未达到上限。

    20

    Map数据块大小

    配置数据操作的MapReduce任务中启动map所处理的数据大小,单位为MB。参数值必须大于或等于100,建议配置值为1000。不可与“Map数”同时配置。

    -

    设置数据转换

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

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

    输入类型

    输出类型

    CSV文件输入

    文件输出

    HTML输入

    文件输出

    固定宽度文件输入

    文件输出

    图3 算子操作方法示意

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

  6. 单击“下一步”,进入“输出设置”界面,设置数据保存方式。

    表4 输出设置参数

    参数名

    解释说明

    示例

    输出路径

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

    说明:

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

    /opt/tempfile

    文件操作方式

    数据导入时的操作行为。全部数据从输入路径导入到目标路径时,先保存在临时目录,然后再从临时目录复制转移至目标路径,任务完成时删除临时路径的文件。转移临时文件存在同名文件时有以下行为:

    • “OVERRIDE”:直接覆盖旧文件。
    • “RENAME”:重命名新文件。无扩展名的文件直接增加字符串后缀,有扩展名的文件在文件名增加字符串后缀。字符串具有唯一性。
    • “APPEND”:在旧文件尾部合并新文件内容。合并操作只是简单的追加,不保证追加文件是否可以使用。例如文本文件可合并,压缩文件合并后可能无法使用。
    • “IGNORE”:保留旧文件,不复制新文件。
    • “ERROR”:转移过程中出现同名文件时任务将停止执行并报错,已转移的文件导入成功,同名的文件及未转移的文档导入失败。

    OVERRIDE

    编码类型

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

    UTF-8

    压缩

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

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

    true

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

    查看作业完成情况

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

    图4 查看作业