2.5.0
看红字
将时区设置完后
可以使用一种简单粗暴的方式统一时间
只不过适用于我们学习阶段
在工作时
不可以 要按部就班的使用时间服务器 改脚本
小技巧
pwd
获取当前路径
然后拖到桌面
然后登陆web页面
点击创建好project
然后点击upload
上传后flows下会有名字出现
然后点击excute flow
然后你可以schedule选择时间去执行
也可以execute立即执行
我选立即执行
然后继续
中间的kunkun变绿代表成功
变红表示·失败
点击job list 可以查看详细信息
运行日志
点击上方的history可以查看以前运行的历史
azkaban调用java程序
另外一个测试
使用idea打包的jar包运行任务
建一个Maven项目
代码很简单 不要配置pom.xml
写好代码
然后
idea最右边Maven Project
双击package 打包
(我的打包失败了右边的plugins报错 上网查了查 没改啥就重启好了 贼难受)
成功后最左边target 下会有jar包 复制 粘贴到桌面上传到虚拟机
package com.qianfeng;
import sun.applet.Main;
import java.io.FileOutputStream;
import java.io.IOException;
public class AzkabanTest {
public void run()throws IOException{
FileOutputStream fos = new FileOutputStream("/usr/local/azkaban/output.txt");
fos.write("this is a java progress".getBytes());
fos.close();
}
public static void main(String[] args) throws IOException{
AzkabanTest azkabanTest = new AzkabanTest();
azkabanTest.run();
}
}
然后写job
java.job
写好后压缩
压缩后拿到桌面
然后登陆web
https://192.168.37.111:8443
然后创建java的project 然后upload zip包
然后执行
(我这个不知道咋回事 没看到执行结果 web页面上 我还以为出错了 但是在history能看到成功的历史 哈哈 )
然后查看执行结果 有那么一句话输出了 运行正确
azkaban调用hdfs和MapReduce程序
然后就是拖到桌面
创建project
然后上传
然后execute执行
等待
都差不多
然后还有等结束了 可以通过web查看结果
登录192.168.37.111:50070
可以看到结果
成功
小技巧
1.通过hadoop环境变量
打印hadoop的路径
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ec2b1cdd9aed7a3faa2305c9af4bd278.png)
2.idea获取java中全类名
选中类名
右击 copy reference
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/508c2ce74cc4807d8e1e0e44c8e69708.png)
azkaban调用MapReduce
以前写的程序打包的
就是WordCount程序
013我的博客 可以找到
然后数据时words
输出到那个output
打包 拿出来到桌面
创建计划
上传
执行
出错了
这里写的地址·应该是hdfs的下目录文件
并不是本地的
时间长了都忘了 贼难受
然后去重新弄
然后运行
还是失败
Exception in thread “main” java.io.IOException: java.net.ConnectException: Call From hadoop01/192.168.37.111 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
出现这个错误
我单独在xshell 运行了一下yarn jar /home/wc.jar qf.com.mr.MyWordCount /words /output/01
没有错误 可以运行 name到底咋了
然后先说另一个办法
刚出现这个错误
大神路过
碰到说
把jar包放到桌面 跟mapred.job一起打包上传去运行
然后将wc.jar路径删掉直接运行
对了记得把之前的结果输出路径output删掉 hdfs dfs -rmr /output
然后运行
对了
贼棒
========
ok 回过头来看 那个错误
Call From hadoop01/192.168.37.111 to 0.0.0.0:10020 failed on connection exception
百度有方法 说让修改配置文件
唉气
苍天作证
我啥也没改啊
就是再次上传 重新跑了一遍就好了
什么也没改
贼难受
就这么成功了
这两次都成功的历史
azkaban调用hiveavi
sql语句
use default;
drop table student;
create table student(id int, name sttring)
row format delimited fields terminated by '\t';
load data local inpath '/home/student.txt' into table student;
insert overwrite local directory '/home/olddata'
row format delimited fields terminated by '\t'
select * from student;
写到这个路径(哪个路径都行)
然后写job文件
我因为没有正常退出 待机了一会 关掉了
然后
:wq退出不了
我用第二种方法 退出
然后压缩 弄到桌面
创建计划 上传
执行
然后
失败
我直接使用终端 hive去运行
找到错误
然后修改hivef.sql文件重新运行
成功
然后删除文件
创建新的hive2计划
使用azkaban再次运行
第二次成功!
========
azkaban调用多jobsavi
现在有个3个任务(分解出来的)
1.put 将student.txt文件上传到azkaban文件夹
2.create 在上传student.txt这个文件的基础上创建一个外部表
3.select 查一下这张表
3个任务存在依赖关系
现在有个3个任务(分解出来的)
1.put 将student.txt文件上传到azkaban文件夹
put.job
type=command
command=/usr/local/hadoop-2.7.1/bin/hadoop fs -put /home/student.txt /azkaban
2.create 在上传student.txt这个文件的基础上创建一个外部表
create.job
use default;
drop table stu;
create table stu(id int, name string)
row format delimited fields terminated by '\t'
location '/azkaban';
type=command
command=/usr/local/hive-1.2.1/bin/hive -f /usr/local/azkaban/jobs/create.sql
dependencies=put
3.select 查一下这张表
type=command
command=/usr/local/hive-1.2.1/bin/hive -e 'select * from stu;'
dependencies=create
3个任务存在依赖关系
成功