1、参照官方文档下载安装
protoc 2.5.0 window 并设置 path
cmake 配置path
zlib 设置 zlib.dll 的 path
vs msbuild 2010 设置path
maven 设置path 和 maven_home
jdk 1.7+ 设置 jdk path 和 java_home
gcywin 设置 bin 的 path
配置 HADOOP_HOME 和 path
生成hadoop:
set Platform=x64
mvn package -Pdist,native-win -DskipTests -Dtar
如果 是msbuild == 2010 略过
最后输出文件在:hadoop-2.8.1-src\hadoop-dist\target
注意:如果msbuild > 2010 版本
1、hadoop-common-project\hadoop-common\src\main\winutils
修改 winutils.sln line1, line2 : 为当前msbuild版本
修改 winutils.vcxproj ToolVersion=msbuild版本,主机projectguid 添加 <PlatformToolset>v140</PlatformToolset>
修改 libwinutils.vcxproj ToolVersion=msbuild版本 主机projectguid<PlatformToolset>v140</PlatformToolset>
修改 libwintuils.c 中 line33 L ##x--> #x
2、hadoop\hadoop-2.8.1-src\hadoop-common-project\hadoop-common\src\main\native
修改 native.sln line1, line2 : 为当前msbuild版本
修改 native.vcxproj ToolVersion=msbuild版本,主机projectguid 添加 <PlatformToolset>v140</PlatformToolset>,在charset标签前添加 <PlatformToolset>v140</PlatformToolset>
3、hadoop-2.8.1-src\hadoop-hdfs-project\hadoop-hdfs-native-client
修改 pom.xml line137 为当前msbuild版本 Visual Studio 14
line143 单引号改为双引号 "
运行hadoop:
注意文件目录放在一个盘符下 否则报错 yarnruntime exception permission
配置 hadoop-env.cmd
添加CLASSPATH= %CLASSPATH%;%HADOOP_HOME%\share\hadoop\tools\lib\*;%HADOOP_HOME%\share\hadoop\hdfs\lib\*;%HADOOP_HOME%\share\hadoop\hdfs\*;%HADOOP_HOME%\share\hadoop\yarn\lib\*;%HADOOP_HOME%\share\hadoop\yarn\*;%HADOOP_HOME%\share\hadoop\common\lib\*;%HADOOP_HOME%\share\hadoop\common\*;%HADOOP_HOME%\share\hadoop\mapreduce\lib\*;%HADOOP_HOME%\share\hadoop\mapreduce\*;
运行配置文件: hadoop-env.cmd
注意项:java_home 中间的文件夹不能有空格
格式化namnenode:
在%HADOOP_HOME%下运行:%HADOOP_PREFIX%\bin\hdfs namenode -format
启动hdfs:
%HADOOP_PREFIX%\sbin\start-dfs.cmd
经测试,2.8.1不需要官方mapred-site.xml
core_site.xml:
<property>
<name>hadoop.tmp.dir</name>
<value>/E:/hadoop/user/local/tmp</value>
<description>Abase for other temporary directories. </description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:19000</value>
</property>
hdfs_site.xml:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/E:/hadoop/user/local/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/E:/hadoop/user/local/dfs/data</value>
</property>
web查看: http://localhost:50070
异常:
重新格式化namenode再启动时异常,原因VERSION 里面 clusterId 不一致,修改一致即可
参考:http://www.cnblogs.com/lucius/p/3459367.html
启动yarn:
%HADOOP_PREFIX%\sbin\start-yarn.cmd
测试:
%HADOOP_PREFIX%\bin\yarn jar %HADOOP_PREFIX%\share\hadoop\mapreduce\hadoop-mapreduce-example
s-2.5.0.jar wordcount /myfile.txt /out
yarn_site.xml:
<property>
<name>yarn.server.resourcemanager.address</name>
<value>localhost:8020</value>
</property>
<property>
<name>yarn.server.resourcemanager.application.expiry.interval</name>
<value>60000</value>
</property>
<property>
<name>yarn.server.nodemanager.address</name>
<value>localhost:45454</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.server.nodemanager.remote-app-log-dir</name>
<value>/E:/hadoop/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/E:/hadoop/dep/logs/userlogs</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>
<value>localhost</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>
<value>localhost</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>2</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>
</property>
web查看:http://localhost:8042