Hadoop 2.2将新的Datanode添加到现有的hadoop安装中

时间:2013-12-31 01:22:02

标签: hadoop

我首先在我的机器上安装了hadoop 2.2(称为Abhishek-PC),一切正常。我能够成功运行整个系统。 (namenode和datanode)。

现在我创建了1个VM hdclient1,我想将此VM添加为数据节点。

以下是我遵循的步骤

  1. 我成功设置了SSH,我可以在没有密码的情况下进入hdclient1,我可以在没有密码的情况下从hdclient1登录到我的主机。

  2. 我在这个VM上设置了hadoop 2.2,并根据Web上的许多教程修改了配置文件。这是我的配置文件

  3. 名称节点配置

    https://drive.google.com/file/d/0B0dV2NMSGYPXdEM1WmRqVG5uYlU/edit?usp=sharing

    数据节点配置

    https://drive.google.com/file/d/0B0dV2NMSGYPXRnh3YUo1X2Frams/edit?usp=sharing

    1. 现在,当我在第一台机器上启动start-dfs.sh时,我可以看到DataNode在hdclient1上成功启动。这是我的hadoop控制台的截图。
    2. https://drive.google.com/file/d/0B0dV2NMSGYPXOEJ3UV9SV1d5bjQ/edit?usp=sharing

      正如您所看到的,这两台机器都出现在我的集群中(主要主节点和数据节点)。

      虽然由于某些奇怪的原因,两者都被称为“localhost”。

      1. 我可以看到日志是在hdclient1上创建的,在那些日志中没有例外。
      2. 这是来自名称节点

        的日志

        https://drive.google.com/file/d/0B0dV2NMSGYPXM0dZTWVRUWlGaDg/edit?usp=sharing

        以下是数据节点

        中的日志

        https://drive.google.com/file/d/0B0dV2NMSGYPXNV9wVmZEcUtKVXc/edit?usp=sharing

        1. 我可以成功登录namenode UI http://Abhishek-PC:50070
        2. 但是这里的实时节点中的UI只显示了1个活动节点,并且没有提到hdclient1。

          https://drive.google.com/file/d/0B0dV2NMSGYPXZmMwM09YQlI4RzQ/edit?usp=sharing

          1. 我可以在hdfs中成功创建一个目录hadoop fs -mkdir /small

          2. 从datanode我可以看到该目录是使用此命令创建的hadoop fs -ls /

          3. 现在,当我尝试将文件添加到我的HDFS时,我说

          4. hadoop fs -copyFromLocal~ / Downloads / book / war_and_peace.txt / small

            我收到错误消息

              

            abhishek @ Abhishek-PC:〜$ hadoop fs -copyFromLocal   〜/ Downloads / book / war_and_peace.txt / small 14/01/04 20:07:41警告   util.NativeCodeLoader:无法加载native-hadoop库   平台...使用内置java类,适用于14/01/04   20:07:41 WARN hdfs.DFSClient:DataStreamer Exception   org.apache.hadoop.ipc.RemoteException(java.io.IOException):文件   /small/war_and_peace.txt。 COPYING 只能复制到0个节点   而不是minReplication(= 1)。有1个datanode正在运行和   此操作中不排除任何节点。在   org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1384)     在   org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2477)     在   org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:555)

            所以我的问题是我在这里做错了什么?当我尝试将文件复制到HDFS时,为什么会出现此异常?

1 个答案:

答案 0 :(得分:0)

我们有一个3节点集群(所有物理盒),它已经运行了几个月。 This文章对我的设置帮助最大。