天天看点

Hadoop:Windows 7 32 Bit 编译与运行

1.windows 7 32 bit os(你懂的)

2.(hadoop-2.2.0.tar.gz)

3.(hadoop-2.2.0-src.tar.gz)

3.

4.(apache-maven-3.2.1-bin.zip)

5.

6.

7.

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:Windows 7 32 Bit 编译与运行
Hadoop:Windows 7 32 Bit 编译与运行

将hadoop-2.2.0-src.tar.gz源代码解压到d盘根目录,看上去路径如下:d:\hadoop-2.2.0\

apache hadoop svn 代码库地址:

需要手工修正源代码的几处编译错误:

修改文件:\hadoop-common-project\hadoop-auth\pom.xml

修改内容:在大约56行的位置增加一个xml配置节点。

<dependency>

  <groupid>org.mortbay.jetty</groupid>

  <artifactid>jetty-util</artifactid>

  <scope>test</scope>

</dependency>

修改示例:

Hadoop:Windows 7 32 Bit 编译与运行

修改文件:hadoop-common-project\hadoop-common\src\main\native\native.sln

修改内容:用记事本打开文件。

替换内容:

globalsection(projectconfigurationplatforms) =

postsolution

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|mixed

platforms.activecfg =

release|x64

platforms.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|win32.activecfg =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|win32.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|x64.activecfg =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|x64.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|mixed

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|win32.activecfg

= release|x64

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|win32.build.0

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|x64.activecfg

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|x64.build.0 =

endglobalsection

新内容:

release|win32

=

Hadoop:Windows 7 32 Bit 编译与运行

修改文件:hadoop-common-project\hadoop-common\src\main\native\native.vcxproj

修改内容:

查找替换”release|x64“为”release|win32“

查找替换”<platform>x64</platform>“为”<platform>win32</platform>“

Hadoop:Windows 7 32 Bit 编译与运行

右键单击”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 debug c:\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分钟左右
Hadoop:Windows 7 32 Bit 编译与运行
................................2.4.0版本编译完成大约需要22分钟左右(觉得编译过程慢的话:)
Hadoop:Windows 7 32 Bit 编译与运行

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

hdfs-site.xml

其他配置文件保持默认即可。

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

Hadoop:Windows 7 32 Bit 编译与运行

不出意外,用浏览器打开:http://localhost:8042 或者 http://localhost:50070

会有惊喜哦!记得别把本地的端口占用了。

Hadoop:Windows 7 32 Bit 编译与运行
Hadoop:Windows 7 32 Bit 编译与运行

7.上传文件到hdfs

如果你对命令行熟悉的话,可以采用命令行的方式推送的hdfs。如果你的hdfs-site.xml配置文件时copy我以上的示例的话,那么webhdfs默认是开启的,什么意思?就是通过http

restfull风格api管理文件哦!另外还要记得把dfs.permissions设置为false,要不你没有权限上传文件的哦!

推荐个hdfs文件管理工具:red gate software ltd(大名鼎鼎的red gate)

Hadoop:Windows 7 32 Bit 编译与运行

上传文件到hdfs

Hadoop:Windows 7 32 Bit 编译与运行

8.停止hadoop hdfs服务器

stop-all.cmd

windows 64 bit是有它自己的道理的,虽然通过一些努力编译出了32bit环境下的程序。。。

Hadoop:Windows 7 32 Bit 编译与运行

你还可以用我编译好的32bit程序先撸一把:http://yunpan.cn/qnbm3rzxf2l8x  访问密码 e9b3