복붙노트

[HADOOP] Windows의 Hadoop. YARN이 java.lang.UnsatisfiedLinkError로 시작하지 못함

HADOOP

Windows의 Hadoop. YARN이 java.lang.UnsatisfiedLinkError로 시작하지 못함

나는 hadoop-2.7.0에 Hadoop을 설치 / 설정했다.

성공적으로 "sbin \ start-dfs"명령을 실행할 수 있습니다. DataNode와 NameNode가 시작되었습니다. 나는 디렉토리를 만들고, 파일을 hadoop 시스템에 추가 할 수 있습니다.

하지만 "resourcemanager"창에서 "sbin / start-yarn"을 시도하면 오류가 표시되지 않습니다. 하지만 원사의 "namenode"

이 오류와 함께 실패합니다.

15/06/21 17:26:49 INFO impl.MetricsConfig: loaded properties from hadoop-metrics
2.properties
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system started
15/06/21 17:26:49 FATAL nodemanager.NodeManager: Error starting NodeManager
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Native Method)
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode(NativeIO.java:524)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkOneDirWithMode(RawLocalFileSystem.java:473)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirsWithOptionalPermission(RawLocalFileSystem.java:526)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:504)
        at org.apache.hadoop.fs.FileSystem.primitiveMkdir(FileSystem.java:1064)
        at org.apache.hadoop.fs.DelegateToFileSystem.mkdir(DelegateToFileSystem.java:161)
        at org.apache.hadoop.fs.FilterFs.mkdir(FilterFs.java:197)
        at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:730)
        at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:726)
        at org.apache.hadoop.fs.FSLinkResolver.resolve(FSLinkResolver.java:90)
        at org.apache.hadoop.fs.FileContext.mkdir(FileContext.java:726)
        at org.apache.hadoop.yarn.server.nodemanager.DirectoryCollection.createDir(DirectoryCollection.java:365)
        at org.apache.hadoop.yarn.server.nodemanager.DirectoryCollection.createNonExistentDirs(DirectoryCollection.java:199)
        at org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService.serviceInit(LocalDirsHandlerService.java:152)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
        at org.apache.hadoop.yarn.server.nodemanager.NodeHealthCheckerService.serviceInit(NodeHealthCheckerService.java:48)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:254)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:463)
        at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:511)
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: Stopping NodeManager metrics system...
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system stopped.
15/06/21 17:26:49 INFO impl.MetricsSystemImpl: NodeManager metrics system shutdown complete.
15/06/21 17:26:49 INFO nodemanager.NodeManager: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NodeManager at idea-PC/27.4.177.205
************************************************************/

나는 "sbin \ start-dfs"동안 비슷한 문제에 직면했다. 나는 다른 것을 시도했다. 그것은 hadoop의 "bin"과 "sbin"을 경로에 추가했을 때 해결 된 것 같습니다.

원사 문제에 대한 해결책을 제시해 주시겠습니까?

해결법

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

    1.네이티브 메소드가 포함 된 % HADOOP_HOME % \ bin \ hadoop.dll이 있어야합니다. % HADOOP_HOME % \ bin이 경로에 있어야합니다. 소스에서 빌드 한 경우 hadoop.dll이 빌드되고 배치되었는지 확인하십시오.

    네이티브 메소드가 포함 된 % HADOOP_HOME % \ bin \ hadoop.dll이 있어야합니다. % HADOOP_HOME % \ bin이 경로에 있어야합니다. 소스에서 빌드 한 경우 hadoop.dll이 빌드되고 배치되었는지 확인하십시오.

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

    2.여기서 누락 된 네이티브 메소드의 히스토리를 보면, 최근에 추가 된 것을 볼 수 있습니다.

    여기서 누락 된 네이티브 메소드의 히스토리를 보면, 최근에 추가 된 것을 볼 수 있습니다.

    따라서이 오류는 새로운 버전의 Hadoop을 사용하지만 hadoop.dll은 이전 버전의 Hadoop에서 가져온 것임을 의미합니다.

    따라서 새로운 hadoop.dll을 검색 / 구축하거나 Hadoop을 다운 그레이드하면이 문제가 발생하지 않습니다.

    나를 위해 Hadoop 2.3.0으로 다운 그레이드가 성공했습니다.

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

    3.필자의 경우 3.1.1 Hadoop 버전이 있고 다음 주소에서 다른 폴더로 bin 폴더를 변경했습니다. https://github.com/s911415/apache-hadoop-3.1.0-winutils. 나는이 dll과 하나의 노드 (하나의 노드가있는 원사 클러스터)로 원사를 시작할 수 있었다. 내가 여기에 따라 설정을 찾을 수 있습니다. 또한 hdfs-site.xml을 설정해야합니다. 이렇게 :

    필자의 경우 3.1.1 Hadoop 버전이 있고 다음 주소에서 다른 폴더로 bin 폴더를 변경했습니다. https://github.com/s911415/apache-hadoop-3.1.0-winutils. 나는이 dll과 하나의 노드 (하나의 노드가있는 원사 클러스터)로 원사를 시작할 수 있었다. 내가 여기에 따라 설정을 찾을 수 있습니다. 또한 hdfs-site.xml을 설정해야합니다. 이렇게 :

    <configuration>
    
    <property> 
        <name>dfs.replication</name>
        <value>1</value>
    </property> 
    
    <property> 
        <name>dfs.namenode.name.dir</name> 
        <value>/hadoop-3.1.1/data/namenode</value>
    </property>
    
    <property> 
        <name>dfs.datanode.data.dir</name> 
        <value>/hadoop-3.1.1/data/datanode</value>
    </property>
    
    </configuration>
    
  4. ==============================

    4.제 경우에는 Hadoop이 미리 컴파일 된 'hadoop'DLL을 찾지 못했기 때문에 예외였습니다. hadoop.dll의 폴더 경로를 PATH 환경 변수에 넣었습니다.

    제 경우에는 Hadoop이 미리 컴파일 된 'hadoop'DLL을 찾지 못했기 때문에 예외였습니다. hadoop.dll의 폴더 경로를 PATH 환경 변수에 넣었습니다.

    예외의 설명은 오해의 소지가 있습니다. 원래의 예외는 java.lang.ClassLoader 클래스에서 발생합니다 : throws UnsatisfiedLinkError ( "no"+ name + "java.library.path");

  5. ==============================

    5.필자의 경우에는 경로 변수에 hadoop 경로가 추가되었고 "Derby의 다른 인스턴스가 이미 부팅되었습니다"라는 오류가있었습니다.

    필자의 경우에는 경로 변수에 hadoop 경로가 추가되었고 "Derby의 다른 인스턴스가 이미 부팅되었습니다"라는 오류가있었습니다.

  6. ==============================

    6.VM Argument를 설정하려면 -Djava.library.path = C : \ winutils-master \ hadoop-3.0.0으로 문제가 해결되었습니다.

    VM Argument를 설정하려면 -Djava.library.path = C : \ winutils-master \ hadoop-3.0.0으로 문제가 해결되었습니다.

  7. from https://stackoverflow.com/questions/30964216/hadoop-on-windows-yarn-fails-to-start-with-java-lang-unsatisfiedlinkerror by cc-by-sa and MIT license