복붙노트

[HADOOP] Windows 구축 / 설치 오류 Hadoop

HADOOP

Windows 구축 / 설치 오류 Hadoop

Windows x64 (8.1 및 Server 2012 R2)에 Apache Hadoop 2.7.1을 설치하려고하는데 목표를 달성하지 못했습니다.

    [INFO] Apache Hadoop Common ............................... FAILURE [ 37.925 s]

과거에는 HadoopOnWindows 또는이 튜토리얼의 모든 단계를 따랐습니다. 나는 모든 전제 조건을 수행했지만, 내가 인터넷 검색으로, 내 문제에 대한 관련 것들은 다음과 같습니다 :

기타 ppl, 비슷한 문제 내가 따라하는 유사한 주제 중 일부는 1, 2, 3, 4입니다. 나는 주로 모든 제안을 시도했지만 여전히 깨졌습니다.

오류

    [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에 프록시를 설정하고 PATH를 MAVEN_OPTS로 설정하면 @tiho와 동일한 대답으로 제안됩니다. 이게 문제 야? 거기에 제안 된 옵션 외에도 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] ------------------------------------------------

해결법

  1. ==============================

    1.하루 종일 그것을 만들 수 있었다. 마이크로 소프트는 분명히 이전 버전과의 호환성에 많은 문제가있다. Hadoop이 최신 툴 체인으로 이동하면 도움이됩니다.

    하루 종일 그것을 만들 수 있었다. 마이크로 소프트는 분명히 이전 버전과의 호환성에 많은 문제가있다. Hadoop이 최신 툴 체인으로 이동하면 도움이됩니다.

    다음은 수행해야 할 핵심 단계입니다 (문서에서 언급 한 것 이상). VS 2010보다는 Windows SDK 컴파일러를 사용하고 있습니다 (VS 2010에서는 가능할 것으로 예상되지만 시도하지는 않았습니다).

    내 PATH (Windows SDK 셸의)에 Git 설치의 bin 폴더 (GNU 도구 용), CMake의 bin 폴더 및 protoc.exe가 들어있는 폴더를 추가했습니다. 또한 (대부분의 사람들은 그것을 필요로하지 않아야 함), Maven의 설명서에 표시된대로 settings.xml을 먼저 편집하면서 내 HTTP 프록시를 사용하도록 Maven을 설정해야했지만 MAVEN_OPTS = -Dmy.proxy.host - Dhttp.proxyPort = my.proxy.port. 그렇지 않은 경우 빌드 중 어느 시점에서 시간 초과가 발생했습니다.

    빌드 중에 경고 메시지가 나타났습니다. 1.7 대신 Java SDK 1.8을 사용하여 발생하는 것으로 의심됩니다. 그러나 마침내 빌드 성공을보고 난 후에 1.7으로 다시 시도하는 기분이 들지 않았습니다.

  2. ==============================

    2.저는 Visual Studio 2015 커뮤니티 에디션으로 제작했습니다.

    저는 Visual Studio 2015 커뮤니티 에디션으로 제작했습니다.

    내가 만든 방법은 다음과 같습니다.

    내 환경

    여기 쇼핑 목록이 있습니다.

    Windows 시스템 환경 변수

    (위에서 JDK 버전과 Maven 설치를 가리켜 야 함)

    내 Windows 시스템 환경에 다음을 추가했습니다. 경로 변수 :

    별난 "C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319"경로는 빌드 프로세스 중에 필요한 MSBuild.exe의 위치입니다.

    프로토콜 버퍼 2.5.0

    아뇨, 다른 유닉스 / 리눅스 빌드 만할까요? protoc-2.5.0-win32.zip이라는 Google 패키지를 다운로드했습니다. 그런 다음 이진 파일 (protoc.exe)을 c : \ windows \ system32에 압축을 풀어 경로에 넣을 수 있습니다.

    나는이 win64 빌드를 위해 win32 구성 요소를 사용하는 효과를 100 % 확신하지 못합니다. 그러나: "Hadoop 0.23+에서는 프로토콜 버퍼 JAR (protobufs.jar)이 클라이언트와 서버의 클래스 경로에 있어야하며 기본 바이너리는이 버전과 이후 버전의 Hadoop을 컴파일해야합니다." - http://wiki.apache.org/hadoop/ProtocolBuffers.

    그래서 Win32 실행 파일은 빌드 프로세스 중에 만 사용된다는 것을 알고 있습니다. (Jar 파일은 빌드에 패키지되어 있어야합니다).

    네이티브 코드를 컴파일하는 데 어떤 방식 으로든 사용되는 경우, 우리는 순서가 잘못된 포인터를 남겼을 수 있습니다. 나는 할 수있을 때 다시 돌아올거야.

    Hadoop 소스 조정하기

    글쎄, 이것은 실행할 수 있도록하기 위해 필요했다. 빌드 자체의 품질에 영향을 주어서는 안되지만 결과는 비공식적이고 지원되지 않으며 개발 환경을위한 위험 부담으로 사용하십시오.

    VS 프로젝트 마이그레이션

    Visual Studio 2015에서 다음 파일을 열어야합니다.

    \ hadoop-common-project \ hadoop-common \ src \ main \ winutils \ winutils.vcxproj \ hadoop-common-project \ hadoop-common \ src \ main \ native \ native.vcxproj

    Visual Studio는 이전 버전 인 것으로 불평 할 것입니다. 모두 저장하고 닫는 것뿐입니다.

    hdfs에 대한 cmake VS 2015 프로젝트 생성 활성화

    \ hadoop-hdfs-project \ hadoop-hdfs \ pom.xml의 441 줄에서 else 값을 다음과 같이 편집하십시오.

    ( "value"값은 win32에 적용됩니다 - win32 용으로 만들면이 값을 편집 할 수 있습니다).

    그것을 구축

    "VS2015 용 개발 명령 프롬프트"창에서 찾아야합니다. 나는 아직도 이것에 관해서 무엇이 특별한지 궁금해하고있다. 그러나 사실은 그것만으로 작동 할 것이다.

    기타 환경 변수 명령 프롬프트에서 수행해야합니다.

    마지막으로 그것을 구축

    hadoop 소스 폴더로 이동하여 다음을 실행하십시오 :

    다음은?

    공식 문서에 따라 hadoop 인스턴스를 설정하고 실행하십시오.

    내 블로그에 바이너리 링크를 유지하려고합니다 :

  3. ==============================

    3.Windows 10에서 Visual Studio 2017을 사용하여 Hadoop 3.0.2를 성공적으로 구축했습니다.

    Windows 10에서 Visual Studio 2017을 사용하여 Hadoop 3.0.2를 성공적으로 구축했습니다.

    내 설정은 다음과 같습니다.

    먼저 VS 2017에서이 두 솔루션 파일을 열고 저장합니다.

    hadoop-3.0.2-src\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln
    

    hadoop-3.0.2-src\hadoop-common-project\hadoop-common\src\main\native\native.sln
    

    그러면 VS 2010에서 VS 2017로 두 프로젝트가 마이그레이션됩니다.

    둘째, POM 파일의 141 번 줄을 변경해야합니다.

    D:\hadoop-3.0.2-src\hadoop-hdfs-project\hadoop-hdfs-native-client\pom.xml
    

    <condition property="generator" value="Visual Studio 10" else="Visual Studio 15 2017 Win64">
    

    이렇게하면 VS 2017이 건축 과정에서 사용될 수 있습니다.

    또한 MSBuild가 명령이 오랫동안 작동을 멈춘다 고 불평하는 문제가 발생했습니다. Maven 기본 저장소 위치와 관련이 있다고 생각합니다. 이 문제를 해결하기 위해 다음 줄을 추가했습니다.

    <localRepository>D:/maven_repo</localRepository>
    

    내 친구

    apache-maven-3.5.0\conf\settings.xml
    

    Maven 저장소를 새로운 위치로 이동합니다 (이 경우 D : / maven_repo).

    마지막으로 VS 2017에 대한 x64 네이티브 도구 명령 프롬프트를 열고 hadoop 원본 폴더로 이동하여 다음 명령을 실행했습니다.

    mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.repo.local=D:\maven_repo
    

    나는 모든 문제를 해결하기 위해 10 시간 이상을 보내고, 잘하면 내 해결책은 다른 사람들을 도울 것입니다.

  4. from https://stackoverflow.com/questions/31295963/hadoop-on-windows-building-installation-error by cc-by-sa and MIT license