精华内容
下载资源
问答
  • Namenode

    2017-07-13 17:00:35
    Namenode管理着文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。Namenode记录着每个文件中各个块所在的数据节点的位置信息,这些信息会在系统...

           Namenode管理着文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。Namenode记录着每个文件中各个块所在的数据节点的位置信息,这些信息会在系统启动时从数据节点重建。


    Namenode 结构图:

       

        客户端代表用户与namenodedatanode交互访问整个文件系统。

        Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。


    Namenode容错机制

    没有NamenodeHDFS就不能工作。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会完全丢失,因为没有其他方法能够将位于不同datanode上的文件块(blocks)重建文件。因此,namenode的容错机制非常重要,Hadoop提供了两种机制。

    第一种方式是将持久化存储在本地硬盘的文件系统元数据备份。Hadoop可以通过配置来让Namenode将他的持久化状态文件写到不同的文件系统中。这种写操作是同步并且是原子化的。比较常见的配置是在将持久化状态写到本地硬盘的同时,也写入到一个远程挂载的网络文件系统。

    第二种方式是运行一个辅助的Namenode(Secondary Namenode) 事实上Secondary Namenode并不能被用作Namenode它的主要作用是定期的将Namespace镜像与操作日志文件(edit log)合并,以防止操作日志文件(edit log)变得过大。通常,Secondary Namenode 运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存。辅助Namenode保存着合并后的Namespace镜像的一个备份,万一哪天Namenode宕机了,这个备份就可以用上了。

    但是辅助Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可避免的。在这种情况下,一般的,要结合第一种方式中提到的远程挂载的网络文件系统(NFS)中的Namenode的元数据文件来使用,把NFS中的Namenode元数据文件,拷贝到辅助Namenode,并把辅助Namenode作为主Namenode来运行。

    SecondNamenode是对主Namenode的一个补充,它会周期的执行对HDFS元数据的检查点。 当前的设计仅仅允许每个HDFS只有单个SecondNamenode结点。

    SecondNamenode是有一个后台的进程,会定期的被唤醒(唤醒的周期依赖相关配置)执行检查点任务,然后继续休眠。 它使用ClientProtocol协议与主Namenode通信。

    SecondNamenode最好与Namenode部署到不同的服务器( 应该在merge的过程中,SecondNamenode对内存的需求与Namenode是相同的,所以对于那些 大型的生产系统中,如果将两者部署 到同台服务器 上,在 内存上会出现 瓶颈。) SecondaryNameNodeNameNode的冷备份 ,如果NameNode意外终止,需要人工切换。

    展开全文
  • 每次开机都需要重新格式化,才能启动NameNode进程?这个问题是有办法解决的。

    每次开机启动Hadoop的时候,发现都没有NameNode进程,得重新格式化NameNode才能启动。下面说下怎样解决这个问题。

    一、 问题描述

    搭建完完全分布式模式,在启动Hadoop时发现没有NameNode进程,接着格式化NameNode后再重启,可以启动这个进程了,可下一次开机又是无法启动,每次都要重新格式化。

    二、 问题分析

    因为 默认的 tmp文件 每次重新开机都会被清空,造成NameNode的格式化信息丢失,所以每次开机都需要格式化才能启动NameNode进程。

    三、 解决方法

    我们可以通过 重新配置一个tmp文件目录 来解决这个问题。

    下面分别演示通过Xftp去查找修改,和通过命令去查找修改的解决方法。如果是习惯使用图形界面操作的话,可以通过Xftp来找到文件修改进而解决问题。

    3.1 演示一:通过图形界面形式解决

    先在 /home目录 的用户目录下创建一个名为hadoop_tmp的目录(Xftp直接右键选择新建文件夹)

    在这里插入图片描述

    接着找到 hadoop配置目录 中的core-site.xml文件

    (下图是先切换到 /root用户目录 ,再点击安装hadoop时创建的软连接进去找的。这个要根据自己的路径去找。)

    在这里插入图片描述
    以记事本的形式打开这个文件,加上以下内容

    <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/XXX/hadoop_tmp</value>
            <description>A base for other temporary directories.</description>
    </property>
    

    注意: XXX 这个位置,填写你自己的用户名,记得根据自己的情况修改。

    在这里插入图片描述
    在重新格式化

    hadoop namenode -format
    

    最后启动集群,再执行jps命令就可以看到有NameNode进程启动了。

    关掉虚拟机重新打开,也不用再格式化就可以看到启动NameNode进程了。

    3.2 演示二:以命令的形式解决

    同样的,先切换到 /home目录 的用户目录下

    在这里插入图片描述

    接着,创建一个hadoop_tmp目录(如果不是以管理员权限操作的话,要在命令前加 sudo )

    mkdir ~/hadoop_tmp
    

    输入ls命令查看

    在这里插入图片描述

    再找到安装的 hadoop目录 中的core-site.xml文件

    (根据自己的情况查找,如果真的不知道安装到哪里了,推荐通过Xftp的图形界面查找,那样的话查看起来会方便一点。)
    在这里插入图片描述
    再执行下面的命令( gedit 这个位置,可以用 vi 或者 vim 替代)

    gedit core-site.xml
    

    添加下面的内容(XXX这个位置,改为你的用户名)

    <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/XXX/hadoop_tmp</value>
            <description>A base for other temporary directories.</description>
    </property>
    

    重新格式化

    hadoop namenode -format
    

    最后重启集群,再执行jps命令验证,就可以启动NameNode进程了,并且下次开机也不用重新格式化,就有NameNode进程了。


    如果文章对你有帮助,请点个,顺带留给评论支持一下😉,若有疑问可以私信留言😉。如果能给个三连(点赞收藏关注 )就最好啦😁。

    展开全文
  • NameNode和SeondaryNameNode解析+NameNode故障处理

    千次阅读 多人点赞 2020-07-20 08:43:29
    目录NN和2NN工作机制工作流程详细解释:CheckPoint时间设置NameNode故障处理 NN和2NN工作机制 工作流程 第一阶段:NameNode启动 (1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,...

    NN和2NN工作机制

    UfwAIJ.png
    工作流程
    1. 第一阶段:NameNode启动
      (1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存

      (2)客户端对元数据进行增删改的请求

      (3)NameNode记录操作日志,更新滚动日志

      (4)NameNode在内存中对元数据进行增删改

    2. 第二阶段:Secondary NameNode工作
      (1)Secondary NameNode询问NameNode是否需要CheckPoint直接带回NameNode是否检查结果

      (2)Secondary NameNode请求执行CheckPoint

      (3)NameNode滚动正在写的Edits日志

      (4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode

      (5)Secondary NameNode加载编辑日志和镜像文件到内存,并合并

      (6)生成新的镜像文件fsimage.chkpoint

      (7)拷贝fsimage.chkpoint到NameNode

      (8)NameNode将fsimage.chkpoint重新命名成fsimage

    详细解释:

    Fsimage是NameNode内存中元数据序列化后形成的文件。

    Edits是记录客户端更新元数据信息的每一步操作(可通过Edits运算出元数据)。
        NameNode启动时,先滚动Edits并生成一个空的edits.inprogress,然后加载Edits和Fsimage到内存中,此时NameNode内存就持有最新的元数据信息。
        Client开始对NameNode发送元数据的增删改的请求,这些请求的操作首先会被记录到edits.inprogress中(查询元数据的操作不会被记录在Edits中,因为查询操作不会更改元数据信息),如果此时NameNode挂掉,重启后会从Edits中读取元数据的信息。然后,NameNode会在内存中执行元数据的增删改的操作。
        由于Edits中记录的操作会越来越多,Edits文件会越来越大,导致NameNode在启动加载Edits时会很慢,所以需要对Edits和Fsimage进行合并(所谓合并,就是将Edits和Fsimage加载到内存中,照着Edits中的操作一步步执行,最终形成新的Fsimage)。SecondaryNameNode的作用就是帮助NameNode进行Edits和Fsimage的合并工作。
        SecondaryNameNode首先会询问NameNode是否需要CheckPoint(触发CheckPoint需要满足两个条件中的任意一个,定时时间到和Edits中数据写满了)。直接带回NameNode是否检查结果。
        SecondaryNameNode执行CheckPoint操作,首先会让NameNode滚动Edits并生成一个空的edits.inprogress,滚动Edits的目的是给Edits打个标记,以后所有新的操作都写入edits.inprogress,其他未合并的Edits和Fsimage会拷贝到SecondaryNameNode的本地,然后将拷贝的Edits和Fsimage加载到内存中进行合并,生成fsimage.chkpoint,然后将fsimage.chkpoint拷贝给NameNode,重命名为Fsimage后替换掉原来的Fsimage。NameNode在启动时就只需要加载之前未合并的Edits和Fsimage即可,因为合并过的Edits中的元数据信息已经被记录在Fsimage中。

    CheckPoint时间设置

    (1)通常情况下,SecondaryNameNode每隔一小时执行一次。如果配置时间可修改
    hdfs-default.xml文件

    <property>
      <name>dfs.namenode.checkpoint.period</name>
      <value>3600</value>
    </property>
    

    (2)一分钟检查一次操作次数,3当操作次数达到1百万时,SecondaryNameNode执行一次。

    <property>
      <name>dfs.namenode.checkpoint.txns</name>
      <value>1000000</value>
    <description>操作动作次数</description>
    </property>
    
    <property>
      <name>dfs.namenode.checkpoint.check.period</name>
      <value>60</value>
    <description> 1分钟检查一次操作次数</description>
    </property >
    

    NameNode故障处理

    NameNode故障后,可以采用如下两种方法恢复数据。

    方法一:将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;

    1. kill -9 NameNode进程
    2. 删除NameNode存储的数据(/HMY/module/hadoop-2.7.2/data/tmp/dfs/name)
    3. 拷贝SecondaryNameNode中数据到原NameNode存储数据目录
      scp -r didi@hadoop104:/HMY/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
    4. 重新启动NameNode
      sbin/hadoop-daemon.sh start namenode

    方法二:使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中数据拷贝到NameNode目录中。
    1.修改hdfs-site.xml中的

    <property>
      <name>dfs.namenode.checkpoint.period</name>
      <value>120</value>
    </property>
    
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>
    </property>
    
    1. kill -9 NameNode进程
    2. 删除NameNode存储的数据(/HMY/module/hadoop-2.7.2/data/tmp/dfs/name)
      rm -rf /HMY/module/hadoop-2.7.2/data/tmp/dfs/name/*
    3. 如果SecondaryNameNode不和NameNode在一个主机节点上,需要将SecondaryNameNode存储数据的目录拷贝到NameNode存储数据的平级目录,并删除in_use.lock文件
      /HMY/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./
    4. 导入检查点数据(等待一会ctrl+c结束掉)
      bin/hdfs namenode -importCheckpoint
    5. 启动NameNode
      sbin/hadoop-daemon.sh start namenode
    展开全文
  • 执行start-all.sh启动Hadoop时 没有NameNode 的解决方法

    万次阅读 多人点赞 2020-12-01 11:04:22
    介绍怎样解决启动Hadoop后 没有NameNode 的问题。

    搭建完全分布式模式后,在启动hadoop的时候,发现主节点(Master)上没有运行NameNode节点。

    一、 问题描述

    执行命令jps验证Hadoop进程,没有名称节点NameNode,如下图所示。

    在这里插入图片描述

    二、 解决方法

    先执行这条命令关闭Hadoop进程

    stop-all.sh
    

    在这里插入图片描述

    接着对NameNode进行格式化

    hadoop namenode -format
    

    在这里插入图片描述

    格式化完成后,再次打开进程

    start-all.sh
    

    再次输入命令验证Hadoop进程

    jps
    

    在这里插入图片描述


    如果每次开机都需要重新格式化,才能启动NameNode进程,可以参考这篇文章:解决每次开机都需要重新格式化才有NameNode进程的问题

    展开全文
  • Hadoop 格式化namenode错误 FATAL namenode NameNode Exception inna
  • 20/10/13 13:58:04 ERROR namenode.NameNode: Failed to start namenode. java.lang.IllegalArgumentException: URI has an authority component at java.io.File.<init>(File.java:423) at org.apache....
  • 在Hadoop中NameNode 和 secondary NameNode是两个比较容易迷惑的知识,其实没有那么神秘NameNode 和 secondary NameNode就是两个进程 NameNode HDFS集群上有两类节点,一种是管理者一种是工作者,NameNode就是管理...
  • ERROR namenode.NameNode: java.io.IOException: Cannot create directory /export/home/dfs/name/currentERROR namenode.NameNode: java.io.IOException: Cannot remove current directory: /usr/local/hadoop/hdfs
  • NameNode:  NameNode把改动写到文件系统edit logs上  在启动的时候读取fsimage(1)并跟edit logs合并 Secondary NameNode:  定时查询NameNode上的edit logs  把edit logs改动更新到fsimage(2)上并产生新的镜像...
  • NameNode相关

    2020-05-08 16:22:05
    namenode元数据被破坏 java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 16. namenode进程中出现如下报错信息 原因:namenode元数据被破坏,需要修复 解决:恢复...
  • Secondary NameNode

    2019-08-18 09:56:05
    浅析 Secondary NameNode(辅助namenode) 在初学Hadoop时,有个让人疑惑的概念:Secondary NameNode,也叫辅助namenode。从命名看,好像是第二个namenode,用于备份主namenode,在主namenode失败后启动。那么,...
  • ERROR namenode.NameNode: Failed to start namenode. 场景: 搭建hadoop3.1.1的HA分布式环境时,格式化node01节点后,在node02执行以下命令同步数据: hdfs namenode -bootstrapStandby 报错 2019-02-07 21:18:14,...
  • NameNode&Secondary NameNode工作机制图解: 第一阶段:namenode启动 (1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志(edits)和镜像文件(fsimage)到内存...
  • Namenode启动时,会先将镜像文件载入到内存,并执行编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的镜像,则创建一个新的fsimage文件,和一个空的编辑日志。此时namenode开始监听DataNode请求,此时...
  • NameNode概述

    2020-02-23 17:11:30
    参考: HDFS NameNode内存全景 1.概述 从NameNode涉及到的主要操作来讲,主要概念如下: 目录树:命名空间namespace 数据块管理 租约管理 FSNamesystem:NameNode逻辑门面类 NameNode HA下的启动与停止 从内存的...
  • 本文转自:https://blog.csdn.net/remote_roamer/article/details/50675059前言最近刚接触...很多人都认为,Secondary NameNodeNameNode的备份,是为了防止NameNode的单点失败的,直到读了这篇文章Secondary Nam...
  • NameNode 和 Secondary NameNode NameNode 和 Secondary NameNode NameNode:主要是用来保存 HDFS 的元数据信息,比如命名空间信息,块信息等。当它运行的时候,这些信息是存在内存中的。但是这些信息也...
  • NameNode工作机制0)启动概述Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。...
  • Hadoop 格式化namenode错误:FATAL namenode.NameNode: Exception innamenode join RROR namenode.NameNode: java.io.IOException: Cannot create directory /export/home/dfs/name/current ERROR namenode....
  • NameNode详解

    千次阅读 2018-11-08 09:32:17
    1、NameNode的功能 2、 NameNode 启动过程 3、 NameNode元数据管理 4、 安全模式 1、NameNode的功能 负责客户端请求的响应 元数据的管理(查询,修改) 2、 NameNode 启动过程 NameNode启动的时候...
  • NameNode启动

    2018-09-20 17:56:51
    namenode的启动,以及源码分析 1.位置 org.apache.hadoop.hdfs.server.namenode.NameNode
  • 文章目录NameNode和DataNode的工作机制1.NameNode&Secondary NameNode工作机制工作流程镜像文件和编辑日志文件 NameNode和DataNode的工作机制 1.NameNode&Secondary NameNode工作机制 工作流程 (1)第一...
  • NameNode(管理者):管理文件系统的命名空间,维护元数据镜像文件fsimage(磁盘)和操作日志文件edit logs。 问题: edits文件在集群运行过程中不断增加,占用更过内存; NameNode重启会进行edits文件的合并,...
  • Secondary Namenode

    2019-06-16 15:29:14
    Namenode的元数据 (目录中的文件) VERSION文件:包含运行hdfs的版本信息,其中重要属性blockpoolID:记录了一个Namenode管理的命名空间中的所有文件。 编辑日志:客户端执行写操作,这些事务会记录到其中。 映像文件...
  • Namenode学习

    2019-05-30 09:46:35
    HDFS是一个主从架构,其核心就是NamenodeNamenode主要作用是存储整个集群的元数据信息,包括存储文件的详细信息、每个文件的Block及副本在Datanode上的位置;Namnode还被用于协调客户端对文件的访问,记录文件的...
  • namenode和secondary namenode机制namenodeedits.logfsimageNameNode工作机制Secondary namenodeSecondary namenodenamenode的备份CheckPoint触发条件 namenode namenode用来管理集群中的元数据信息,每条元数据...
  • Secondary NameNode:它究竟有什么作用? 在Hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一。从它的名字上看,它给人的感觉就像是NameNode的备份。但它实际上却不是。很多Hadoop的初学者都很疑惑,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,404
精华内容 9,761
热门标签
关键字:

namenode