更新时间:2023-08-17 GMT+08:00

loader-tool工具使用指导

概述

loader-tool工具是Loader客户端工具之一,包括“lt-ucc”“lt-ucj”“lt-ctl”三个工具。

Loader支持通过参数选项或作业模板这两种方式,对连接器进行创建、更新、查询和删除,以及对Loader作业进行创建、更新、查询、删除、启动和停止等操作。

本章节适用于MRS 3.x及后续版本。

loader-tool工具是异步接口,命令提交后其结果不会实时返回到控制台,因此对连接器的创建、更新、查询和删除等操作,以及对Loader作业的创建、更新、查询、删除、启动和停止等操作,其成功与否需要在Loader WebUI确认或通过查询server端日志确认。

  • 参数选项方式:

    通过直接添加具体配置项的参数调用脚本。

  • 作业模板方式:

    修改作业模板中所有配置项的参数值,调用脚本时引用修改后的作业模板文件。

    Loader客户端安装后,系统自动在“Loader客户端安装目录/loader-tools-1.99.3/loader-tool/job-config/”目录生成各种场景对应的作业模板,不同模板中配置项存在差异。作业模板中包含作业信息以及关联的连接器信息。

    作业模板为xml文件,文件名格式为“数据原保存位置-to-数据新保存位置.xml”,例如“sftp-to-hdfs.xml”。如果此场景的作业支持转换步骤,则存在同名的转换步骤配置文件,文件类型为json,例如“sftp-to-hdfs.json”

    作业模板中包含了连接器的配置信息。创建、更新连接器时,实际上仅调用到作业模板中的连接器的信息。

使用场景

不同的连接器或作业的配置项不同。

  • 更新个别配置项时,使用参数选项方式。
  • 创建连接器或作业时,使用作业模板方式。

    本工具目前支持FTP、HDFS、JDBC、MySQL、Oracle以及Oracle专用连接器,如果使用其他类型连接器,建议使用开源sqoop-shell工具。

参数说明

