oozie 工作流执行sqoop和spark

本次将sqoop和spark脚本相结合组成oozie工作流,通过定时计划任务,定期执行。

执行流程图


实施步骤

创建工作流

选择操作

开始创建sqoop

方框添加执行语句即可

开始创建spark

jar/py name:填写jar包的名称

Main class:填写入口(可以不填,如果不填那需要在option list 进行填写)

文件:填写jar包对应的文件和需要的依赖文件

option list:填写需要的命令行执行的参数,如: --packages mysql:mysql-connector-java:5.1.47 --repositories http://maven.aliyun.com/nexus/content/groups/public/ --driver-class-path ~/jar/mysql-connector-java-5.1.47.jar --class sportsdt.middle_platform.odds.Odds

点击保存后试运行

创建计划

进行参数编辑

点击保存和运行


sqoop执行语句命令

sqoop job--meta-connectjdbc:hsqldb:hsql://hw-cdh-01.sportsdt.com:16110/sqoop--execxxxx

说明

1、sqoop在oozie通过yarn集群执行,会随机在集群选择机器执行,所以需要将sqoop 元数据保存到固定位置,同时通过指定meta-connect来运行sqoop job。参考文档:https://blog.csdn.net/PTtaoge/article/details/83902233

打开master机器的sqoop-site.xml文件。 cd  $SQOOP_HOME/conf/sqoop-site.xml 加入下面的配置

<property>

<name>sqoop.metastore.server.location</name>

<!--数据存放的目录-->

<value>/usr/local/sqoop/tmp/sqoop-metastore/shared.db</value>

<description>Path to the shared metastore database files.

   If this is not set, it will be placed in ~/.sqoop/.

</description>

</property>

<property>

<name>sqoop.metastore.server.port</name>

<!--client访问的端口-->

<value>16000</value>

<description>Port that this metastore should listen on.

</description>

</property>

然后再在其他机器的sqoop-site.xml文件加入下面的配置

<property>

<name>sqoop.metastore.client.autoconnect.url</name>

<value>jdbc:hsqldb:hsql://master:16000/sqoop</value>

</property>

2、在oozie执行sqoop job时,存在sqoop读取不到hive元数据的问题,造成执行job失败。解决办法是修改hive配置。参考文档:http://www.mamicode.com/info-detail-2489193.html?__cf_chl_jschl_tk__=b1ac631d83c5989e9a1a25a176db1591dc0b2441-1584667717-0-ARCLu_pv5e0voKu6hexjLH69M_MlzFuxMLAMyoE2uLO7LhwhoLFjiES4uNaqsE0Ng-ygEEHWEFmzVkka8jdxmkJrKhugc7WDd-ze3U_y5f59C6q6iqUua_B9ysuBO6gs0StM4aXJE-JdOptMeg2EEjPo9o6Ha5uxfl0KhIGrpbabmJGfOO2vIjxkXBUlVVx6fDvYMBAPjSK6uiakgd6jZiiw_MMJAtMmk5Dt7S__zDAQ8Eq644V9JrYdyYWcu-xYUZ4oKndFbH25Dpl59j1nPZKtlczQCnYvQaSSDXoWw7bGM7WBWK13JtB4n-2uqQ4mww

需要解决oozie无法访问hive元数据的问题

添加了一下的配置项


​3.计划时区选择

红框范围时区设置并不能更改到具体的执行时间,具体执行时间是utc时间。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 说明:不少读者反馈,想使用开源组件搭建Hadoop平台,然后再部署Kylin,但是遇到各种问题。这里我为读者部署一...
    大诗兄_zl阅读 6,355评论 0 2
  • [TOC] 最近在研究数据采集相关的知识,需要用到Sqoop把关系型数据库的数据导入到Hive里,这里记录下自己的...
    纳尼2号阅读 19,277评论 11 23
  • 1/列出mysql数据库中的所有数据库sqoop list-databases -connect jdbc:mys...
    时待吾阅读 5,167评论 0 0
  • 1、运行环境 主机IP 主机名 2、配置主机名(分别在五台机器上执行) hostname +主机名例如: h...
    献给记性不好的自己阅读 8,986评论 0 6
  • 一、准备工作 1、安装 oracle jdk1.8.0 过程略。 2、安装 apache maven 3.6.0...
    Bryan03阅读 9,303评论 0 2

友情链接更多精彩内容