永发信息网

如何编译 hadoop.dll 方法

答案:1  悬赏:80  手机版
解决时间 2021-04-03 04:06
如何编译 hadoop.dll 方法
最佳答案
环境变量
(工具软件: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配置节点。

  org.mortbay.jetty
  jetty-util
  test

修改示例:

第二处:
修改文件: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“
查找替换”x64“为”Win32
修改示例:

第四处:
右键单击”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




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

不出意外,用浏览器打开: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环境下的程序。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
观电影《旋风女队》有感
人间四月芳菲尽 山寺桃花始盛开蕴含了怎样的
智能按摩鞋有穿过的朋友介绍一下啊?
水泥散装和袋装有什么区别,散灰是什么意思?
求推荐游戏鼠标(500hz刷新率dpi1000就行,高了
安装了DB2,提示SQL500C系统错误,创建不了SA
用内经90mm的圆柱形玻璃杯(己注满水),向一
81平米家装简装多少钱
如何制作水库湖泊等大水域的钓鱼窝料
5.4元素萨属性 是关于智力于精通的 智力是一
2十2=4因为2和2能组成4所以就等于4对不对
“苏世独立的人格“中的苏世独立是什么意思?
痛风的疼痛特点是怎样的
请问z68南昌至北京西沿途经过那些站
推荐一款休闲会所用的管理软件,店里有餐厅和
推荐资讯
山里茶花阅读答案
我看的是耽美小说,那种只有哥儿和汉子的世界
一位韩国女画家被耶稣提去地狱,画地狱景象 是
自制小型发电机(要尽可能具体的步骤)
设f(x)是定义在R上的偶函数,且在(-∞,0
单选题据2001年12月的《参考消息》报道,有科
品名分子筛 出口报关需要什么资料
求赶走黄仙的咒语?
上海普罗米斯贷款中心是不是骗人的
迅鹰高速跑了3分钟放油过弯就加不上油熄火了
晶体管输出的三菱plc如何与7线的三色灯接线,
青蛙的幼体生活在水中,用________呼吸;青蛙
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?