Azkaban--使用实战--hadoop 调度(hdfs、mapreduce) | 学习笔记

简介: 快速学习 Azkaban--使用实战--hadoop 调度(hdfs、mapreduce)

开发者学堂课程【Azkaban 大数据调度系统课程精讲Azkaban--使用实战--hadoop 调度(hdfs、mapreduce)学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/721/detail/12881


Azkaban--使用实战--hadoop 调度(hdfs、mapreduce)


内容介绍:

一、HDFS 任务调度

二、MAPREDUCE 任务调度

 

一、HDFS 任务调度:

下面学习关于 Azkaban hadoop 的相关调度,在 hadoop 调度中分为两个方面:HDFS 任务调度、MAPREDUCE 任务调度。

接下来演示用 Azkaban 调度配置操作的具体步骤:

第一种是 HDFS 任务调度,在进行 Azkaban 调度配置操作之前,如果需要手动执行文件系统操作,就可以打开 node-2命令行,输入命令 hadoop fs -ls(查看 ls), hadoop fs -ls 转化为 Azkaban 调度 HDFS 任务执行。hadoop fs -ls 这个命令是 shell 命令 ,hadoop 是在 hadoop 软件某个的路径下,可以输入 which hadoop 进行相关查找。

发现 hadoop fs -ls 的具体代码是/export/serve/ hadoop-2.7.5/bin/hadoop

image.png

1、打开参考资料——Azkadan——job 配置模板

2、创建 job 文件

接下来打开 job 配置模板——hafs 文件夹,文件夹下有一个 job 文件 fs.job

image.png

fs.job 文件中

type=command //类型是 command命令

command=sh hdfs.sh//command 命令是用来输出一个脚本 hdfs.sh,具体的逻辑在这个脚本当中

接下来打开 hdfs.sh 这个脚本,脚本内容如下:

#!/bin/bash //定义了一个解释器

/export/serves/hadoop-2.7.5/bin/hadoop fs-mkdir/azaz666

//全路径,在此路径基础之上,可以执行后面的相关操作,整个核心参数:hadoop fs-mkdir/azaz666//创建一个文件夹名为 azaz666(提示:在脚本直接敲好全路径,是识别不到的,因为 shell 脚本没有加载到环境变量里)

确保 Azkaban 能否执行,且/export/serves/hadoop-2.7.5这个文件路径与当前与 node-2系统命令行的路径是否一致。

3、将所有 job 资源文件打包成 zip 文件

选中 fs.job hdfs.sh 这两个文件右键选择加到压缩档选项,之后选择 zip 格式。创建好这个压缩包,说明工程的资源和配置都准备好了。

4、通过 Azkaban web 管理平台创建 project 并上传 job 压缩包

打开浏览器 http://node-2:8443/index.进入到 Azkaban 新建一个 web 工程。

(1) :首先创建 project

点击 Azkaban 界面的 Create Project,创建这个工程

image.png

(2):上传 zip

当前这是一个空工程,点击 Upload 进行执行操作,选择之前的压缩包 hdfs.sh.zip 上传到工程里,这样就完成了 zip 上传。

之后选择右上角的立即执行按钮 Schedule/Execute.Flow,看一下效果,显示 RUNNING,说明正在执行,等待一段时间,显示 SUCCEEDED,说明创建成功,2秒就完成了创建,如果出错,会报出 FAILED,出现红色标识的内容。

当点击 job Details ,查看 job 执行结果的相关信息。执行完成之后,打开 Browse Directory,点击 Go!进行刷新,发现创建了一个文件夹名叫 azaz666,这样就完成了利用 Azkaban 针对 HDFS 任务调度的相关操作。

 

二、MAPREDUCE 任务调度:

下面学习 MAPREDUCE 任务调度。

接下来演示用 Azkaban 调度配置操作的具体步骤:

第二种是 mr 程序的提交,如果手动执行文件系统操作进行码程序,就是把 jar 包上传到机器上,用 hadoop jar 进行相关执行。转化为 Azkaban 调度,去配置相关软件的执行路径,因为 hadoop jar hadoop fs 是同一路径下的 shell 命令,配置/home/hadoop/ apps/hadoop-2.6.1/bin/hadoop 就可以实现执行 Azkaban 调度。

接下来进行具体操作:

hadoop 安装包有一个官方案例:mr 程序

这里面有一个 hadoop -mapreduce-examples- 2.7.5.jar jra 包,这里面可以实现两种 mr 程序:

1、计算圆周率Π

2、进行统计

如果想要进行计算圆周率Π,就输入 hadoop  jar hadoop -mapreduce-examples- 2.7.5.jar 2 4,提供 jar 的名字,给予两个参数进行评估。

运行之后出现了参数报错:

