余老师带你学习大数据-Spark快速大数据处理第七章第三节Oozie案例
Cron Action
Cron Action是定时方法。Oozie的Cron Action有自己的EL表达式。
job.properties是Oozie运行的本地文件。
workflow是工作流的定义文件。
coordinator是Oozie自带的定时配置文件。
coordinator
配置name,定时的frequency每十分钟执行一次,起点和结束时间,时区是UTC。
workflow
开始时间是2019-01-01T00:00Z,结束时间是2020-01-01T01:00Z。定义的信息传递给coordinator。
操作
上传程序到hdfs上
1、在app-11上,以hadoop用户登录。
命令:su – hadoop
2、进入tmp根目录。
命令:cd /tmp/
3、创建下载oozie案例的目录。
命令:mkdir oozie-example
4、下载案例程序。
命令:cp -R Spark-stack/Oozie/case/* oozie-example/
注:这里拷贝的不只cron,是将所有的案例都拷贝了过来。
5、进入Oozie的安装目录。
命令:cd /hadoop/Oozie/oozie-5.0.0/
6、在hdfs上创建上传程序的目录。
命令:hdfs dfs -mkdir -p /user/hadoop/cron-schedule-example/apps/cron-schedule
7、上传程序到hdfs。
命令:hdfs dfs -put /tmp/oozie-example/cron-schedule-example/apps/cron-schedule/* /user/hadoop/cron-schedule-example/apps/cron-schedule
8、查看是否上传成功。
命令:hdfs dfs -ls /user/hadoop/cron-schedule-example/apps/cron-schedule
执行提交
9、先登录Oozie的server。网址:app-11:11000
10、任务提交。
命令:bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/cron-schedule-example/apps/cron-schedule/job.properties -run
11、刷新Oozie的服务器。因为是定时的,每隔一段时会触发一个job。原始的job在Coordinator Jobs中。触发的job在Workflow Jobs中。任务是一直进行的,不会结束,需要人为结束。
12、结束任务。
命令:bin/oozie job -oozie http://app-11:11000/oozie -info 0000000-201105134017865-oozie-hado-C
13、删除任务。
命令:bin/oozie job -oozie http://app-11:11000/oozie -kill 0000000-201105134017865-oozie-hado-C
14、再刷新Oozie服务器。
ShellAction
demo
这是输出结果。当前的PATH路径和echo my_output=Hello Oozie。
操作
1、在app-11上以hadoop用户登录。
命令:su – hadoop
2、在hdfs上创建上传程序的目录。
命令:hdfs dfs -mkdir -p /user/hadoop/shell-example/apps/shell
3、上传程序到hdfs上。
命令:hdfs dfs -put /tmp/oozie-example/shell-example/apps/shell/* /user/hadoop/shell-example/apps/shell
4、查看是否上传成功。
命令:hdfs dfs -ls /user/hadoop/shell-example/apps/shell
5、进入Oozie的安装目录下。
命令:cd /hadoop/Oozie/oozie-5.0.0/
6、提交任务。
命令:bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/shell-example/apps/shell/job.properties -run
7、登录Oozie的服务器。
8、执行完成之后打开Workflow中的All Jobs
9、打开第一个任务。
10、点击Job DAG。
这是整个的流程图,其中绿色的部分是这个任务在执行的流程。
11、登录app-12:8088。这是shell的执行任务。
12、点击任务。
13、找到logs点选择。
14、点击stdout。
15、再点here。这是执行任务的过程,和打印的classpath。最后是输出的结果。
MapReduce-例子
job.properties
做MapReduce需要输出MapReduce,所以结果输出Dir。
workflow.xml
MapReduce的流程。
操作
1、以hadoop用户登录。
命令:su – hadoop
2、拷贝相关的job定义。
命令:hdfs dfs -copyFromLocal /tmp/oozie-example/mapreduce-example/ /user/hadoop/
3、查看是否拷贝成功。
命令:hdfs dfs -ls /user/hadoop
4、创建存放输出结果的目录。
命令:hdfs dfs -mkdir /user/hadoop/mapreduce-example/input-data
5、进入Oozie的安装目录下。
命令:cd /hadoop/Oozie/oozie-5.0.0/
6、提交集群执行MapReduce。
命令: bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/mapreduce-example/apps/map-reduce/job\(1\).properties -run
7、登录Oozie的服务器。网址:app-11:11000。
8、查看执行结果的位置。
命令:hdfs dfs -ls /user/hadoop/mapreduce-example/output-data/map-reduce
9、查看执行结果。
命令:hdfs dfs -cat /user/hadoop/mapreduce-example/output-data/map-reduce/part-00000
打印的程序语句的行号。
Hive-例子
job.properties
通过jdbcURL访问hive2中的test库,提供了便捷的方式。
操作
1、在app-12上,以hadoop用户登录。
命令:su – hadoop
2、确保10000端口启动。
命令:netstat -tnl
3、在app-11上,以hadoop用户登录。
命令:su – hadoop
4、进入Oozie安装的目录。
命令:cd /hadoop/Oozie/oozie-5.0.0/
5、上传相关的文件。
命令:hdfs dfs -copyFromLocal /tmp/oozie-example/hive2-example /user/hadoop/
6、检查是否上传成功。
命令:hdfs dfs -ls /user/hadoop/
7、提交程序。
命令:bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/hive2-example/apps/hive2/job.properties -run
8、登录hadoop集群。
9、查看打印结果。结果在Launcher中。结果有12行。
Spark-例子
job.properties
在做sharelib时,我们将spark的目录删除了,所以也可以不指代。这里指代是为了应对多个版本时可以更明确lib的版本,这样就可以在一个版本的集群上执行多个版本的程序。
操作
1、以hadoop用户登录。
命令:su - hadoop
2、进入Oozie的安装目录下。
命令:cd /hadoop/Oozie/oozie-5.0.0/
3、拷贝相应的文件到HDFS上。
命令:hdfs dfs -copyFromLocal /tmp/oozie-example/spark-example/ /user/hadoop/
4、查看是否拷贝成功。
命令:hdfs dfs -ls /user/hadoop/
5、执行。
命令:bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/spark-example/apps/spark/job.properties -run
6、登录Oozie服务器。
7、登录app-12:8088。
因为hadoop是执行方,所以执行的是最快的。而Oozieserver需要有一个回调,hadoop通过回调将状态信息反馈给Oozieserver,所以Oozie稍微缓慢点。
8、查看SparkPi的执行结果。执行结果就是:Pi is roughly 3.1423357116785584.
pyspark-例子
pi.py
这是spark做π计算的程序,使用蒙的卡罗计算方式计算的π。
job.properties
定义Python执行命令的位置,在集群上所有的机器上安装anaconda。
操作
1、以hadoop用户登录。
命令:su - hadoop
2、进入Oozie的安装目录下。
命令:cd /hadoop/Oozie/oozie-5.0.0/
3、将相应的文件拷贝到hdfs上。
命令:hdfs dfs -copyFromLocal /tmp/oozie-example/spark-example-pi/ /user/hadoop/
4、查看是否拷贝成功。
命令:hdfs dfs -ls /user/hadoop/
5、提交程序。
命令:bin/oozie job -oozie http://app-11:11000/oozie -config /tmp/oozie-example/spark-example-pi/apps/pyspark/job.properties -run
6、登录hadoop集群。
7、查看Spark-Pi的结果。
详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