【问题标题】:Hadoop pseudo-distributed mode errorHadoop伪分布式模式错误
【发布时间】:2011-02-07 10:05:29
【问题描述】:

我已经使用 Virtualbox 在 OpenSuse 11.2 VM 上设置了 Hadoop。我已经进行了先决条件配置。我在独立模式下成功运行了这个示例。 但在伪分布式模式下,我收到以下错误:


$./bin/hadoop fs -put conf input
10/04/13 15:56:25 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.SocketException: Protocol not available                                                              
10/04/13 15:56:25 INFO hdfs.DFSClient: Abandoning block blk_-8490915989783733314_1003        
10/04/13 15:56:31 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.SocketException: Protocol not available                                                              
10/04/13 15:56:31 INFO hdfs.DFSClient: Abandoning block blk_-1740343312313498323_1003        
10/04/13 15:56:37 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.SocketException: Protocol not available                                                              
10/04/13 15:56:37 INFO hdfs.DFSClient: Abandoning block blk_-3566235190507929459_1003        
10/04/13 15:56:43 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.SocketException: Protocol not available                                                              
10/04/13 15:56:43 INFO hdfs.DFSClient: Abandoning block blk_-1746222418910980888_1003        
10/04/13 15:56:49 WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable to create new block.                                                                           
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2845)                                                                                    
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2000(DFSClient.java:2102) 
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2288)                                                                                         

10/04/13 15:56:49 WARN hdfs.DFSClient: Error Recovery for block blk_-1746222418910980888_1003 bad datanode[0] nodes == null                                                               
10/04/13 15:56:49 WARN hdfs.DFSClient: Could not get block locations. Source file "/user/max/input/core-site.xml" - Aborting...                                                           
put: Protocol not available                                                                  
10/04/13 15:56:49 ERROR hdfs.DFSClient: Exception closing file /user/max/input/core-site.xml : java.net.SocketException: Protocol not available
java.net.SocketException: Protocol not available
        at sun.nio.ch.Net.getIntOption0(Native Method)
        at sun.nio.ch.Net.getIntOption(Net.java:178)
        at sun.nio.ch.SocketChannelImpl$1.getInt(SocketChannelImpl.java:419)
        at sun.nio.ch.SocketOptsImpl.getInt(SocketOptsImpl.java:60)
        at sun.nio.ch.SocketOptsImpl.sendBufferSize(SocketOptsImpl.java:156)
        at sun.nio.ch.SocketOptsImpl$IP$TCP.sendBufferSize(SocketOptsImpl.java:286)
        at sun.nio.ch.OptionAdaptor.getSendBufferSize(OptionAdaptor.java:129)
        at sun.nio.ch.SocketAdaptor.getSendBufferSize(SocketAdaptor.java:328)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.createBlockOutputStream(DFSClient.java:2873)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2826)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2000(DFSClient.java:2102)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2288)

【问题讨论】:

    标签: hadoop hdfs hadoop2


    【解决方案1】:

    集群中似乎没有实时数据节点。您是否检查状态页面是否显示活动节点? http://localhost:50070/

    使用命令 $ bin/start-all.sh 启动所有 Hadoop 守护进程。

    【讨论】:

      【解决方案2】:

      您是否启动了 Hadoop 恶魔。这需要在 psuedo-dist 模式下完成,这与独立模式不同。您可以使用以下方式启动它们:

      $bin\start-all.sh

      可以在here找到所需步骤的文档。

      您是否遵循了所有这些步骤?可以浏览 NameNode 和 JobTracker 网页界面吗?

      【讨论】:

      • 这就是我要运行的示例。我可以浏览 Namenode 和 JobTracker,core-site.xml 文件就在那里。当我启动守护程序时,日志看起来不错。只有在 './bin/hadooop -put conf input' 之后才会发生异常。
      【解决方案3】:

      也许尝试使用预配置的虚拟机? http://www.cloudera.com/developers/downloads/virtual-machine/我认为这可能是开始学习hadoop的最佳方式,那些问题不应该在那里发生。

      【讨论】:

      • 能否告诉我是否可以使用 Cloudera 的 VM 在完全分布式模式下运行 Hadoop?每个 VM 将在不同的计算机上运行。因为我无法在我工作的机器上安装 Linux :(
      • 如果您想在不同的计算机上运行 Cloudera 的 VM,您会遇到一些问题(与网络有关)。但是对于测试,在单台 PC 上运行 2 或 3 个 VM 就可以了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多