zoukankan      html  css  js  c++  java
  • 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)

    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发行版使用的动态链接库(binhadoop.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:Javajdk1.7.0_45

    Platform=Win32

    M2_HOME=C:apache-maven-3.2.1

    Path=;C:cygwinin;C:apache-maven-3.2.1in;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-projecthadoop-authpom.xml

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

    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>test</scope>
    </dependency>

    修改示例:

    第二处:

    修改文件:hadoop-common-projecthadoop-commonsrcmain ative ative.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-projecthadoop-commonsrcmain ative ative.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 FilesMicrosoft SDKsWindowsv7.1
    .
    Targeting Windows 7 x86 Debug

    C:Windowssystem32>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-projecthadoop-common argethadoop-common-2.2.0目录下。

    1.解压缩”hadoop-2.2.0.tar.gz“至D盘如下目录:D:hadoop-common-2.2.0

    2.合并替换发行版本的64动态链接库:主要是是以下几个文件(binhadoop.dll、binhadoop.exp、binhadoop.lib、binhadoop.pdb、binlibwinutils.lib、binwinutils.exe、binwinutils.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.0in

    5.格式化hdfs文件系统

    以管理员身份打开命令行,并切换到:D:hadoop-common-2.2.0in目录下,执行命令:

    hadoop namenode -format

    如果不出意外,hdfs文件系统将格式化成功,你会在D:hadoop-bindata看到已经生成了namenode文件夹。

    6.启动Hadoop HDFS服务器

    同样管理员身份命令行,切换到:D:hadoop-common-2.2.0sbin目录下,执行命令:

    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.0sbin目录下,执行命令:

    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

  • 相关阅读:
    本博客停止更新说明
    JavaScript备忘录(3)——正则表达式
    JavaScript备忘录(2)——闭包
    JavaScript备忘录(1)——内置类型
    CSS布局:Float布局过程与老生常谈的三栏布局
    地图投影简明笔记
    Three.js源码阅读笔记-5
    js中 set, map区别
    Package.json详解
    node.js 中的package.json文件怎么创建?
  • 原文地址:https://www.cnblogs.com/smartbooks/p/3694760.html
Copyright © 2011-2022 走看看