使用Hadoop遇到问题笔记
2013-08-30 12:21
531 查看
50030端口被占用的情况:
2011-05-1 14:30:43,931 INFO org.apache.hadoop.http.HttpServer:
Port returned by webServer.getConnectors()[0].getLocalPort() before
open() is -1. Opening the listener on 50030
2011-05-1 14:30:43,933 FATAL org.apache.hadoop.mapred.JobTracker:
java.net.BindException: Address already in use
at
sun.nio.ch.Net.bind(NativeMethod)
at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
在mapred-default.xml中修改下端口号:
java.io.IOException: All datanodes
xxx.xxx.xxx.xxx:xxx are bad. Aborting…
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2158)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
java.io.IOException: Could not get block
locations. Aborting…
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2143)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
经查明,问题原因是linux机器打开了过多的文件导致。用命令ulimit
-n可以发现linux默认的文件打开数目为1024,修改/ect/security/limit.conf,增加hadoop soft
65535
再重新运行程序(最好所有的datanode都修改),问题解决
P.S:据说hadoop dfs不能管理总数超过100M个文件,有待查证
启动hadoop报错如下:
java.io.IOException: File
/exapp/hadoop/hadooptmp/mapred/system/jobtracker.info could only be
replicated to 0 nodes, instead of 1
at
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1271)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)
at
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)
at
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)
at
java.security.AccessController.doPrivileged(Native Method)
at
javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
此处没发现原因,然后查看了下datanode 上的日志:
************************************************************/
ERROR
org.apache.hadoop.hdfs.server.datanode.DataNode:
java.io.IOException: Incompatible namespaceIDs in
/exapp/hadoop/data: namenode namespaceID
=472560000; datanode
namespaceID = 719491592
at
org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
at
org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1283)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1238)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1246)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1368)
发现问题所在:由于我之前格式化一次namenode,所以导致namenode 和datanode 版本不一致。
解决方法:分别找到datanode下的 /exapp/hadoop/data/current/VERSION
文件把 namespaceID =
719491592替换成namespaceID = 472560000
不同安装目录位置不一样。
然后,启动hadoop
2011-05-1 14:30:43,931 INFO org.apache.hadoop.http.HttpServer:
Port returned by webServer.getConnectors()[0].getLocalPort() before
open() is -1. Opening the listener on 50030
2011-05-1 14:30:43,933 FATAL org.apache.hadoop.mapred.JobTracker:
java.net.BindException: Address already in use
at
sun.nio.ch.Net.bind(NativeMethod)
at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
在mapred-default.xml中修改下端口号:
<property> |
<name>mapred.job.tracker.http.address</name> |
<value> 0.0 . 0.0 : 50030 </value> |
<description>The job tracker http server address and port |
the server will listen on.If the port is 0 then the server |
will start on a free port. |
</description> |
</property> |
xxx.xxx.xxx.xxx:xxx are bad. Aborting…
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2158)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
java.io.IOException: Could not get block
locations. Aborting…
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2143)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
经查明,问题原因是linux机器打开了过多的文件导致。用命令ulimit
-n可以发现linux默认的文件打开数目为1024,修改/ect/security/limit.conf,增加hadoop soft
65535
再重新运行程序(最好所有的datanode都修改),问题解决
P.S:据说hadoop dfs不能管理总数超过100M个文件,有待查证
启动hadoop报错如下:
java.io.IOException: File
/exapp/hadoop/hadooptmp/mapred/system/jobtracker.info could only be
replicated to 0 nodes, instead of 1
at
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1271)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)
at
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)
at
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)
at
java.security.AccessController.doPrivileged(Native Method)
at
javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
此处没发现原因,然后查看了下datanode 上的日志:
************************************************************/
ERROR
org.apache.hadoop.hdfs.server.datanode.DataNode:
java.io.IOException: Incompatible namespaceIDs in
/exapp/hadoop/data: namenode namespaceID
=472560000; datanode
namespaceID = 719491592
at
org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
at
org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1283)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1238)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1246)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1368)
发现问题所在:由于我之前格式化一次namenode,所以导致namenode 和datanode 版本不一致。
解决方法:分别找到datanode下的 /exapp/hadoop/data/current/VERSION
文件把 namespaceID =
719491592替换成namespaceID = 472560000
不同安装目录位置不一样。
然后,启动hadoop
相关文章推荐
- Hbase0.98使用遇到.jar包与hadoop中的.jar包冲突问题
- 学习笔记之使用类模板遇到的重载问题
- Hadoop 在使用过程中常遇到的问题
- 使用MPLAB遇到的问题及解决笔记
- 使用Hadoop API操作HDFS文件时遇到的问题及解决总结
- hadoop中使用python写mapreduce遇到的问题
- windows平台使用Cygwin安装hadoop遇到的问题
- (笔记)Linux下的CGI和BOA使用期间遇到的问题汇总
- Struts2 使用中遇到的问题 (个人笔记,不定期更新)
- hadoop+hive使用中遇到的问题汇总
- 笔记:使用qtcreator过程中遇到到的一个小问题
- iOS 笔记-AFN使用中的遇到的问题
- Qt 笔记(记录使用Qt中遇到的一些问题)
- ionic学习使用笔记(一) 版本更新及创建项目时遇到的问题解决
- [笔记]--BDD测试使用Capybara遇到的问题及解决方法
- 大数据下Hadoop及Hbase使用中遇到的若干问题及汇总
- 在使用hadoop中遇到的一些有关linux的问题
- ubuntu上搭建eclipse下hadoop-2.7.1集群(全分布式)开发环境遇到的几个问题笔记
- Hbase+Zookeeper+hadoop使用过程遇到的问题
- Spring学习笔记(二十一):使用阿里云OSS的javaSDK时遇到的问题(附:测试代码)