首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hadoop 2.5.0启动datanode失败

hadoop 2.5.0启动datanode失败
EN

Stack Overflow用户
提问于 2014-10-20 22:03:08
回答 2查看 2.1K关注 0票数 2

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

代码语言:javascript
复制
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)

我用谷歌搜索了一段时间,也找不到任何有用的帮助。然后我尝试在我的计算机上编译hadoop-2.5.0 (X86-64 CentOS 6.5),因为这个错误与本地库有关,我得到了同样的错误。我也试过cdh版本,还是不好。

我的hdfs-site.xml:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<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在我的机器上运行得很好。

EN

回答 2

Stack Overflow用户

发布于 2014-10-21 10:12:29

在尝试在一堆服务器上部署相同的包之后,我发现了问题所在。不知怎么的,Hadoop2.3.0的原生库进入了jdk的原生路径,这反过来又污染了java运行时。当datanode尝试加载本地库时,它会找到旧的库。删除这些.so文件后,我启动并运行了数据节点。干杯。

票数 1
EN

Stack Overflow用户

发布于 2019-03-16 10:03:16

完成Amos所说的,需要定义:

代码语言:javascript
复制
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26467568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档