2014-10-20 3 views
1

독립 실행 형 버전 인 hadoop 2.5.0을 배포하려고합니다. 그러나 데이터 노드가 시작되지 않습니다. 로그 인쇄 :hadoop 2.5.0이 데이터 노드를 시작하지 못했습니다.

2014-10-20 13:42:13,288 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain 
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.createDescriptor0(Ljava/lang/String;Ljava/lang/String;I)Ljava/io/FileDescriptor; 
    at org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.createDescriptor0(Native Method) 
    at org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.create(SharedFileDescriptorFactory.java:87) 
    at org.apache.hadoop.hdfs.server.datanode.ShortCircuitRegistry.<init>(ShortCircuitRegistry.java:165) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initDataXceiver(DataNode.java:586) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:773) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:292) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1895) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1782) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1829) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2005) 
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2029) 

Google 검색 중 일부가 유용하지 않습니다. 그런 다음 오류가 원시 라이브러리와 어떻게 든 관련되어 있기 때문에 내 컴퓨터 (X86-64 CentOS 6.5)에서 hadoop-2.5.0을 컴파일하려고 시도했지만 동일한 오류가 발생했습니다. 나도 cdh 판을 시험해 보았다, 아직도 좋지 않았다.

내 HDFS-site.xml 파일 :

<property> 
    <name>fs.checkpoint.dir</name> 
    <value>/home/seg3/namesecondary</value> 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/home/seg2/datanodedir</value> 
</property> 
<property> 
    <name>dfs.datanode.hdfs-blocks-metadata.enabled</name> 
    <value>true</value> 
</property> 
<property> 
    <name>dfs.replication</name> 
    <value>1</value> 
</property> 
<property> 
    <name>dfs.support.append</name> 
    <value>true</value> 
</property> 
<property> 
    <name>dfs.block.local-path-access.user</name> 
    <value>root</value> 
</property> 
<property> 
    <name>dfs.client.read.shortcircuit</name> 
    <value>true</value> 
</property> 
<property> 
    <name>dfs.domain.socket.path</name> 
    <value>/var/run/hadoop-hdfs/dn._PORT</value>                     
</property> 
<property> 
    <name>dfs.client.file-block-storage-locations.timeout</name> 
    <value>10000</value> 
</property> 

그리고 코어를 site.xml :

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://localhost:8020</value> 
</property> 
<property> 
    <name>fs.trash.interval</name> 
    <value>10080</value> 
</property> 
<property> 
    <name>fs.trash.checkpoint.interval</name> 
    <value>10080</value> 
</property> 
<property> 
    <name>io.native.lib.available</name> 
    <value>false</value> 
</property> 

어떤 아이디어? BTW, hadoop 2.3.0은 제 컴퓨터에서 완벽하게 작동합니다.

답변

0

여러 패키지에 동일한 패키지를 배포하려고 시도한 후 문제가 발견되었습니다. 어떻게 든 hadoop 2.3.0의 네이티브 라이브러리는 jdk의 기본 경로에 들어가서 Java 런타임을 폴드합니다. datanode가 네이티브 lib를로드하려고 시도하면 이전 버전을 찾습니다. 이러한 .so 파일을 삭제 한 후 datanode가 실행 중입니다. 건배.

관련 문제