例如,Loader客户端的安装目录为:“/opt/client/Loader/”。

  • lt-ucc使用说明

    lt-ucc:loader-tool user-configuration-connection连接器配置工具,用于连接器的创建、更新和删除操作。

    表1 lt-ucc脚本“参数选项”说明

    参数选项

    说明

    参数值示例

    -help

    获取帮助信息。

    -

    -a <arg>

    执行的动作,有效值:create/update/delete,分别用于创建、更新和删除连接器。

    create

    -at <arg>

    登录认证的类型,有效值kerberos、simple。

    kerberos

    -uk <arg>

    是否使用keytab文件。

    true

    -au <arg>

    登录认证的用户名。

    bar

    -ap <arg>

    登录认证的密码,需要填写密文。

    密码加密方法:

    sh Loader客户端安装目录/Loader/loader-tools-1.99.3/encrypt_tool 用户非加密密码

    说明:

    非加密密码中含有特殊字符时需要转义。例如,$符号属于特殊字符,可使用单引号进行转义;非加密密码中含有单引号时可用双引号进行转义,非加密密码中含有双引号应使用反斜杠\进行转义。可参考Shell的转义字符规则。

    -

    -c <arg>

    登录认证的principal。

    bar

    -k <arg>

    登录认证的keytab文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/user.keytab

    -h <arg>

    MRS集群的配置文件路径。

    -h /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config

    -l <arg>

    登录的模板文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml

    -s <arg>

    Loader服务的浮动IP和端口。

    格式为:浮动IP:端口

    端口默认值为21351

    127.0.0.1:21351

    -w <arg>

    作业的模板文件路径,用于获取作业的详细信息。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml

    -z <arg>

    ZooKeeper quorum实例的IP地址和端口号,格式为IP地址:端口,配置多个用“,”分开。

    127.0.0.0:2181, 127.0.0.1:2181

    -n <arg>

    连接器名称。

    vt_sftp_test

    -t <arg>

    连接器类型。

    sftp-connector

    -P <arg>

    更新某个属性的值,格式:-Pparam1=value1,param1为作业模板中连接器对应的属性名称。如果更新的是SFTP和FTP的连接器信息,还必须带上密码参数:

    -Pconnection.sftpPassword=密码密文

    -Pconnection.sftpServerIp=10.6.26.11

    完整示例如下:

    ./bin/lt-ucc -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n vt_sftp_test -t sftp-connector -Pconnection.sftpPassword=密码密文 -Pconnection.sftpServerIp=10.6.26.111 -a update

    lt-ucc脚本的作业模板配置说明:

    以SFTP数据保存到HDFS为例,编辑“loader客户端安装目录/loader-tools-1.99.3/loader-tool/job-config/”目录下的“sftp-to-hdfs.xml”文件,连接器的配置如下:

    <!-- 连接数据库的信息 -->
    <sqoop.connection name="vt_sftp_test" type="sftp-connector">
    <connection.sftpServerIp>10.96.26.111</connection.sftpServerIp>
    <connection.sftpServerPort>22</connection.sftpServerPort>
    <connection.sftpUser>root</connection.sftpUser>
    <connection.sftpPassword>密码密文</connection.sftpPassword>
    </sqoop.connection>

    • 创建命令,如下:

      ./lt-ucc -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/ftp-to-hdfs.xml -a create

    • 更新命令,如下:

      ./lt-ucc -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/ftp-to-hdfs.xml -a update

    • 删除命令,如下:

      ./lt-ucc -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/ftp-to-hdfs.xml -a delete

  • lt-ucj使用说明

    lt-ucj:loader-tool user-configuration-job作业配置工具,用于对作业的创建、更新、删除操作。

    表2 lt-ucj脚本的“参数选项”配置说明

    参数选项

    说明

    参数值示例

    -help

    获取帮助信息。

    -

    -a <arg>

    执行的动作,有效值:create/update/delete,分别用于创建、更新和删除作业。

    create

    -at <arg>

    登录认证的类型,有效值kerberos、simple。

    kerberos

    -uk <arg>

    是否使用keytab文件。

    true

    -au <arg>

    登录认证的用户名。

    bar

    -ap <arg>

    登录认证的密码,需要填写密文。

    密码加密方法:

    sh Loader客户端安装目录/Loader/loader-tools-1.99.3/encrypt_tool 用户非加密密码

    说明:

    非加密密码中含有特殊字符时需要转义。例如,$符号属于特殊字符,可使用单引号进行转义;非加密密码中含有单引号时可用双引号进行转义,非加密密码中含有双引号应使用反斜杠\进行转义。可参考Shell的转义字符规则。

    -

    -c <arg>

    登录认证的principal。

    bar

    -k <arg>

    登录认证的keytab文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/user.keytab

    -h <arg>

    MRS集群的配置文件路径。

    -h /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config

    -l <arg>

    登录的模板文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml

    -s <arg>

    Loader服务的浮动IP和端口。

    格式为:浮动IP:端口

    端口默认值为21351。

    127.0.0.1:21351

    -w <arg>

    作业的模板文件,用于获取作业的详细信息。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml

    -z <arg>

    ZooKeeper quorum实例的IP地址和端口号,格式为IP地址:端口,配置多个用“,”分开。

    127.0.0.0:2181, 127.0.0.1:2181

    -n <arg>

    作业名称。

    Sftp.to.Hdfs

    -cn <arg>

    连接器名称。

    vt_sftp_test

    -ct <arg>

    连接器类型。

    sftp-connector

    -t <arg>

    作业类型,有效值IMPORT、EXPORT。

    IMPORT

    -trans <arg>

    作业关联的转换步骤文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.json

    -priority <arg>

    作业优先级,有效值:LOW/NORMAL/HIGH。

    NORMAL

    -queue <arg>

    队列。

    default

    -storageType <arg>

    存储类型。

    HDFS

    -P <arg>

    更新某个属性的值,格式:-Pparam1=value1,param1为作业模板中连接器对应的属性名称。如果更新的是SFTP和FTP的连接器信息,还必须带上密码参数:

    -Pconnection.sftpPassword=密码密文

    -Pconnection.sftpServerIp=10.6.26.11

    完整示例如下:

    ./bin/lt-ucj -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n Sftp.to.Hdfs -t IMPORT -ct sftp-connector -Poutput.outputDirectory=/user/loader/sftp-to-hdfs-test8888 -a update

    lt-ucj 脚本的“作业模板”配置说明:

    以SFTP数据保存到HDFS为例,编辑“loader客户端安装目录/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml”,作业的配置如下:

    <!-- Job名称,全局唯一 -->
    <sqoop.job name="Sftp.to.Hdfs" type="IMPORT" queue="default" priority="优先级NORMAL">
    
    <!-- 外部数据源,参数配置 -->
    <data.source connectionName="vt_sftp_test" connectionType="sftp-connector">
    <file.inputPath>/opt/houjt/hive/all</file.inputPath>
    <file.splitType>FILE</file.splitType>
    <file.filterType>WILDCARD</file.filterType>
    <file.pathFilter>*</file.pathFilter>
    <file.fileFilter>*</file.fileFilter>
    <file.encodeType>GBK</file.encodeType>
    <file.suffixName></file.suffixName>
    <file.isCompressive>FALSE</file.isCompressive>
    </data.source>
    
    <!-- MRS集群,参数配置 -->
    <hadoop.source storageType="HDFS" >
    <output.outputDirectory>/user/loader/sftp-to-hdfs</output.outputDirectory>
    <output.fileOprType>OVERRIDE</output.fileOprType>
    <throttling.extractors>3</throttling.extractors>
    <output.fileType>TEXT_FILE</output.fileType>
    </hadoop.source>
    
    <!-- 作业关联的转换步骤文件 -->
    <sqoop.job.trans.file>/opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.json</sqoop.job.trans.file>
    </sqoop.job>
    • 创建命令,如下:

      ./bin/lt-ucj -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml -a create

    • 更新命令,如下:

      ./bin/lt-ucj -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml -a update

    • 删除命令,如下:

      ./bin/lt-ucj -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml -a delete

  • lt-ctl使用说明

    lt-ctl:loader-tool controller作业管理工具,用于启停作业,查询作业状态与进度,查询作业是否运行中。

    表3 lt-ctl脚本的“参数选项”配置说明

    参数选项

    说明

    参数值示例

    -help

    获取帮助信息。

    -

    -a <arg>

    执行的动作,有效值:status/start/stop/isrunning,分别用于查询作业状态、启动作业、停止作业以及判断作业是否在运行中。

    create

    -at <arg>

    登录认证的类型,有效值kerberos、simple。

    kerberos

    -uk <arg>

    是否使用keytab文件。

    true

    -au <arg>

    登录认证的用户名。

    bar

    -ap <arg>

    登录认证的密码,需要填写密文。

    密码加密方法:

    sh Loader客户端安装目录/Loader/loader-tools-1.99.3/encrypt_tool 用户非加密密码

    说明:

    非加密密码中含有特殊字符时需要转义。例如,$符号属于特殊字符,可使用单引号进行转义;非加密密码中含有单引号时可用双引号进行转义,非加密密码中含有双引号应使用反斜杠\进行转义。可参考Shell的转义字符规则。

    -

    -c <arg>

    登录认证的principal。

    bar

    -k <arg>

    登录认证的keytab文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/user.keytab

    -h <arg>

    MRS集群的配置文件路径。

    -h /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config

    -l <arg>

    登录的模板文件。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml

    -n <arg>

    作业名称。

    Sftp.to.Hdfs

    -s <arg>

    Loader服务的浮动IP和端口。

    格式为:浮动IP:端口

    端口默认值为21351。

    127.0.0.1:21351

    -w <arg>

    作业的模板文件,用于获取作业的详细信息。

    /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/sftp-to-hdfs.xml

    -z <arg>

    ZooKeeper quorum实例的IP地址和端口号,格式为IP地址:端口,配置多个用“,”分开。

    127.0.0.0:2181, 127.0.0.1:2181

    • 启动作业:

      ./bin/lt-ctl -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n Sftp.to.Hdfs -a start

    • 查看作业状态:

      ./bin/lt-ctl -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n Sftp.to.Hdfs -a status

    • 判断作业是否运行中:

      ./bin/lt-ctl -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n Sftp.to.Hdfs -a isrunning

    • 停止作业:

      ./bin/lt-ctl -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n Sftp.to.Hdfs -a stop