Hadoop入门采坑记(1)
近期做本科毕设需要用到Hadoop,刚接触Hadoop,遇到了不少问题,之后会一点一点在博客中记录这些问题和解决方法,这也是我个人遇到问题的解决办法,可能绕了弯路。(目前手里还没有截图,后续再更新)
1. Hadoop本地开发jar包依赖
在本地配置Hadoop开发环境,用了Hadoop 2.6的包,但是集群的运行环境是3.1.3,会产生一些问题。之后再本地搭建了Hadoop伪分布式环境,具体搭建方法参考网上,在这里我参考了《Hadoop权威指南》这本书。
为了方便原有项目的开发,在Hadoop安装路径找到Hadoop目录下/usr/local/hadoop/share/hadoop/(这个路径),将里面所有的jar包导入到项目中的依赖。导入之后一般不会出现jar包缺失,但缺点是,jar包太多,有些jar包是多余的。
2. 任务jar包依赖缺失问题
将项目打包好之后,在本地与伪分布式环境下没有出错,但是放到完全分布式环境下运行,出现了没有料想到的错误。经常发生的是ClassNotFound的错误,原因是任务jar包中找不到依赖库。而在代码中也通过设置了任务类,Map和Reduce类,以及自定义的Outputformat类,但是都不奏效。
遇到类似的问题有几种解决办法(待补充)。
(1)配置classpath