尝试使用多个输入文件运行MapReduce作业时,我面临以下错误。虽然我只能使用一个输入文件运行MapReduce作业。 我浏览了一些帖子,几乎每个人都说防火墙问题或者没有在/ etc / hosts文件中正确设置主机名。 即使是这种情况,无论输入是单个文件还是目录(多个文件),我的MapReduce作业都将失败
以下是控制台的输出。
INFO input.FileInputFormat: Total input paths to process : 2
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
WARN snappy.LoadSnappy: Snappy native library not loaded
INFO mapred.JobClient: Running job: job_201505201700_0005
INFO mapred.JobClient: map 0% reduce 0%
INFO mapred.JobClient: map 50% reduce 0%
INFO mapred.JobClient: map 100% reduce 0%
INFO mapred.JobClient: map 100% reduce 16%
INFO mapred.JobClient: map 100% reduce 0%
INFO mapred.JobClient: Task Id : attempt_201505201700_0005_r_000000_0, Status : FAILED
Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
WARN mapred.JobClient: Error reading task outputAMR-DEV02.local
WARN mapred.JobClient: Error reading task outputAMR-DEV02.local
INFO mapred.JobClient: map 100% reduce 16%
INFO mapred.JobClient: map 100% reduce 0%
INFO mapred.JobClient: Task Id : attempt_201505201700_0005_r_000000_1, Status : FAILED
Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
WARN mapred.JobClient: Error reading task outputEmbeddedQASrv.local
WARN mapred.JobClient: Error reading task outputEmbeddedQASrv.local
INFO mapred.JobClient: map 100% reduce 16%
请注意。 EmbeddedQASrv.local(IP地址.192.168.115.80)和AMR-DEV02.local(IP地址.192.168.115.79)是我的从属节点主机名。
我的Hadoop群集由1个Master和2个Slaves组成。
这是我从控制台运行的命令。(emp_dept_data是一个包含empData和deptData文件的目录)
hadoop jar testdata/joindevice.jar JoinDevice emp_dept_data output15
但是,如果我运行此命令,MapReduce作业会成功(单个文件作为输入)
hadoop jar testdata/joindevice.jar JoinDevice emp_dept_data/empData output16
这是我的/ etc / hosts文件条目设置主节点。但是同样的条目也被复制到我的从属节点。
127.0.0.1 amr-dev01.local amr-dev01 localhost
::1 localhost6.localdomain6 localhost6
#Hadoop Configurations
192.168.115.78 master
192.168.115.79 slave01
192.168.115.80 slave02
我对错误以及在哪里检查确切的根本原因毫无头绪。
答案 0 :(得分:1)
实际问题出在/ etc / hosts文件中。我评论了我的本地主机配置。 amr-dev01.local amr-dev01 localhost 而不是指定不同的名称,如master,slave01,slave02 ...我使用相同的主机名
192.168.115.78 amr-dev01 192.168.115.79 amr-dev02