Apache Oozie一 实战操作一调度 hive 脚本|学习笔记

简介: 快速学习 Apache Oozie一 实战操作一调度 hive 脚本

开发者学堂课程【Oozie 知识精讲与实战演练Apache Oozie一 实战操作一调度 hive 脚本】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/716/detail/12788


Apache Oozie一 实战操作一调度 hive 脚本


内容介绍

一、Oozie 调度 Hive

二、小记


一、Oozie 调度 Hive

1、准备配置模板,修改配置文件

cd /export/servers/oozie-4.1.0-cdh5.14.0 安装包的根目录下 CD 进来

cp -ra examples/apps/hive2/ oozie_works/ 在目录 examples 下有个 hive up 文件夹,把这个文件夹下的东西拷贝到工作路径下,(不支持老版本)复制完成后看看那些需要修改,cd 到 oozie-works 下的 hive

tota1 24

-rw-r--r--. 1 1106 4001 1046 Jan 2018 job.properties

-rw-r--r--11106 4001 1087 Jan 2018 job.properties.security

rw-r--r--. 11106 4001 681 Jan 2018 README

-rw-r--r--. 11106 4001 966 Jan 2018 script.q

-rw-r--r--11106 4001 2073 Jan 2018 workflow.xm]

-rw-r--r--11106 4001 2481 Jan 72018 workflow.xm1.security

[root@node-1hive2]#

第一个要去调度 hive 脚本,需要去编写 hive script 语句,第二个 job 提交 hdoop相关信息,主要配置一个 job.properties 任务属性信息,第三个就是 workflow 工作的核心产品配置文件

2.修改配置模板

修改 job.properties

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/hive2

vim job.properties

指定:nameNode=hdfs//node-1:8020

jobTracker=node-1:8032

queueName=default(队列名)

jdbcURL=jdbc:hive2://node-1:10000/default(hive 地址)

通过这个去访问,必须保证 hive 服务是启动正常的。

examplesRoot=oozie works 工作路径。

(1)具体配置

打开 new 1- Notepad++,按照以上代码进行修改,一定要保持一致:

nameNode=hdfs://node-1:9000

jobTracker=node-1:8032

queueName=default

idbcURL=idbc:hive2://node-1:10000/default

examplesRoot=oozie works

oozie.use.system.libpath=true

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot} hive2

#配置我们文件上传到 hdfs 的保存路径实际上就是在 hdfs的 /user/root/oozieworks/hive2 这个路径下ooziewfapplicationpath=${nameNode}/user/${username}/${examplesRoot}/hive2

多了 app, 把 app 进行删除,正确操作如上,一定要保持一致才可以识别资源路径

修改 workflowxml (实际上无修改),因为示例当中脚本名字叫做 script.q,如果是在企业当中,调度的是其他脚本,要把这个名字做相关的修改。

核心:

,又做了 hive 的执行,删除相关的路径,进行相关的配置,执行脚本,脚本名称叫做 script.q。

编辑 Hlivesql 文件(内容)

使用 vim script.q 做相关操作(上面是注释,可以删除)

DROP TABLE IF EXISTS test; 删除 test 的表。

CREATE EXTERNAL TABLE test(a INT)STORED AS TEXTFILE LOCATION'${INPUT}';创建 test 的表,类型是文本文件,位于 INPUT 路径。

插入:

insert into test values(10);

insert into test values(20);

insert into test values(30);

将插入的复制粘贴,脚本已经搞定,做一个保存

3、把脚本连同配置信息上传调度任务到 hdfs

cd/export/servers/oozie-4.1.0-cdh5.14.0/oozie works hdfs dfs -put hive2/ /user/root/oozie works/

复制,做修改换行,注意格式问题

把 hdfs dfs -put hive2/ /user/root/oozie works/ 进行复制,执行,会发现报错,提示没有这个文件夹,cd.. 返回到文件当中

验证:

图片1.png 

会发现多了 hive2,里面有配置的脚本以及一系列

4.执行调度任务

首先确保已经启动 hiveServer2 服务。

来到第一台服务器上验证一下,可以看到并没有 hive 服务

图片2.png

可以使用 export/servers/hive/bin/hiveserver2 命令启动在前台,也可以使用讲义上的方式启动在后台。

因为配置远程的 metastore 存储服务,所以在启动服务之前,首先必须取得metstore 原数据存储服务,启动在后台使用 nohup 命令,再把 nohup /export/servers/hive/bin/hive --service metastore 启动到后台,这样就首先启动了 hive 的原数据存储服务。

再来启动 service 服务,启动 nohup /export/servers/hive/bin/hive --service hiveserver2 &

完成启动 service 服务,使用 jps 验证。

验证方法:随便找一台机器进行 export/servers/hive/bin/beeline 验证,连接地址叫做 connect idbc:hive2:node-1:10000,登录是 root,登录密码是服务器密码。

特别强调,在调度 hive 任务之前,必须保证已经成功启动 hiveServer2 服务。

cd /export/servers/oozie-4.1.0-cdh5.14.0

bin/oozier job o -oozie http://node-1:11000/oozie -config oozie_works/hive2/job.properties -run

复制以上命令,记得换行进行修改,来到根目录下进行执行(如果配置了环境变量可以不用到根目录下),执行成功会发现提交 hive 程序,出现任务编号 8722-W,可以通过 oozieweb 页面进行刷新查看。

图片3.png

并且可以通过 yarn 来追踪看到调度执行的过程。

图片4.png

首先第它启动了一个 have tom 码程序,还要执行数据的插入,首先是 insert into 10是第一个语句,执行第二条插入数据的语句叫做 insert into value 20,这时候发现第一个 m 码程序现在还在 running,因为他后面的 hive 还没有执行结束,必须说 hive 执行结束之后,整个 oozie 才能执行结束,通过这里可以感受到 oozie 底层的执行过程。

验证 hive 表是否创建:

打开刚才的服务器,执行 show tables; 会发现有了相关的表

图片5.png

直接 select*from test 这个表,会发现里面就有内容

图片6.png

以上就完成了 oozie 调度 hive 脚本。


二、小记

oozie 调度 hive 脚本

首先必须保证 hiveserve2 服务是启动正常的,如果配置 metastore 服务,要首先启动 metastore

nohup /export/servers/hive/bin/hive--service metastore&

nohup /export/servers/hive/bin/hive --service hiveserver2 &

相关文章
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
95 5
|
2月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
54 3
|
4月前
|
分布式计算 监控 Hadoop
详解 Apache ZooKeeper 和 Apache Oozie
【8月更文挑战第31天】
139 0
|
5月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
397 0
|
6月前
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
424 4
|
6月前
|
弹性计算 应用服务中间件 Linux
双剑合璧:在同一ECS服务器上共存Apache与Nginx的实战攻略
在ECS服务器上同时部署Apache和Nginx的实战:安装更新系统,Ubuntu用`sudo apt install apache2 nginx`,CentOS用`sudo yum install httpd nginx`。配置Nginx作为反向代理,处理静态内容及转发动态请求到Apache(监听8080端口)。调整Apache的`ports.conf`监听8080。重启服务测试,实现两者高效协同,提升Web服务性能。记得根据流量和需求优化配置。【6月更文挑战第21天】
602 1
|
5月前
|
分布式计算 Apache Spark
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在进行Hive分区truncate操作时遇到权限不足,怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
88 0
|
16天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
303 33
The Past, Present and Future of Apache Flink

推荐镜像

更多