摘要:Sqoop-shell是一个Loader的shell工具,其所有性能都是通过执行脚本“sqoop2-shell”来实现的。
本文分享自华为云社区《FusionInsight SqoopShell应用案例》,作者:Jia装大佬。
1 SqoopShell应用简介
sqoop-shell是一个Loader的shell工具,其所有性能都是通过执行脚本“sqoop2-shell”来实现的。
sqoop-shell工具提供了如下性能:
- 反对创立和更新连接器
- 反对创立和更新作业
- 反对删除连接器和作业
- 反对以同步或异步的形式启动作业
- 反对进行作业
- 反对查问作业状态
- 反对查问作业历史执行记录
- 反对复制连接器和作业
- 反对创立和更新转换步骤
- 反对指定行、列分隔符
sqoop-shell工具反对如下模式:
- 交互模式
通过执行不带参数的“sqoop2-shell”脚本,进入Loader特定的交互窗口,用户输出脚本后,工具会返回相应信息到交互窗口。
- 批量模式
通过执行“sqoop2-shell”脚本,带一个文件名作为参数,该文件中按行存储了多条命令,sqoop-shell工具将会按程序执行文件中所有命令;或者在“sqoop2-shell”脚本前面通过“-c”参数附加一条命令,一次只执行一条命令。
2 SqoopShell配置
2.1 配置Loader客户端
- 应用“PuTTY”工具,应用装置客户端的用户登录客户端所在节点。
- 执行以下命令,避免超时退出。
TMOUT=0
- 执行以下命令,进入Loader客户端装置目录。例如,Loader客户端装置目录为“/opt/hadoopclient/Loader”。
cd /opt/hadoopclient/Loader
- 执行以下命令,配置环境变量。
source /opt/hadoopclient/bigdata_env
- 执行以下命令解压“loader-tools-1.99.3.tar”。
tar -xvf loader-tools-1.99.3.tar
解压后的新文件保留在“loader-tools-1.99.3”目录。
- 执行以下命令批改工具受权配置文件“login-info.xml”,并保留退出。
vi loader-tools-1.99.3/loader-tool/job-config/login-info.xml
2.2 配置sqoopshell 配置文件
应用“PuTTY”工具,应用装置客户端的用户登录Loader客户端所在节点。
执行以下命令,进入sqoop-shell工具的“conf”目录。例如,Loader客户端装置目录为“/opt/hadoopclient/Loader”。
cd /opt/hadoopclient/Loader/loader-tools-1.99.3/sqoop-shell/conf
执行以下命令,配置认证信息。
vi client.properties
3 Sqoopshell应用示例
3.1 交互模式
- 执行以下命令,进入交互模式(客户端以/opt/hadoopclient为例)。
source /opt/hadoopclient/bigdata_env
cd /opt/hadoopclient/Loader/loader-tools-1.99.3/sqoop-shell
./sqoop2-shell
- 获取帮忙信息(\h获取帮忙信息,\cr获取create的帮忙信息,\up获取更新的帮忙信息,以此类推)
- 查看连接器
以此类推,能够查看framework、job、connection等信息
- 创立连接器
依据show connector信息抉择对应的连接器,依据create帮忙信息创立connection,而后依据命令行提醒,输出对应信息,如果提醒的参数无需设置,可按enter间接跳过
- 创立作业
依据show connection进去的信息抉择对应链接,依据create帮忙信息创立Job,而后依据命令行提醒,输出对应信息,如果提醒的参数无需设置,可按enter间接跳过
也能够应用—help查看创立job的选项信息
Json获取办法
1) 登录loader原生页面,创立一个雷同类型的作业(如TaiPingTab)。
2) 导出作业的配置json文件,复制json文件中,hops的内容(包含大括号),保留为新的json文件
3) 依据业务须要调整json文件。
3.2 批量模式
批量模式有两种形式,一种是./sqoop2-shell+脚本的形式,脚本中配置待执行的命令
另一种是./sqoop2-shell -c “待执行的命令”形式
获取帮忙:
./sqoop2-shell -c "create connection -cn generic-jdbc-connector --help"获取创立connection的帮忙信息
./sqoop2-shell -c "create job -xn mysql -t import --help"查看创立Job帮忙信息
- 脚本形式
cd /opt/hadoopclient/Loader/loader-tools-1.99.3/sqoop-shell
vi batchCommand.sh
更新作业
- –c 形式(应用-c参数附带一条命令,sqoop-shell能够一次只执行附带的这一条命令)
创立链接为mysql名称为TaiPingTab的导入工作
./sqoop2-shell -c "create job -xn mysql -t import -name TaiPingTab --connector-table-schemaName keshangbank --connector-table-tableName Tab --connector-table-needPartition false --connector-table-columns id,name,value --framework-output-storageType HIVE --framework-output-outputDirectory /user/loader/Tab --framework-throttling-partitionHandlers 10 --framework-throttling-extractors 10 --trans /opt/client/Loader/loader-tools-1.99.3/loader-tool/job-config/TaiPing.json --queue root.default"
启动:./sqoop2-shell -c "start job -n TaiPingTab -s"
删除:./sqoop2-shell -c "delete job -n TaiPingTab"
更新:./sqoop2-shell -c 'update job -j 37 -name update-test --connector-table-sql "select * from keshangbank.update_test where time < "2020-2-2" and ${CONDITIONS}" '
注: 1. sqoop-shell目录中createConnection createJob helpCmd startCmd中详细描述了各个参数的含意
- Json文件的获取及参考形式均一样,批量模式中Json文件的获取跟形式请参考交互模式中json的获取形式
- 此文档中并未对参数具体介绍,参数局部可参考产品文档sqoop-shell章节
- 更新的参数和创立的参数保持一致
- 附件:SqoopShell应用案例.docx743.88KB
- 附件:Json.rar
点击关注,第一工夫理解华为云陈腐技术~