设为首页 收藏本站
查看: 1384|回复: 0

[经验分享] Hadoop:Windows 7 32 Bit 编译与运行

[复制链接]

尚未签到

发表于 2015-7-11 07:20:53 | 显示全部楼层 |阅读模式
所需工具
  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哦):
DSC0000.png DSC0001.png

解压源代码
  将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配置节点。
  
        org.mortbay.jetty
        jetty-util
        test
   
  修改示例:
DSC0002.png

第二处:
  修改文件: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
  修改示例:
DSC0003.png

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

第四处:
  右键单击”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分钟左右
DSC0005.png
  ................................2.4.0版本编译完成大约需要22分钟左右(觉得编译过程慢的话:自己动手配置镜像服务器)
   DSC0006.png
  
  


配置运行
  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







fs.defaultFS
hdfs://localhost:9000



  hdfs-site.xml







dfs.replication
1


dfs.namenode.name.dir
file:/hadoop-bin/data/namenode


dfs.datanode.data.dir
file:/hadoop-bin/data/datanode


dfs.webhdfs.enabled
true


dfs.permissions
false



  其他配置文件保持默认即可。
  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
DSC0007.png
  不出意外,用浏览器打开:http://localhost:8042 或者 http://localhost:50070 会有惊喜哦!记得别把本地的端口占用了。
DSC0008.png DSC0009.png
  7.上传文件到HDFS
  如果你对命令行熟悉的话,可以采用命令行的方式推送的HDFS。如果你的hdfs-site.xml配置文件时Copy我以上的示例的话,那么WEBHDFS默认是开启的,什么意思?就是通过Http RestFull风格API管理文件哦!另外还要记得把dfs.permissions设置为false,要不你没有权限上传文件的哦!
  推荐个HDFS文件管理工具:Red Gate Software Ltd(大名鼎鼎的Red Gate)
DSC00010.png
  上传文件到HDFS
DSC00011.png
  8.停止Hadoop HDFS服务器
  同样管理员身份命令行,切换到:D:\hadoop-common-2.2.0\sbin目录下,执行命令:
  stop-all.cmd

编后语
  Windows 64 Bit是有它自己的道理的,虽然通过一些努力编译出了32Bit环境下的程序。。。
DSC00012.png

参考链接
  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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85290-1-1.html 上篇帖子: Hadoop集群(第2期)_机器信息分布表 下篇帖子: Hadoop vs Spark性能对比
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表