An Aggregate based map/reduce program that counts the words in the input files,这个程序根据输入的参数hadoop  jar hadoop -mapreduce-examples- 2.7.5.jar 2 4来评估执行相关的程序,执行的计算圆周率Π,修改输入:hadoop  jar hadoop -mapreduce-examples- 2.7.5.jar pi 2 4,然后执行成功。

image.png

接下来转化为 Azkaban 调度执行:

1、打开参考资料——Azkadan——job 配置模板

2、创建 job 描述文件

接下来打开 job 配置模板——mapreduce 文件夹,执行 mr 程序一定要有个 jar 包,接下来编写一个mapreduce_wordcount.job 文件,右键打开。

image.png

mapreduce_wordcount.job 文件中

#  mapreduce_wordcount.job

type=command //类型是 command 命令

command=/root/hadoop/apps/hadoop/bin/hadoop jar

hadoop -mapreduce-examples- 2.6.1.jar pi 4 4

//command 命令是用来输出一个路径

接下来打开 nide-2这个服务器,刚才执行的程序已经结束,输入 which hadoop

出现的路径:/export/serve/ hadoop-2.7.5/bin/hadoop,复制到 command

command=/export/serve/ hadoop-2.7.5/bin/hadoop jar

hadoop -mapreduce-examples- 2.7.5.jar pi 4 4

//command 执行下面这个命令,注意 jar 的名字要保持一致,不一致,就进行替换。

image.png

上面是根据圆周率为例,下面以 wordcount 为例:

command=/export/serve/ hadoop-2.7.5/bin/hadoop jar

hadoop -mapreduce-examples- 2.7.5. wordcount/wc/input

/wc/onput

这样就把 wordcount mr 程序配置好了,去提交一个 mr 程序,做一个单词统计,配置好以后就把 jar 包和 job 配置文件一起打包压缩。

3、将所有 job 资源文件打包成 zip 文件

配置好以后就选中 jar 包和 job 配置文件加到压缩档选项,之后选择 zip 格式。创建好这个压缩包。

4、通过 Azkaban web 管理平台创建 project 并上传 job 压缩包

打开浏览器 http://node-2:8443/index.进入到 Azkaban 新建一个 web 工程。

(1):首先创建 project

点击 Azkaban 界面的 Create Project,创建这个工程

image.png

(2):上传 zip

当前这是一个空工程,点击 Upload 进行执行操作,选择之前的压缩包 mapreduce.zip 上传到工程里,这样就完成了 zip 上传。

现在不能立即执行,因为程序需要一个输入输出路径,处理一下输入的待处理的数据,打开 node-2服务器,输入# hadoop fs-mkdir -p/wc/input,创建一下路径,接下来准备一个文件:# vim input.txt

image.png

当简单写入 :

Hadoop hello allen

Spark hadoop hive

Hadop hadoop

image.png

image.png

把这个文件放到这个路径下: hadoop fs -put input.txt/wc/input

上传之后,确保数据是否在/wc/input 里,确认好之后,就开始提交执行。

看是否能执行 mr 程序,返回 Azkaban 里的 mapreduce_wordcount,如果不想配置 Schedule 定时,可以点Execute.Flow 立即执行,点击 Execute.Flowmr 程序显示 RUNNING,说明正在执行,可以使用 node-18088刷新查看 mr 程序执行实时状况,与 Azkaban 同步 mr 程序执行实时状况,使用 node-18088看到里面有 word count mr程序,显示 RUNNINIG,等待一段时间,显示 SUCCEEDED,同时 Azkaban 显示 RUNNINIG,说明程序执行成功,同时可以使用 node-18088查看日志,以及也可以用 Azkaban 查看日志情况,同时也可以点击 Azkaban 上的 job List后面的 Details,查看 job 执行结果的相关信息以及是否出错,如果出错会有具体标识。

image.png

image.png

image.png

接下来进行验证:

打开/wc 路径下,发现 output 并点击,里面的_SUCCESS 代表成功执行,数据应该在 part-r-0000,点击 Download 进行验证,打击右键打开 part-r-0000 文件,发现完成单词统计,这样就完成了 mr 程序的提交。

image.png

image.png

image.png

总结:

针对 hadoop 任务,无论是 HDFS 任务调度还是 MAPREDUCE 任务调度,核心就是配置 command 命令,之前在shell 如何执行的,就如何配置在脚本当中。

相关文章
|
12天前
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
92 14
|
3月前
|
数据采集 分布式计算 Hadoop
使用Hadoop MapReduce进行大规模数据爬取
使用Hadoop MapReduce进行大规模数据爬取
|
5月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
283 6
|
5月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
127 2
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
185 0
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
75 0
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
113 0
|
5月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
101 3
|
5月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
89 2
|
5月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
82 4

相关实验场景

更多