Hadoop 启动错误:50010端口被占用

2019-03-28 14:21|来源: 网络

今天启动Hadoop的时候遇到两个错误:

1.   ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in ...   

  namenode namespaceID = 1691922584; datanode namespaceID = 614022826

      数据格式不匹配,需要进行 hadoop namenode -format

2. 2011-05-1 14:30:41,855 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.BindException: Problem binding to /0.0.0.0:50010 : Address already in useat org.apache.hadoop.ipc.Server.bind(Server.java:190)at   org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:309)at   org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216) 

  50010端口被占用,在hdfs-site.xml中改成其他端口号

 
<property>
    <name>dfs.datanode.address</name>
    <value>0.0.0.0:50010</value>
<description>The address where the datanode server will listen to. 
If the port is 0 then the server will start on a free port.
</description>
</property>

  类似的,还有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中修改下端口号:

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

相关问答

更多
  • 如果你已经进入hadoop/bin目录下,应该是 ./hadoop fs -mkdir /input 如果你没有进入hadoop/bin目录,你应该打全路径或相对路径 假设你的hadoop安装在/home/hadoop下,你可以打 /home/hadoop/bin/hadoop fs -mkdir /input 一般情况下你都在/home/hadoop默认目录下,你可以打 bin/hadoop fs -mkdir /input
  • $Hadoop=`which hadoop`; #这里加上一句 print "$Hadoop fs -get .....\n"; `$Hadoop fs -get ......`; 看看打印出来的命令是不是你想要的,如果是你想要的,就手动执行一遍。 有问题继续追问。
  • 很可能是tomcat已经启动了(任务管理器),你第二次启动就会出这个问题! 如果不是: 1 看看是那个程序占的端口。把这个程序干掉! 2 如果都不行只能改端口!
  • 它是实现正确的接口还是为reducer实现扩展正确的类。 例外情况表明实现方法中的包差异与使用相比(新旧vso hadoop api) Is it implementing the correct interface or extending the correct class for the reducer implementation. The exception says a package difference in the implementation method required vs the ...
  • 做了一个全新安装的hadoop并用同一个罐子运行工作,问题就消失了。 似乎是一个错误,而不是编程错误。 Did a fresh installation of hadoop and ran the job with the same jar, the problem disappeared. Seems to be a bug rather than programming errors.
  • 您需要为openCV安装所需的包。 这篇文章介绍如何安装openCV: http : //www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/ 您需要的是以下命令: sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python- ...
  • Hadoop有asm 3.2而我使用的是ASM 5.在ASM5中,ClassVisitor是一个超类,而在3.2中它是一个接口。 出于某种原因,错误是Throwable(信任Shevek),catch块只捕获异常。 任何hadoop日志都没有捕获throwable错误。 因此,调试非常困难。 使用jar jar链接修复asm版本问题,现在一切正常。 如果你正在使用Hadoop并且某些东西不起作用并且没有日志显示任何错误,那么请尝试抓住Throwable。 阿伦 Hadoop had asm 3.2 and ...
  • 您应该添加/usr/lib/hadoop-0.xx/lib找到的所有jar以避免这种类路径问题。 为了给你一个想法,你可以输入hadoop classpath ,它将打印出获取Hadoop jar和所需库所需的类路径。 在你的情况下,你错过了hadoop-common-0.xx.jar ,所以你应该把它添加到classpath中,你应该很好。 You should add all the jars found in /usr/lib/hadoop-0.xx/lib to avoid this kind of ...
  • TaggedWritable类没有空构造函数,因此在应该读取序列化数据的reduce阶段,app会因为无法通过反射创建TaggedWritable键入键而TaggedWritable 。 您应该添加一个空构造函数。 您的地图阶段已成功完成,因为在地图阶段,您的映射器会TaggedWritable创建TaggedWritable类型的键。 This code solves the problem and gives the expected result. It is from here, public st ...
  • 看起来你正在使用hadoop的后级版本。 检查您的图形构建器版本所需的hadoop版本,并确保它是您正在运行的版本。 Looks like you're using a back level version of hadoop. Check the version of hadoop that your version of graph builder needs and make sure that's the version you're running.