gpt4 book ai didi

java - hadoop 2.5.0 启动datanode失败

转载 作者:可可西里 更新时间:2023-11-01 14:53:43 26 4
gpt4 key购买 nike

我正在尝试部署独立版本的 hadoop 2.5.0。但是Datanode启动失败。日志打印:

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)

我在谷歌上搜索了一段时间,没有找到任何有用的帮助。然后我尝试在我的计算机(X86-64 CentOS 6.5)中编译 hadoop-2.5.0,因为错误与 native 库有某种关系,我得到了同样的错误。我也试过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>

和 core-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>

有什么想法吗?顺便说一句,hadoop 2.3.0 在我的机器上运行完美。

最佳答案

尝试在一堆服务器上部署相同的包后,我发现了问题。 hadoop 2.3.0 的 native 库以某种方式进入了 jdk 的 native 路径,这反过来又污染了 java 运行时。当 datanode 尝试加载 native 库时,它会找到旧的。删除那些 .so 文件后,我启动并运行了数据节点。干杯。

关于java - hadoop 2.5.0 启动datanode失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com