복붙노트

[HADOOP] Windows에서 Hadoop 빌드 실패 : native.sln에서 zconf.h가 누락 되었습니까?

HADOOP

Windows에서 Hadoop 빌드 실패 : native.sln에서 zconf.h가 누락 되었습니까?

Windows 10 Home Edition이 설치된 개발 컴퓨터에서 다음과 같은 버전을 빌드하려고합니다.

hadoop-2.7.3-src

내 지역 개발 환경에 대한 자세한 내용은 다음과 같습니다.

-Windows 10 Home Edition

-Intel Core i5-6200U CPU @ 2.30GHz

-RAM 16GB

-64 비트 운영 체제, x64 기반 프로세서

-Microsoft Visual Studio 커뮤니티 2015 버전 14.0.25431.01 업데이트 3

또한 C : \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ amd64에 MSBUILD 위치를 Windows 시스템 환경 변수 경로에 추가했습니다.

- .NET Framework 4.6.01586

-cmake 버전 3.7.2

-CYGWIN_NT-10.0 LTPBCV82DUG 2.7.0 (0.306 / 5 / 3) 2017-02-12 13:18 x86_64 Cygwin

-java 버전 "1.8.0_121"

-Java (TM) SE 런타임 환경 (빌드 1.8.0_121-b13)

-Java HotSpot (TM) 64 비트 서버 VM (빌드 25.121-b13, 혼합 모드)

-Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11 : 41 : 47-05 : 00)

-Google 프로토콜 버퍼 protoc --version libprotoc 2.5.0

또한 Platform이라는 시스템 환경 변수를 생성하여 x64로 설정합니다.

Visual Studio 2015 (VS2015)에 대한 개발자 명령 프롬프트를 열었습니다.

c : \ hadoop \ hadoop-2.7.3-src> mvn 패키지 -Pdist, native-win -DskipTests -Dtar -X

불행히도 다음 오류가 발생합니다.

 [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
  ZlibDecompressor.c
c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
Done Building Project "C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default targets) -- FAILED.
Done Building Project "C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default targets) -- FAILED.

Build FAILED.

"C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default target) (1) ->
"C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default target) (2) ->
(ClCompile target) ->
  c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
  c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:02.49

앞에서 언급 한 오류는 zlib 도구와 관련이 있습니다.

온라인으로 조사한 후에 누군가 다음 Visual Studio 솔루션 파일을 Visual Studio에서 성공적으로 빌드해야한다고 말했습니다.

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

관리자 모드에서 Visual Studio 2015를 사용하여 native.sln 파일을 열고 즉시 오류가 발생했습니다.

여기에 이미지 설명을 입력하십시오.

누군가가 오류를 해결하기 위해 취해야 할 조치를 알려주십시오.

해결법

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

    1.그래서 문제를 해결하기 위해 취해야 할 조치가 꽤있었습니다.

    그래서 문제를 해결하기 위해 취해야 할 조치가 꽤있었습니다.

    .... \ hadoop-2.7.3-src \ hadoop-common-project \ hadoop-common \ src \ main \ winutils 디렉터리 내에서 Visual Studio 2015에서 다음 솔루션을 열었습니다.

    winutils.sln

    ..... hadoop-2.7.3-src \ hadoop-common-project \ hadoop-common \ src \ main \ winutils \ libwinutils.c 내에서 다음 코드 줄을 주석 처리하고 그것은 다음과 같습니다 :

    //const WCHAR* wsceConfigRelativePath = WIDEN_STRING(STRINGIFY(WSCE_CONFIG_DIR)) L"\\" WIDEN_STRING(STRINGIFY(WSCE_CONFIG_FILE));
    
    const WCHAR* wsceConfigRelativePath = WIDEN_STRING("../etc/hadoop") L"\\" WIDEN_STRING("wsce-site.xml");
    

    또한 winutils 솔루션의 속성 창에서 플랫폼 값을 x64로 설정해야합니다 (아래 스크린 샷 참조).

    다음으로 Dos 명령 프롬프트를 열고 내 Windows OS의 정확한 버전을 확인했습니다.

    참조

    Microsoft Windows [버전 10.0.14393]

    또한 libwinutils 프로젝트의 속성 창을 열고 다음 스냅 숏에 표시된 속성에 적절한 값이 있는지 확인했습니다.

    또한 winutils 프로젝트의 속성에 대해 동일한 단계를 수행했습니다.

    (죄송합니다, stackoverflow는 다른 사진 스냅 샷을 배치 할 수 없지만 기본적으로 winutils 프로젝트의 속성이 올바르게 설정되어 있는지 확인해야합니다)

    zlib 버전 1.2.11 소스 코드를 다운로드했습니다. VS2015 용 개발자 명령 프롬프트 사용 (Visual Studio 2015) cmbl을 사용하여 zlib 버전 1.2.11 소스 코드에서 zlib을 빌드했습니다.

    c:\zlib\zlib-1.2.11>cmake  -G "Visual Studio 14 2015" -A x64 c:\zlib\zlib-1.2.11\
    -- The C compiler identification is MSVC 19.0.24215.1
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Check size of off64_t
    -- Check size of off64_t - failed
    -- Looking for fseeko
    -- Looking for fseeko - not found
    -- Looking for unistd.h
    -- Looking for unistd.h - not found
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/zlib/zlib-1.2.11
    

    마지막으로 cmake로 빌드를 실행합니다.

    c:\zlib\zlib-1.2.11>cmake --build .
    

    Windows 시스템 변수에는 다음 변수가 정의되어 있습니다.

    ZLIB_HOME이 C : \ zlib \ zlib-1.2.11로 설정되어 있습니다.

  2. from https://stackoverflow.com/questions/42869261/hadoop-build-failing-in-windows-zconf-h-is-missing-from-native-sln by cc-by-sa and MIT license