loader-tool工具使用示例
操作场景
loader-tool工具支持通过作业模板或参数选项的方式,对连接器或者作业进行创建、更新、查询、删除等操作。
本文将以“从SFTP服务器导入数据到HDFS”的作业为例,通过引用作业模板的方式,介绍loader-tool工具的使用方法。
本章节适用于MRS 3.x及后续版本。
前提条件
已安装并配置Loader客户端,具体操作请参见使用命令行运行Loader作业。
操作步骤
- 使用安装客户端的用户登录客户端所在节点。
- 执行以下命令,进入Loader客户端的loader-tool工具目录。例如,Loader客户端安装目录为“/opt/client/Loader/”。
cd /opt/client/Loader/loader-tools-1.99.3/loader-tool/
- 执行以下命令,修改已有的作业模板。例如,“/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的数据源连接器需要设置密码并进行加密。密码加密方法如下:
- 执行以下命令,进入loader-tool工具目录。
cd /opt/client/Loader/loader-tools-1.99.3/loader-tool
- 执行以下命令,使用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.
- 执行以下命令,使用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.
- 执行以下命令,使用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.
- 执行以下命令,查看作业状态。
./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