第一个maven+hadoop项目

虽然想到了第一个项目会花一些时间,但也不用真的特别久。
代码没什么好讲的,《hadoop权威指南第三版》第二章,就是MaxTemperature的那个。典型的为了讲解而杀鸡用牛刀的案例。
源代码在https://github.com/tomwhite/hadoop-book/tree/master/ch02。

遇到的问题有:

1、Job和JobConf类型。
FileInputFormat.addInputPath(job, new Path(args[0]));
一开始一直拒绝job作为参数,提示应该使用jobconf类型。然而我配置了一波pom.xml之后,这个问题就解决了。现在还不能十分肯定,但第2章也有讲到新老版本的问题。
2、fileSystem scheme
最后就是fileSystem scheme的问题。最开始项目出错就是这个,去看了一下代码,除了默认的”file:///“以外,暂时没有发现有用的信息。我一直觉得是不是我hadoop的安装配置有问题。在stackOverFlow上面确实有发现这个问题,需要修改core-site.xml文件,或者指明fileSystem。但是我试了一下,并木有什么卵用。于是,重新解压覆盖了一波tarball。哦,对了,再次记一下,hadoop-env.sh里面配$JAVA_HOME。
不知道是否HDFS配置的问题,重新安装之后并没有解决的问题,在我重建项目之后也莫名其妙的消失了。
3、打包问题
之前使用hadoop jar的时候,一直读取不进参数。命令行本身就容易打错是一方面,另一方面,目测应该使用绝对路径,之所以这么觉得,是因为相对路径一直找不到,最后我也死心了。最好input和output直接放在项目文件夹下,不然真的是有种眼瞎的感觉。
之后就是打包的问题。使用IDEA打包远比自己package强。普通项目还好一点,maven项目很容易纠结manifest的问题。

虽然只有这么3个问题,然而花了我一天半。我原来起的工程名字叫做test,一直各种出错,后来改成了书上的maxTemperature,就好了。我觉得代码真的是玄学吧。

你可能感兴趣的:(maven,hadoop)