복붙노트

[HADOOP] Windows의 Hadoop + HBase 클러스터 : winutils를 찾을 수 없음

HADOOP

Windows의 Hadoop + HBase 클러스터 : winutils를 찾을 수 없음

Windows에서 Hadoop 2.20 및 HBase 0.98을 사용하여 완전히 분산 된 4 노드 개발 클러스터를 설정하려고합니다. Windows에서 Hadoop을 성공적으로 구축했으며 최근에는 Windows에서도 HBase를 구축했습니다.

Hadoop 설치 안내서와 사용자 정의 WebHDFS 작업에서 단어 수 예제를 성공적으로 실행했습니다. Windows에서 완전히 배포 된 HBase는 아직 지원되지 않으므로 cygwin에서 HBase를 실행하고 있습니다.

내 마스터 (./bin/start-hbase.sh)에서 hbase를 시작하려고하면 다음 오류가 발생합니다.

2014-04-17 16:22:08,599 ERROR [main] util.Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
    at org.apache.hadoop.conf.Configuration.getStrings(Configuration.java:1514)
    at org.apache.hadoop.hbase.zookeeper.ZKConfig.makeZKProps(ZKConfig.java:113)
    at org.apache.hadoop.hbase.zookeeper.ZKServerTool.main(ZKServerTool.java:46)

여기서 null로 설정된 Shell.java 소스를 보면 HADOOP_HOME 환경 변수 인 것 같습니다. C : / cygwin / root / usr / local / hbase의 C : / cygwin / root / usr / local / hbase에서 hadoop이 D : / hadoop이고 HBase가 Hg 인 경우 cygwin $ HADOOP_HOME 변수는 / cygdrive / d / hadoop /이고 Windows 시스템 환경 변수 % HADOOP_HOME % D : \ hadoop입니다. 이 두 변수와 마찬가지로 나에게도 변수가 올바르게 발견되어야합니다 ...

또한 잠재적으로 관련성이 있습니다. Windows Server 2012 x64를 실행하고 있습니다.

편집 : 실제로 D : \ hadoop \ bin \에 winutils.exe가 있는지 확인했습니다.

해결법

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

    1.우리는 그것을 발견했다. 따라서 Hadoop의 Shell.java에는 Hadoop 경로를 전달하는 두 가지 옵션이 있습니다.

    우리는 그것을 발견했다. 따라서 Hadoop의 Shell.java에는 Hadoop 경로를 전달하는 두 가지 옵션이 있습니다.

    // first check the Dflag hadoop.home.dir with JVM scope
    String home = System.getProperty("hadoop.home.dir");
    
    // fall back to the system/user-global env variable
    if (home == null) {
      home = System.getenv("HADOOP_HOME");
    }
    

    시행 착오 후에 HBase 옵션 (HBase의 hbase-env.sh, HBASE_OPTS 변수)에서 Windows (!) 경로와 함께 Hadoop에이 옵션을 추가해야한다는 것을 알았습니다. 이 경우 -Dhadoop.home.dir = D : / hadoop을 추가해야했습니다.

    이것을 우연히 발견하는 다른 사람에게 행운을 빕니다.).

  2. from https://stackoverflow.com/questions/23136092/hadoophbase-cluster-on-windows-winutils-not-found by cc-by-sa and MIT license