
# loader-tool工具使用指导
#### 概述
loader-tool工具是Loader客户端工具之一，包括"lt-ucc"、"lt-ucj"、"lt-ctl"三个工具。
Loader支持通过参数选项或作业模板这两种方式，对连接器进行创建、更新、查询和删除，以及对Loader作业进行创建、更新、查询、删除、启动和停止等操作。
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
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"。
  ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  作业模板中包含了连接器的配置信息。创建、更新连接器时，实际上仅调用到作业模板中的连接器的信息。
  
 
#### 使用场景
不同的连接器或作业的配置项不同。
- 更新个别配置项时，使用参数选项方式。
- 创建连接器或作业时，使用作业模板方式。
  ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  本工具目前支持FTP、HDFS、JDBC、MySQL、Oracle以及Oracle专用连接器，如果使用其他类型连接器，建议使用开源sqoop-shell工具。
  
 
#### 参数说明
例如，Loader客户端的安装目录为："/opt/client/Loader/"。
- **lt-ucc使用说明**
  lt-ucc：loader-tool user-configuration-connection连接器配置工具，用于连接器的创建、更新和删除操作。
  表1lt-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作业配置工具，用于对作业的创建、更新、删除操作。
  表2lt-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作业管理工具，用于启停作业，查询作业状态与进度，查询作业是否运行中。
  表3lt-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*
    
   
 
