【问题标题】:Couldn't start hadoop datanode normally无法正常启动hadoop datanode
【发布时间】:2014-03-07 02:48:51
【问题描述】:

我正在尝试安装 hadoop 2.2.0 我在启动 dataenode 服务时遇到以下错误,请帮助我解决此问题。在此先感谢。

2014-03-11 08:48:16,406 INFO org.apache.hadoop.hdfs.server.common.Storage:锁定 /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/ in_use.lock 由节点名 3627@prassanna-Studio-1558 获取 2014-03-11 08:48:16,426 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode:块池初始化失败 块池 BP-611836968-127.0.1.1-1394507838610(存储 ID DS-1960076343-127.0. 1.1-50010-1394127604582) 服务到 localhost/127.0.0.1:9000 java.io.IOException:/home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode 中的集群 ID 不兼容:namenode clusterID = CID-fb61aa70-4b15-470e-a1d0-12653e357a10;数据节点集群 ID = CID-8bf63244-0510-4db6-a949-8f74b50f2be9 在 org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:391) 在 org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:191) 在 org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:219) 在 org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:837) 在 org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:808) 在 org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:280) 在 org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:222) 在 org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:664) 在 java.lang.Thread.run(Thread.java:662) 2014-03-11 08:48:16,427 WARN org.apache.hadoop.hdfs.server.datanode.DataNode:结束块池服务:块池 BP-611836968-127.0.1.1-1394507838610(存储 ID DS-1960076343-127.0 .1.1-50010-1394127604582) 服务到 localhost/127.0.0.1:9000 2014-03-11 08:48:16,532 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:删除块池 BP-611836968-127.0.1.1-1394507838610(存储 ID DS-1960076343-127.0.1.1-50010- 1394127604582) 2014-03-11 08:48:18,532 警告 org.apache.hadoop.hdfs.server.datanode.DataNode:退出 Datanode 2014-03-11 08:48:18,534 INFO org.apache.hadoop.util.ExitUtil:退出状态为 0 2014-03-11 08:48:18,536 信息 org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: /************* em>*************** em>****** SHUTDOWN_MSG:关闭 prassanna-Studio-1558/127.0.1.1 的 DataNode

【问题讨论】:

  • 您的问题中没有显示错误。请检查 NameNode 和 DataNode 日志文件。
  • 我已经发布了我的数据节点日志,请告诉如何解决这个问题

标签: hadoop hadoop2


【解决方案1】:

确保您已准备好正确的配置和正确的路径。 这是 ubuntu 上Running Hadoop 的链接。

我已使用此链接在我的机器中设置 hadoop,它工作正常。

【讨论】:

    【解决方案2】:

    这只是表明数据节点尝试启动但发生异常并死亡。

    请检查 hadoop 安装文件夹中日志文件夹下的 datanode 日志(除非您更改了该配置)是否有异常。它通常指向某种配置问题,尤其是。网络设置(/etc/hosts)相关,但有很多可能性。

    【讨论】:

    • 请格式化、删除并重新创建您的datanode、namenode文件夹,然后重试。
    • 嗨 rmdir -p yarn_data,mkdir -p yarn_data,bin/hadoop namenode -format,我尝试了这 3 个命令,但我仍然面临同样的问题。实际上,当我尝试查看在使用 rmdir yarn_data cmd 之前,来自 UI 的 datanode,namenode 文件夹,我只能看到 namenode 内容而不允许查看 datanode 内容,datanode 文件夹显示您不是所有者来访问它,所以,可能是由于访问问题也导致了这个问题。请帮忙解决。在此先感谢。
    【解决方案3】:

    参考这个,

    1.检查JAVA_HOME---

        readlink -f $(which java) 
        /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 
    

    2.如果JAVA不可用,通过命令安装

        sudo apt-get install defalul-jdk 
    

    比运行 1. 并检查终端

        java -version 
        javac -version 
    

    3.配置SSH

    Hadoop 需要 SSH 访问权限来管理其节点,即如果您想在其上使用 Hadoop,则需要远程机器加上您的本地机器(这是我们在这个简短教程中想要做的)。因此,对于我们的 Hadoop 单节点设置,我们需要为用户配置对 localhost 的 SSH 访问。

        sudo apt-get install ssh
        sudo su hadoop
        ssh-keygen -t rsa -P “”
        cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
        ssh localhost
    

    下载并解压hadoop-2.7.3(选择有读写权限的目录)

    设置环境变量

        sudo gedit .bashrc
        source .bashrc
    

    设置配置文件

    必须修改以下文件才能完成 Hadoop 设置:

    ~/.bashrc   (Already done)
    (PATH)/etc/hadoop/hadoop-env.sh 
    (PATH)/etc/hadoop/core-site.xml 
    (PATH)/etc/hadoop/mapred-site.xml.template 
    (PATH)/etc/hadoop/hdfs-site.xm
    
    gedit (PATH)/etc/hadoop/hadoop-env.sh
    
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    
    gedit (PATH)/etc/hadoop/core-site.xml: 
    

    (HOME)/etc/hadoop/core-site.xml 文件包含 Hadoop 在启动时使用的配置属性。 此文件可用于覆盖 Hadoop 启动时使用的默认设置。

        ($ sudo mkdir -p /app/hadoop/tmp)
    

    打开文件并在<configuration></configuration>标签之间输入以下内容:

    gedit /usr/local/hadoop/etc/hadoop/core-site.xml 
    <configuration> 
     <property> 
      <name>hadoop.tmp.dir</name> 
      <value>/app/hadoop/tmp</value> 
      <description>A base for other temporary directories.</description> 
     </property> 
    
     <property> 
      <name>fs.default.name</name> 
      <value>hdfs://localhost:54310</value> 
      <description>The name of the default file system.  A URI whose 
      scheme and authority determine the FileSystem implementation.  The 
      uri's scheme determines the config property (fs.SCHEME.impl) naming 
      the FileSystem implementation class.  The uri's authority is used to 
      determine the host, port, etc. for a filesystem.</description> 
     </property> 
    </configuration>
    
    
    (PATH)/etc/hadoop/mapred-site.xml 
    

    默认情况下,(PATH)/etc/hadoop/ 文件夹包含 (PATH)/etc/hadoop/mapred-site.xml.template 文件,该文件必须重命名/复制为名称 mapred-site.xml

    cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml 
    

    mapred-site.xml 文件用于指定 MapReduce 使用哪个框架。

    我们需要在&lt;configuration&gt;&lt;/configuration&gt;标签之间输入以下内容:

        <configuration> 
         <property> 
          <name>mapred.job.tracker</name> 
          <value>localhost:54311</value> 
          <description>The host and port that the MapReduce job tracker runs 
          at.  If "local", then jobs are run in-process as a single map 
          and reduce task. 
          </description> 
         </property> 
        </configuration>
    
    (PATH)/etc/hadoop/hdfs-site.xml 
    

    (PATH)/etc/hadoop/hdfs-site.xml 文件需要为正在使用的集群中的每个主机配置。

    它用于指定将用作该主机上的namenode和datanode的目录。

    在编辑这个文件之前,我们需要创建两个目录,其中包含这个 Hadoop 安装的 namenode 和 datanode。 这可以使用以下命令完成:

    sudo mkdir -p /usr/local/hadoop_store/hdfs/namenode 
    sudo mkdir -p /usr/local/hadoop_store/hdfs/datanode 
    

    打开文件,在&lt;configuration&gt;&lt;/configuration&gt;标签之间输入以下内容:

        gedit (PATH)/etc/hadoop/hdfs-site.xml 
    
        <configuration> 
         <property> 
          <name>dfs.replication</name> 
          <value>1</value> 
          <description>Default block replication. 
          The actual number of replications can be specified when the file is created. 
          The default is used if replication is not specified in create time. 
          </description> 
         </property> 
         <property> 
           <name>dfs.namenode.name.dir</name> 
           <value>file:/usr/local/hadoop_store/hdfs/namenode</value> 
         </property> 
         <property> 
           <name>dfs.datanode.data.dir</name> 
           <value>file:/usr/local/hadoop_store/hdfs/datanode</value> 
         </property> 
        </configuration> 
    

    格式化新的 Hadoop 文件系统

    现在,需要对 Hadoop 文件系统进行格式化,以便我们可以开始使用它。格式命令应该具有写入权限,因为它会在/usr/local/hadoop_store/ 文件夹下创建当前目录:

        bin/hadoop namenode -format 
    

        bin/hdfs namenode -format
    

    HADOOP 设置完成

    现在启动 hdfs

    start-dfs.sh
    start-yarn.sh
    

    查看网址:http://localhost:50070/

    用于停止 HDFS

    stop-dfs.sh
    stop-yarn.sh
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-15
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      相关资源
      最近更新 更多