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

loader-tool工具使用示例

操作场景

loader-tool工具支持通过作业模板或参数选项的方式,对连接器或者作业进行创建、更新、查询、删除等操作。

本文将以“从SFTP服务器导入数据到HDFS”的作业为例,通过引用作业模板的方式,介绍loader-tool工具的使用方法。

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

前提条件

已安装并配置Loader客户端,具体操作请参见使用命令行运行Loader作业

操作步骤

  1. 使用安装客户端的用户登录客户端所在节点。
  2. 执行以下命令,进入Loader客户端的loader-tool工具目录。例如,Loader客户端安装目录为“/opt/client/Loader/”。

    cd /opt/client/Loader/loader-tools-1.99.3/loader-tool/

  3. 执行以下命令,修改已有的作业模板。例如,“/opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/”目录下已有的作业模板“sftp-to-hdfs.xml”

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

    <root>
    <!-- 连接数据库的信息 -->
    <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>d2NjX2NyeXB0ATQxNDU1MzVGNDM0MjQzOzMzMzkzOTMwMzI0NTM5MzQzOTM1Mzk0NTMwMzIzNTM4NDEzNzQ2MzIzNjQyMzMzMDM4MzMzNzQ1MzYzODQxMzQ7OzMyMzUzMDMwO0EzMTUzM0ExNTAyNDhENzE3QTRBRTlCQkRBQzlFRkFEOzYyOEE4NTlDODc2MkMyNzU7NTc0MzQzNUY0MzUyNTk1MDU0NUY0NDQ1NDY0MTU1NEM1NDVGNDQ0RjRENDE0OTRFOzMwOzMxMzQzNTM2MzMzMTMyMzgzMzMzMzIzNzMwOw</connection.sftpPassword>
    </sqoop.connection>
    
    <!-- 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>
    
    <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></sqoop.job.trans.file>
    </sqoop.job>
    </root>

    Loader每个作业都需要关联一个连接器,连接器主要作用:对于数据导入到集群的场景来说,就是从外部数据源读取数据;对于数据从集群导出去的场景来说,就是将数据写入到外部数据源。上述示例配置的是一个SFTP数据源连接器。配置SFTP和FTP的数据源连接器需要设置密码并进行加密。密码加密方法如下:

    1. 执行以下命令,进入到loader-tools-1.99.3目录。Loader客户端安装目录为“/opt/hadoopclient/Loader”

      cd /opt/hadoopclient/Loader/loader-tools-1.99.3

    2. 执行以下命令,对非加密密码加密。

      ./encrypt_tool 未加密的密码

  4. 执行以下命令,进入loader-tool工具目录。

    cd /opt/client/Loader/loader-tools-1.99.3/loader-tool

  5. 执行以下命令,使用lt-ucc工具创建连接器。

    ./bin/lt-ucc -l /opt/client/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

    如无报错信息,且显示如下信息,则表示创建连接器的任务提交成功。

    User login success. begin to execute task.

  6. 执行以下命令,使用lt-ucj工具创建作业。

    ./bin/lt-ucj -l /opt/client/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

    如无报错信息,且显示如下信息,则表示创建作业的任务提交成功。

    User login success. begin to execute task.

  7. 执行以下命令,使用lt-ctl工具提交作业。

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

    显示如下信息,表示作业提交成功。

    Start job success.

  8. 执行以下命令,查看作业状态。

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

    Job:Sftp.to.Hdfs
    Status:RUNNING
    Progress: 0.0