由于目前找到很多教程,发现很多不完整,导致在本地运行mapperreduce不成功,经多次尝试,现总结如下
window IDEA Hadoop环境
本地使用的环境为:windows7 + hadoop 2.7.4 + IDEA
1.下载hadoop 2.7.4,并解压,并设置环境变量
HADOOP_BIN_PATH : %HADOOP_HOME%\bin
HADOOP_HOME : D:\soft\hadoop-2.7.4
HADOOP_PREFIX : %HADOOP_HOME%
在PATH
追加;%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin
。
2.使用winutils,只有windows下才需要该文件,linux及mac下不需要。
在gitlib查找winutils
相关的包,或者其它上面找到winutils.zip
,然后把winutils.exe
,winutils.pdb
,hadoop.dll
解压到hadoop的bin
目录下。
3.重启idea,如果在设置完环境变量不重启,认不到刚才设置的hadoop环境变量。
4.创建maven项目,其pom.xml依赖如下:
<properties>
<hadoop.version>2.7.4</hadoop.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
然后编写mapper和reducer代码即可,其本地运行使用的是本地的hadoop可执行环境(不需要启动),在运行时指定输入、输出目录即可。
如果多次运行,需要把上一次的输出目录删除,否则报目录已存在
如果需要在hadoop上面运行,则可以打包成jar,然后放到集群上运行即可。