Hadoop: 自定义mapreduce方法,IDEA打包发送到终端运行,错误找不到mapper方法
最近在学习Hadoop,写了个例子,自定义的一个InputFormat的方法,在IDEA上运行没有问题,但是打包发送到终端后运行找不到mapper方法,找了半天发现是在Main方法里面少了一句
//mr程序,如果要打包到集群运行的,需要加这个
job.setJarByClass(MyInputFormatMain.class);
不加这句在IDEA里面没有问题,到终端就不行了。
还有个小错误在自定义的RecordReader方法的时候,使用了Filesystem对象,然后在实现RecordReader的close()方法的时候,加了句Filesystem.close()结果终端也报错:
failed with state FAILED due to: Job commit failed: java.io.IOException: Filesystem closed
以后要注意