Hadoop:Windows 7 32 Bit 编译与运行
所需工具
1.Windows 7 32 Bit OS(你懂的)
2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz)
3.Apache Hadoop 2.2.0-src(hadoop-2.2.0-src.tar.gz)
3.JDK 1.7
4.Maven 3.2.1(apache-maven-3.2.1-bin.zip)
6.Unix command-line tool Cygwin(Setup-x86.exe)
Apache Hadoop 2.X推荐运行环境是64Bit机器,因为实际运行过程中要超过4GB内存嘛!32Bit适合个人开发调试学习使用。
环境配置
前言:由于Apache Hadoop 2.2.0发行版使用的动态链接库(bin\hadoop.dll、libwinutils.lib、winutils.exe)是Windows 64bit的,所以需要使用源代码重新编译成32bit的(有可能你下载回来的hadoop-2.2.0.tar.gz发行包里没有这些Windows动态库的)。如果你的系统盘是SSD的话,建议将安装在C盘根目录。
环境变量
(工具软件:3,4,5,6,7)安装过程不再详述,一路Next就行(JavaSE推荐根目录:c:\java)。重点在环境变量的配置部分,增加以下环境变量到“系统变量”中(Java路径不能有空格):
JAVA_HOME=C:\Java\jdk1.7.0_45
Platform=Win32
M2_HOME=C:\apache-maven-3.2.1
Path=;C:\cygwin\bin;C:\apache-maven-3.2.1\bin;C:\protoc-2.5.0-win32;
配置示例(别忘了设置Path哦):


解压源代码
将hadoop-2.2.0-src.tar.gz源代码解压到D盘根目录,看上去路径如下:D:\hadoop-2.2.0\
Apache Hadoop svn 代码库地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0
需要手工修正源代码的几处编译错误:
第一处:
修改文件:\hadoop-common-project\hadoop-auth\pom.xml
修改内容:在大约56行的位置增加一个Xml配置节点。
<dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <scope>test</scope>
    </dependency>
修改示例:

第二处:
修改文件:hadoop-common-project\hadoop-common\src\main\native\native.sln
修改内容:用记事本打开文件。
替换内容:
GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Mixed Platforms.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Mixed Platforms.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Mixed Platforms.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Mixed Platforms.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
新内容:
GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.ActiveCfg = Release|Win32
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.Build.0 = Release|Win32
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.Build.0 = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.ActiveCfg = Release|Win32
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.Build.0 = Release|Win32
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.ActiveCfg = Release|x64
		{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
修改示例:

第三处:
修改文件:hadoop-common-project\hadoop-common\src\main\native\native.vcxproj
修改内容:
查找替换”Release|x64“为”Release|Win32“
查找替换”<Platform>x64</Platform>“为”<Platform>Win32</Platform>“
修改示例:

第四处:
右键单击”D:\hadoop-2.2.0“文件夹,选择”管理员取得所有权“。否则编译过程中可能会发生”拒绝访问“错误(右键没有显示该菜单的,自行网上查找注册表修改方法)。
编译过程
打开“开始”--“所有程序”--“Microsoft Windows SDK v7.1”--“Windows SDK 7.1 Command Prompt”,进入VC++的命令行工具(一定要从此处进入方可顺利编译Hadoop源代码,记着是以管理员身份运行)。命令如下:
切换至源代码根目录,执行编译命令:mvn package -Pdist,native-win -DskipTests -Dtar
示例运行结果
Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.1
\.
Targeting Windows 7 x86 DebugC:\Windows\system32>d:
D:\>cd D:\hadoop-2.2.0
D:\hadoop-2.2.0>mvn package -Pdist,native-win -DskipTests -Dtar
................................2.2.1版本编译完成大约需要16分钟左右
................................2.4.0版本编译完成大约需要22分钟左右(觉得编译过程慢的话:自己动手配置镜像服务器)
配置运行
Hadoop编译成功后,程序集输出在: hadoop-common-project\hadoop-common\target\hadoop-common-2.2.0目录下。
1.解压缩”hadoop-2.2.0.tar.gz“至D盘如下目录:D:\hadoop-common-2.2.0
2.合并替换发行版本的64动态链接库:主要是是以下几个文件(bin\hadoop.dll、bin\hadoop.exp、bin\hadoop.lib、bin\hadoop.pdb、bin\libwinutils.lib、bin\winutils.exe、bin\winutils.pdb),从编译成功后的输出目录Copy到Apache发行版形同目录下替换即可。
3.修改配置文件
core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop-bin/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop-bin/data/datanode</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
其他配置文件保持默认即可。
4.配置Hadoop Hdfs运行环境变量(重要)
HADOOP_HOME=D:\hadoop-common-2.2.0
Path=D:\hadoop-common-2.2.0\bin
5.格式化hdfs文件系统
以管理员身份打开命令行,并切换到:D:\hadoop-common-2.2.0\bin目录下,执行命令:
hadoop namenode -format
如果不出意外,hdfs文件系统将格式化成功,你会在D:\hadoop-bin\data看到已经生成了namenode文件夹。
6.启动Hadoop HDFS服务器
同样管理员身份命令行,切换到:D:\hadoop-common-2.2.0\sbin目录下,执行命令:
start-all.cmd

不出意外,用浏览器打开:http://localhost:8042 或者 http://localhost:50070 会有惊喜哦!记得别把本地的端口占用了。


7.上传文件到HDFS
如果你对命令行熟悉的话,可以采用命令行的方式推送的HDFS。如果你的hdfs-site.xml配置文件时Copy我以上的示例的话,那么WEBHDFS默认是开启的,什么意思?就是通过Http RestFull风格API管理文件哦!另外还要记得把dfs.permissions设置为false,要不你没有权限上传文件的哦!
推荐个HDFS文件管理工具:Red Gate Software Ltd(大名鼎鼎的Red Gate)

上传文件到HDFS

8.停止Hadoop HDFS服务器
同样管理员身份命令行,切换到:D:\hadoop-common-2.2.0\sbin目录下,执行命令:
stop-all.cmd
编后语
Windows 64 Bit是有它自己的道理的,虽然通过一些努力编译出了32Bit环境下的程序。。。

参考链接
你还可以用我编译好的32Bit程序先撸一把:http://yunpan.cn/Qir4aFYb96jkL 访问密码 a873
Hadoop:Windows 7 32 Bit 编译与运行的更多相关文章
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
		
今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. ...
 - hadoop——在命令行下编译并运行map-reduce程序  2
		
hadoop map-reduce程序的编译需要依赖hadoop的jar包,我尝试javac编译map-reduce时指定-classpath的包路径,但无奈hadoop的jar分布太散乱,根据自己 ...
 - Windows 10 x64 下编译 Hadoop 源码
		
Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...
 - win7 64位平台编译的程序在XP 32位平台无法运行的解决方法
		
win7 64位平台编译的程序在XP 32位平台无法运行的解决方法 vs2010的开发环境,制作了一个DLL库.但DLL在XP 32位平台一直无法使用.解决方法如下: 右键项目,属性->配置属性 ...
 - [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现
		
本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...
 - 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
		
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
 - windows 平台使用 VS2017 编译openssl源码
		
windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...
 - windows系统,boost编译安装
		
windows系统,boost编译安装vs2017 1.下载https://www.boost.org/users/download/下载windows对应的zip包解压 2.配置vc环境变量我的是: ...
 - windows 平台使用 VS2017 编译 libevent 源码
		
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
 
随机推荐
- objective c, protocol
			
OC中协议类似于java中的接口,在多个类具有类似的方法时可以将这些方法定义到protocol中,然后各个类分别实现protocol中的各个方法. 例:有两个类Square和Circle, 定义一个p ...
 - avalon2学习教程14动画使用
			
avalon2实际上没有实现完整的动画模块,它只是对现有的CSS3动画或jquery animate再包装一层. 我们先说如何用CSS3为avalon实现动画效果.首先要使用avalon.effect ...
 - Nginx配置文件(nginx.conf)配置详解
			
Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...
 - HTML第二天
			
针对html做了一个知识点的思维导图
 - java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView
			
最近在学习drawerLayout时,遇到这个bug.如下示: java.lang.ClassCastException: android.widget.RelativeLayout cannot b ...
 - Codeforces Round #382 (Div. 2)  继续python作死  含树形DP
			
A - Ostap and Grasshopper zz题能不能跳到 每次只能跳K步 不能跳到# 问能不能T-G 随便跳跳就可以了 第一次居然跳越界0.0 傻子哦 WA1 n,k = map ...
 - [转][MSSQL]SQL Server 2008 记住密码功能
			
本文转自:http://zhidao.baidu.com/link?url=V_laNOvutMin0kU3DUaMhLSFAYfgtz2IoEAjh8grNVPOZLpd8Pudb4iqZl88Tn ...
 - wcf session开启
			
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] pu ...
 - Visual Studio 必备神器
			
会使用工具是人类文明的一大进步,今天敏捷大行其道,好的工具可以大大的提高生产力,这里说的工具都是VS平台上的扩展工具,一些机械的部分可以交给工具去处理,自己多关注其他部分.下面分享下我觉得不错的工具, ...
 - Java 基础知识总结 (二、基本数据类型)
			
二.基本数据类型 java基本数据类型只能先声明后使用 boolean true/false char 16-bit unicode character byte 8-bit integer sho ...
 
			
		
