教你如何使用FusionInsight SqoopShell
摘要: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 配置文件
- 使用“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 交互模式
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. 更新的参数和创建的参数保持一致
- 附件:SqoopShell使用案例.docx743.88KB
- 附件:Json.rar
教你如何使用FusionInsight SqoopShell的更多相关文章
- FusionInsight MRS:你的大数据“管家”
摘要:4月24日-26日,HDC.Cloud2021在深圳大学城成功举办,华为云FusionInsight MRS云原生数据湖带来最懂行的大数据解决方案,为政企客户提供湖仓一体.云原生的大数据解决方案 ...
- 手把手教你做个人 app
我们都知道,开发一个app很大程度依赖服务端:服务端提供接口数据,然后我们展示:另外,开发一个app,还需要美工协助切图.没了接口,没了美工,app似乎只能做成单机版或工具类app,真的是这样的吗?先 ...
- CRL快速开发框架系列教程一(Code First数据表不需再关心)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置
前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...
- 手把手教你用FineBI做数据可视化
前些日子公司引进了帆软商业智能FineBI,在接受了简单的培训后,发现这款商业智能软件用作可视分析只用一个词形容的话,那就是“轻盈灵动”!界面简洁.操作流畅,几个步骤就可以创建分析,获得想要的效果.此 ...
- 教你怎么半天搞定Docker
首先,不要把docker想的那么高大,它不就是先做个镜像,然后通过docker像虚拟机一样跑起来嘛...docker其实在真实业务场景中还是非常有局限性的.Dockerfile脚本也没那么好写,有些应 ...
随机推荐
- Terraform入门教程,示例展示管理Docker和Kubernetes资源
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 最近工作中用到了Terraform,权当学习记录一下,希望能帮助到其它人. Terraform系列文章如下: T ...
- JUL 日志框架
1.JUL 简介 JUL 全称 Java Util Logging,位于java.util.logging.Logger 包.它是 java 原生的日志框架,使用时无需另外引用第三方的类库,相对其他的 ...
- AcWing 828. 模拟栈
实现一个栈,栈初始为空,支持四种操作: (1) "push x" – 向栈顶插入一个数x: (2) "pop" – 从栈顶弹出一个数: (3) "em ...
- Java实验项目三——职工类对象数组按照职工生日排序
Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...
- Leetcode No.88 Merge Sorted Array(c++实现)
1. 题目 1.1 英文题目 You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and ...
- fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化
fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中免不了json字符串 ...
- Redis+Lua解决高并发场景抢购秒杀问题
之前写了一篇PHP+Redis链表解决高并发下商品超卖问题,今天介绍一些如何使用PHP+Redis+Lua解决高并发下商品超卖问题. 为何要使用Lua脚本解决商品超卖的问题呢? Redis在2.6版本 ...
- ARTS第七周
补上.瞎忙,看来还是效率的问题. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享 ...
- java001-java基础
基础数据类型 int--->Integer long--->Long float--->Float double--->Double boolean--->Boolean ...
- SHELL 变量一
SHELL变量分为三类:本地变量.环境变量和位置参数 变量存在三种基本结构:变量名.操作符(个人定义).变量值 比如:var=blue 变量名:var 操作符:= 变量值:blue 变量的设置规则: ...