乐趣区

关于shell:教你如何使用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

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

cd /opt/hadoopclient/Loader

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

source /opt/hadoopclient/bigdata_env

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

tar -xvf loader-tools-1.99.3.tar

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

  1. 执行以下命令批改工具受权配置文件“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

  1. 获取帮忙信息(\h 获取帮忙信息,\cr 获取 create 的帮忙信息,\up 获取更新的帮忙信息,以此类推)
  2. 查看连接器

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

  1. 创立连接器

依据 show connector 信息抉择对应的连接器,依据 create 帮忙信息创立 connection,而后依据命令行提醒,输出对应信息,如果提醒的参数无需设置,可按 enter 间接跳过

  1. 创立作业

依据 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

更新作业


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

  1. Json 文件的获取及参考形式均一样,批量模式中 Json 文件的获取跟形式请参考交互模式中 json 的获取形式
  2. 此文档中并未对参数具体介绍,参数局部可参考产品文档 sqoop-shell 章节
  3. 更新的参数和创立的参数保持一致
  • 附件:SqoopShell 应用案例.docx743.88KB
  • 附件:Json.rar

点击关注,第一工夫理解华为云陈腐技术~

退出移动版