长话短说。hadoop(2.7)和 oozie(5.0)都安装在一台服务器上(伪分布式)。尝试 oozie 的官方 example:example
修改 map-reduce 的 job.properties 如下:
nameNode=hdfs://localhost:9000
jobTracker=localhost:8032
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce
outputDir=map-reduce
按照文档中的提示输入命令"oozie job -oozie http://localhost:11000/oozie -config examples/apps/map-reduce/job.properties -run"时报错:
Error: E0501 : E0501: Could not perform authorization operation, Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: callId, status; Host Details : local host is: "Master/服务器 ip"; destination host is: "localhost":9000;
已经确认 nameNode 端口无误,在服务器 shell 键入"hadoop fs -ls hdfs://localhost:9000"会返回结果。,可以确认 oozie 的端口无误,浏览器输入“ http://服务器 ip:11000 ”可以进入 oozie 管理界面。jobtracker ip 应该没错,我在 yarm-site.xml 里没有看见端口的设置项,但是在"netstat -tunlp"中看见有 8032 端口在占用,这应该是 resourcemanager 的默认端口。 关键点可能在 Message missing required fields: callId, status 这个提示上,放狗搜看到有人说是 hadoop 版本太高接口不一致什么的,但是 oozie5.0 已经要求安装的 hadoop 最低版本在 2.6 以上。这让我很疑惑。 希望能得到一些指导,感谢。
1
blueskea 2018-07-10 18:37:04 +08:00 via Android
自带的 mr 感觉不好用,我直接用的 shell 类型的 action 替代了自带的 mr 方式。
|