摘要: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客户端

1. 使用“PuTTY”工具,使用安装客户端的用户登录客户端所在节点。

2. 执行以下命令,防止超时退出。

TMOUT=0

3. 执行以下命令,进入Loader客户端安装目录。例如,Loader客户端安装目录为“/opt/hadoopclient/Loader”。

cd /opt/hadoopclient/Loader

4. 执行以下命令,配置环境变量。

source /opt/hadoopclient/bigdata_env

5. 执行以下命令解压“loader-tools-1.99.3.tar”。

tar -xvf loader-tools-1.99.3.tar

解压后的新文件保存在“loader-tools-1.99.3”目录。

6. 执行以下命令修改工具授权配置文件“login-info.xml”,并保存退出。

vi loader-tools-1.99.3/loader-tool/job-config/login-info.xml

2.2 配置sqoopshell 配置文件

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

cd /opt/hadoopclient/Loader/loader-tools-1.99.3/sqoop-shell/conf

  1. 执行以下命令,配置认证信息。

vi client.properties

3 Sqoopshell使用示例

3.1 交互模式

1. 执行以下命令,进入交互模式(客户端以/opt/hadoopclient为例)。

source /opt/hadoopclient/bigdata_env

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

./sqoop2-shell

2. 获取帮助信息(\h获取帮助信息,\cr获取create的帮助信息,\up获取更新的帮助信息,以此类推)

3. 查看连接器

以此类推,可以查看framework、job、connection等信息

4. 创建连接器

根据show connector信息选择对应的连接器,根据create帮助信息创建connection,然后根据命令行提示,输入对应信息,假如提示的参数无需设置,可按enter直接跳过

5. 创建作业

根据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帮助信息

1. 脚本方式

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

vi batchCommand.sh

更新作业

2. –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中详细描述了各个参数的含义

2. Json文件的获取及参考方式均一样,批量模式中Json文件的获取跟方式请参考交互模式中json的获取方式

3. 此文档中并未对参数详细介绍,参数部分可参考产品文档sqoop-shell章节

4. 更新的参数和创建的参数保持一致

点击关注,第一时间了解华为云新鲜技术~

最新文章

  1. MySQL中INFORMATION_SCHEMA是什么?(2)
  2. VS2013+opencv2.4.9(10)配置[zz]
  3. 【Python全栈笔记】01 [模块二] 14-15 Oct 运算符和字符串 4-1
  4. mousewheel
  5. gulp watch error ENOSPC
  6. 【Prince2科普】Prince2七大主题之概论
  7. 电脑能上网,手机连上wifi不能上网
  8. mybatis缓存清除方法
  9. JQuery UI进度条——Progressbar
  10. jquery的验证实例方法
  11. Oracle当前用户SQL
  12. android弹出时间选择框
  13. ThinkPHP 框架模型
  14. zoj1151 zoj1295 Word Reversal 字符串的简单处理
  15. redis的sentinel主从切换(failover)与Jedis线程池自动重连
  16. [Python Study Notes] Basic I\O + File 操作
  17. Ubuntu 下安装 matlab2018a
  18. scrapy实战之scrapyrt的使用
  19. Python数据类型之dict和set
  20. JavaScript-jQuery插件开发全解析

热门文章

  1. 循序渐进BootstrapVue,开发公司门户网站(5)--- 使用实际数据接口代替本地Mock数据
  2. 基于 electron 实现简单易用的抓包、mock 工具
  3. js笔记4
  4. unity调用安卓方法实现安装apk文件(androidx)
  5. ELK Stack企业日志平台文档
  6. scrapy入门到放弃02:整一张架构图,开发一个程序
  7. 第三章 - CPU缓存结构和java内存模型
  8. Django 基础05篇 上下文管理和前端代码复用
  9. 「 题解」NOIP2021模拟赛(2021-07-19)
  10. 用EXCEL打开CSV文件