我正在尝试在Windows x64(8.1和Server 2012 R2)上安装Apache Hadoop 2.7.1,但我失败了:
[INFO] Apache Hadoop Common ............................... FAILURE [ 37.925 s]
在过去的几天里,我认为我按照所有教程的步骤进行了操作,例如HadoopOnWindows或this one。我完成了所有先决条件,但是随着我在Google上搜索,我发现与我的问题相关的是以下内容:
- 将MSBuild.exe的路径设置为:C:\Windows\Microsoft.NET\Framework64\v4.0.30319;,加入到Path中
- 将CMake的路径设置为所在位置
- 安装Microsoft SDK 7.1并使用其Microsoft SDK 7.1 CMD运行
- 尝试使用Visual Studio 2013编译hadoop-common\src\main\winutils\libwinutils.sln和hadoop-common\src\main\winutils\winutils.sln,但由于编译错误而失败。甚至无法使用Visual Studio 2010打开它们。我不知道如何纠正编译错误(如果这是问题的话)
其他人,类似的问题
我正在关注一些类似的话题,包括:one, two, three, four。我主要尝试了所有建议,但仍然无法解决问题。
错误
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:11 min
[INFO] Finished at: 2015-07-08T15:18:29+02:00
[INFO] Final Memory: 69M/269M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.1:exec (c
ompile-ms-winutils) on project hadoop-common: Command execution failed. Process
exited with an error: 1 (Exit value: 1) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
xception
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :hadoop-common
帮助
我不知道下一步该怎么做,感觉已经尝试了所有方法。请帮助我解决这个错误并在Windows上继续安装Hadoop。
更新1 仔细查看错误堆栈后,我发现找不到文件Microsoft.Cpp.props。此外,整个文件夹Program Files (x86)/MSBuild也丢失了。因此,我安装了Visual Studio 2010,解决了这个问题。
当然,新的问题出现了。我能够构建libwinutils,但无法构建winutils。我收到了很多LNK2001错误:
Error 48 error LNK1120: 18 unresolved externals C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\x64\Release\winutils.exe winutils
Error 36 error LNK2001: unresolved external symbol BuildServiceSecurityDescriptor C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 32 error LNK2001: unresolved external symbol ChownImpl C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 40 error LNK2001: unresolved external symbol CreateEnvironmentBlock C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 44 error LNK2001: unresolved external symbol CreateLogonTokenForUser C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 41 error LNK2001: unresolved external symbol DestroyEnvironmentBlock C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 37 error LNK2001: unresolved external symbol EnableImpersonatePrivileges C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 34 error LNK2001: unresolved external symbol GetSecureJobObjectName C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 38 error LNK2001: unresolved external symbol KillTask C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 43 error LNK2001: unresolved external symbol LoadUserProfileForLogon C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 35 error LNK2001: unresolved external symbol LogDebugMessage C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 46 error LNK2001: unresolved external symbol LookupKerberosAuthenticationPackageId C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 31 error LNK2001: unresolved external symbol MIDL_user_allocate C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\hadoopwinutilsvc_s.obj winutils
Error 30 error LNK2001: unresolved external symbol MIDL_user_free C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\hadoopwinutilsvc_s.obj winutils
Error 47 error LNK2001: unresolved external symbol RegisterWithLsa C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 33 error LNK2001: unresolved external symbol SplitStringIgnoreSpaceW C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
Error 42 error LNK2001: unresolved external symbol UnloadProfileForLogon C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 45 error LNK2001: unresolved external symbol UnregisterWithLsa C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\task.obj winutils
Error 39 error LNK2001: unresolved external symbol wsceConfigRelativePath C:\hdfs\hadoop-common-project\hadoop-common\src\main\winutils\service.obj winutils
更新2 @tiho的答案解决了上述提到的问题(我非常感激,因为这已经花了我4天时间)。现在,一个全新的问题,目标是:
[INFO] Apache Hadoop KMS .................................. FAILURE [ 1.531 s]
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: java.net.UnknownHostException: archive.apache.org
[ERROR] around Ant part ...<get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache tomcat-6.0.41.tar.gz"/>... @ 5:182 in C:\hadoop-2.7.1-src\hadoop-common project\hadoop-kms\target\antrun\build-main.xml: Unknown host archive.apache.org.
我找到了一个简单的解决方法来解决上述问题。我手动下载并添加到以下文件夹中:
C:\hadoop-2.7.1-src\hadoop-common-project\hadoop-kms\downloads C:\hadoop-2.7.1-src\hadoop-hdfs-project\hadoop-hdfs-httpfs\downloads
然后从以下文件中删除了代码行:
C:\hadoop-2.7.1-src\hadoop-common-project\hadoop-kms\target\antrun\build-main.xml C:\hadoop-2.7.1-src\hadoop-hdfs-project\hadoop-hdfs-httpfs\target\antrun\build-main.xml
<mkdir dir="downloads"/>
<get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.tar.gz"/>
请注意,我还使用代理,我已在settings.xml中设置了代理,并像@tiho提供的同样答案中建议的那样将PATH设置为MAVEN_OPTS。这是问题吗?除了那里建议的选项外,我还向MAVEN_OPTS添加了密码和用户名。
请注意,我可以使用浏览器访问:http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.tar.gz。
但我仍然很好奇如何正确解决这个问题,因为这个问题仍然会出现,而我需要再次进行相同的解决方法。
更新3 话虽如此,这周最幸福的时刻:
[INFO] ------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------
[INFO] Total time: 21:05 min
[INFO] Finished at: 2015-07-10T11:33:17+02:00
[INFO] Final Memory: 228M/672M
[INFO] ------------------------------------------------