所需工具

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)

5.Protocol Buffers 2.5.0

6.Unix command-line tool Cygwin(Setup-x86.exe)

7.Microsoft Windows SDK v7.1

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 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分钟左右

................................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环境下的程序。。。

参考链接

http://www.srccodes.com/p/article/38/build-install-configure-run-apache-hadoop-2.2.0-microsoft-windows-os

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

Hadoop:Windows 7 32 Bit 编译与运行的更多相关文章

  1. Windows 下使用 GNUstep 编译并运行 Objective-C 程序

    今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. ...

  2. hadoop——在命令行下编译并运行map-reduce程序 2

     hadoop map-reduce程序的编译需要依赖hadoop的jar包,我尝试javac编译map-reduce时指定-classpath的包路径,但无奈hadoop的jar分布太散乱,根据自己 ...

  3. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  4. win7 64位平台编译的程序在XP 32位平台无法运行的解决方法

    win7 64位平台编译的程序在XP 32位平台无法运行的解决方法 vs2010的开发环境,制作了一个DLL库.但DLL在XP 32位平台一直无法使用.解决方法如下: 右键项目,属性->配置属性 ...

  5. [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现

    本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...

  6. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  7. windows 平台使用 VS2017 编译openssl源码

    windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...

  8. windows系统,boost编译安装

    windows系统,boost编译安装vs2017 1.下载https://www.boost.org/users/download/下载windows对应的zip包解压 2.配置vc环境变量我的是: ...

  9. windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

随机推荐

  1. 【转载】大数据量传输时配置WCF的注意事项

    WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定 ...

  2. Android之使用Android-AQuery异步加载图片(一)

    第一节:转载地址(http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2738299.html) // 必须实现AQuery这个类 AQuery aq ...

  3. solrCloud 管理

    创建collection: /soft/server/solr-4.10.0/example/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost ...

  4. web测试特别点

    1.浏览器的后退按钮  提交表单一条已经成功提交的记录,back后再提交,看系统会如何处理.  检查多次使用back健的情况在有back的地方,back,回到原来的页面,再back,重复几次,看是否会 ...

  5. Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作

    Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作          博客分类: vb2005xu软件学习 OSApache防火墙PHPWindows  日志如下:[ ...

  6. webform注册和Repeater

    一.注册1.日期(1)年月日用三DropDownList个,分别循环写入数字 代码写在后台  Page_Load中的代码 if (IsPostBack == false) { //年绑定数据 ; i- ...

  7. machine learning----->学习成绩

    斯坦福大学机器学习公开课学习成绩:

  8. Eclipse中Maven项目添加jar包

    各个标签的含义如下: Overview:显示maven项目的一些基本信息Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin ...

  9. cms替换主页的步骤

    cms替换主页的步骤 .先做好静态页面: .在D:\wamp\www\phpcms\install_package\phpcms\templates文件夹下建新的文件夹tianqiwangluo(项目 ...

  10. scrollview做定时来回滚动时,总出现错位的情况。

    方法1:self.edgesForExtendedLayout = UIRectEdgeNone; 方法2:    self.automaticallyAdjustsScrollViewInsets ...