Oozie WorkFlow中Sqoop Action使用讲解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 笔记

第一步: 将examples目录下的sqoop目录拷贝到oozie-apps目录下

cp -r sqoop /opt/modules/oozie/oozie-apps/

第二步: 将sqopp目录下的db.hsqldb.properties db.hsqldb.script两个文件删除

rm -rf db.hsqldb.properties db.hsqldb.script

第三步: 创建lib目录

mkdir lib

第四步: 拷贝mysql jar包到lib目录下

cp /opt/modules/hive/lib/mysql-connector-java-5.1.48-bin.jar .

第五步: 这里我们测试的是hive表导出到mysql表。需要检查hive表和mysql表,分别是hive表(db_hive.user_info)和mysql表(db_sqoop.user_info_export)

关于hive表导出到mysql表的内容,以及创建表的格式和数据请参考这篇文章的第四节:

https://blog.csdn.net/weixin_45366499/article/details/109403343


第六步: 编写sqoop导出脚本文件export.txt,内容如下:

--connect 
jdbc:mysql://bigdata-pro-m01:3306/db_sqoop 
--username 
root 
--password 
199911 
--num-mappers 
1  
--table 
user_info_export 
--input-fields-terminated-by 
',' 
--export-dir 
/user/hive/warehouse/db_hive.db/user_info

export.txt在/opt/modules/oozie/oozie-apps/sqoop目录下

第七步: 编写job.properties文件,参考官方example,内容如下:

nameNode=hdfs://bigdata-pro-m01:9000
jobTracker=bigdata-pro-m01:8032
queueName=default
oozieAppRoot=user/caizhengjie/oozie-apps
oozieDataRoot=user/caizhengjie/oozie-datas
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/${oozieAppRoot}/sqoop
EXEC=export.txt

第八步: 编写workflow.xml,内容如下:

<workflow-app xmlns="uri:oozie:workflow:0.5" name="sqoop-wf">
    <start to="sqoop-node"/>
    <action name="sqoop-node">
        <sqoop xmlns="uri:oozie:sqoop-action:0.3">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <command>export --options-file ${EXEC}</command>
            <file>${nameNode}/${oozieAppRoot}/sqoop/${EXEC}#${EXEC}</file>
        </sqoop>
        <ok to="end"/>
        <error to="fail"/>
    </action>
    <kill name="fail">
        <message>Sqoop failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

第九步: 上传sqoop整个目录到HDFS上

bin/hdfs dfs -put /opt/modules/oozie/oozie-apps/sqoop/ /user/caizhengjie/oozie-apps

第十步: 运行测试

bin/oozie job -oozie http://bigdata-pro-m01:11000/oozie -config oozie-apps/sqoop/job.properties -run

查看测试结果:

13.png

查看导出的mysql数据表

mysql> select * from user_info_export;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | admin    |
|  2 | wang     | 111111   |
|  3 | zhang    | 000000   |
|  4 | lili     | 000000   |
|  5 | henry    | 000000   |
|  6 | cherry   | 000000   |
|  7 | ben      | 111111   |
|  8 | leo      | 000000   |
|  9 | test     | test     |
| 10 | system   | 000000   |
| 11 | xiao     | 111111   |
+----+----------+----------+
11 rows in set (0.00 sec)


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11月前
68 Azkaban Command类型多job工作流flow
68 Azkaban Command类型多job工作流flow
48 0
|
4月前
|
存储 监控 测试技术
Agent Workflow
【6月更文挑战第25天】
119 3
|
5月前
|
SQL XML 分布式计算
Oozie功能
Oozie是一个基于Hadoop的调度器,它可以用来管理和协调Hadoop作业、Pig作业、Hive作业、Shell脚本等。【2月更文挑战第21天】
46 2
|
分布式计算 JavaScript Java
Oozie的安装和使用
Oozie的安装和使用
|
SQL HIVE 流计算
《Production-Ready Flink and Hive Integration what story you can tell now》电子版地址
03-李锐-Production-Ready Flink and Hive Integration what story you can tell now.的副本
90 0
《Production-Ready Flink and Hive Integration what story you can tell now》电子版地址
E-MapReduce集群使用Oozie工作流简单示例
本文简单介绍了,如何在E-MapReduce上提交Oozie workflow job。提供了可以直接下载运行的示例代码,欢迎使用。
2994 0
|
分布式计算 关系型数据库 MySQL
oozie
应用场景 Apache Oozie 是用于 Hadoop 平台的一种工作流调度引擎。该框架使用 Oozie 协调器促进了相互依赖的重复工作之间的协调,您可以使用预定的时间或数据可用性来触发 Apache Oozie。
2736 0