在学习hadoop(开发)的起始阶段,面对庞大的系统和知识体系无从下手。
可以从开发入手。仅使用开发环境,在开发环境中运行测试,检查mapper和reducer的运行效果。
使用maven管理依赖的话,入门的Hello World级的程序,Word Count,需要的依赖有:
junit
hadoop-common
hadoop-mapreduce-client-jobclient
hadoop-minicluster
Word Count 测试代码参考github用户bobfreitas
然后在jetbrains建立Java项目,配置使用JUnit运行,就……会报错(捂脸
windows系统中,还需要以下几个步骤:
1,需要给 hadoop conf 配置 hadoop.home.dir 变量或 HADOOP_HOME 环境变量
2,在以上环境变量的文件夹中,要在 bin 文件夹中包含对应版本的 winutils.exe
3,需要配置 PATH 环境变量,包含上述 bin 文件夹
4,在上述bin文件夹中,还要提供相应版本的 hadoop.dll
其中,winutils.exe 及 hadoop.dll 可以从 github 下载
然后程序能避开windows的坑了,但还有个bug
1,在Word Count测试程序中,tearDown的部分,前两行想在hdfs中删除文件,不,别想了,现在只有虚拟的hdfs,而且想删除的是真实的文件系统的文件。所以前两行注释掉
2,最后一行的cluster.shutdown(),为啥是在删除临时文件之后?要把这一行放在最开始
好了,现在测试程序可以运行了(吧?
关键词:
hadoop wordcount tutorial helloworld minicluster mini-cluster minidfscluster unittest unit test junit
开发 环境 配置 单元测试
另外,中间卡住的同学,你们大概是maven太慢了吧,可以考虑用aliyun的nexus源,或者自己用sonatype/nexus建立一个本地的代理缓存
最后,本文相关的程序将择时上传到 github