Hadoop之Secondary NameNode
NameNode存储文件系统的变化作为log追加在本地的一个文件里:这个文件是edits。当一个NameNode启动时,它从一个映像文件:FsImage,读取HDFS的状态,使用来自edits日志文件的 edits。然后它将写入新的HDFS状态到FsImage并开始平常操作,此时edits是一个空文件。由于NameNode合并FsImage和edits只在启动时,edits日志文件会变得很大在一段时间内并运行在繁忙的集群上 ,一个副作用是一个更大的edits文件会使NameNode在下次重新启动时需要更长的时间。
Secondary NameNode定期合并FsImage和edits日志文件,并保持edits日志文件大小在一定限度。它通常和NameNode运行在不同的机器上,内存需求和NameNode相同。
检查点进程开始由Secondary NameNode两个配置参数控制。
dfs.namenode.checkpoint.period,默认被设置为1个小时,指定连续两个检查点间的最大延迟
dfs.namenode.checkpoint.txns,默认被设置为1M,定义了uncheckpointed事务在NameNode的数量,这将迫使有一个紧急检查点,即使检查点时间间隔尚未达到。
Secondary NameNode 存储最新检查点在一个目录中其结构的方式与NameNode的目录相同。以便于checkpoint镜像总是准备被NameNode读,如果需要的话。
为了安全,如何将Secondary NameNode 存放与NameNode不在同一台机器上?
hadoop 1.x版本:
在hadoop 节点下,修改masters内容
[root@hadoop conf]# vi masters
比如将里面的localhost改为Hadoop1
效果如下:
Hadoop:
[root@hadoop conf]# jps
7008JobTracker
6836NameNode
7105 JpsHadoop1:
[root@hadoop1 local]# jps
6315DataNode
6470TaskTracker
6561 Jps
6384SecondaryNameNode
hadoop2.x版本:
需要增加masters文件
vi masters
在文件里写入希望Secondary NameNode存放的主机名或者ip地址
需要修改配置文件:
修改hdfs-site.xml:
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
<description>
The address and the base port where the dfs namenode web ui will listen on.If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
//主要是这里的主机名要变
</property>
修改core-site.xml文件:
<property>
<name>fs.checkpoint.period</name>
<value>3600</value>
<description>The number of seconds between two periodic checkpoints.
</description>
</property>
<property>
<name>fs.checkpoint.size</name> //以日志大小间隔 做备份间隔
<value>67108864</value>
</property>
上面修改完毕,相应的节点也做同样的修改。
SecondaryNameNode的单独启动和停止
启动:
bin/hadoop-daemons.sh --config conf/ --hosts masters start secondarynamenode
停止:
bin/hadoop-daemons.sh --config conf/ --hosts masters stop
secondarynamenode
hadoop2.x里SecondaryNameNode总是在执行start-dfs.sh后自动起来,也没配置SecondaryNameNode,怎么自动启动SecondaryNameNode?
hadoop的启动命令:
start-dfs.sh
一旦执行这个脚本,它就会启动master,slave,然后secondarynamenode。
也就是说start-dfs.sh对它们进行了定义,你可以修改里面的脚本。
sudo nano start-dfs.sh
#---------------------------------------------------------
# secondary namenodes (if any)
SECONDARY_NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -secondarynamenodes 2>/dev/null)
if [ -n "$SECONDARY_NAMENODES" ]; then
echo "Starting secondary namenodes [$SECONDARY_NAMENODES]"
"$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
--config "$HADOOP_CONF_DIR" \
--hostnames "$SECONDARY_NAMENODES" \
--script "$bin/hdfs" start secondarynamenode
fi
我们看到上面代码部分,注释掉SecondaryNameNode就不会起来了(在做这个操作前,自己先备份一份)。
Hadoop之Secondary NameNode的更多相关文章
- hadoop 根据secondary namenode恢复namenode
refer to http://www.cnblogs.com/Richardzhu/p/3435989.html http://blog.csdn.net/wuzhilon88/article/de ...
- Secondary NameNode:的作用?
前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...
- hadoop主节点(NameNode)备份策略以及恢复方法
link:http://jiajun.iteye.com/blog/809125 一.dits和fsimage 首先要提到两个文件edits和fsimage,下面来说说他们是做什么的. 集群中的名称节 ...
- Secondary Namenode - What it really do?
原文链接:http://blog.madhukaraphatak.com/secondary-namenode---what-it-really-do/ Secondary Namenode is o ...
- Hadoop错误之namenode宕机的数据恢复
情景再现: 在修复hadoop集群某一个datanode无法启动的问题时,搜到有一个答案说要删除hdfs-site.xml中dfs.data.dir属性所配置的目录,再重新单独启动该datanode即 ...
- 解读Secondary NameNode的功能
1.概述 最近有朋友问我Secondary NameNode的作用,是不是NameNode的备份?是不是为了防止NameNode的单点问题?确实,刚接触Hadoop,从字面上看,很容易会把Second ...
- Secondary NameNode 的作用
https://blog.csdn.net/xh16319/article/details/31375197 很多人都认为,Secondary NameNode是NameNode的备份,是为了防止Na ...
- (转)Secondary NameNode的作用
在Hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一.从它的名字上看,它给人的感觉就像是NameNode的备份.但它实际上却不是.很多Hadoop的初学者都很疑惑,S ...
- Secondary NameNode究竟是做什么的
Secondary NameNode:它究竟有什么作用? 在hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一.从它的名字上看,它给人的感觉就像是NameNode的备 ...
随机推荐
- SDP(8):文本式数据库-MongoDB-Scala基本操作
MongoDB是一种文本式数据库.与传统的关系式数据库最大不同是MongoDB没有标准的格式要求,即没有schema,合适高效处理当今由互联网+商业产生的多元多态数据.MongoDB也是一种分布式数据 ...
- hdu3480 Division(dp平行四边形优化)
题意:将n个数分成m段,每段的代价为最大值减最小值的平方,为代价最小是多少n<=10000 ,m<=5000 题解:先拍好序,从小到大,这样绝对是花费最小的,不过怎么样来做呢?一定很容易想 ...
- jdbc 报错解决办法
刚刚看到一个童鞋出现了这个问题 其实这个问题很好解决 在工程中创建一个lib目录: 然后讲mysql包复制进去 然后对着包点击右键 build path就可以了 最后面再次运行就可以了 jar包地址下 ...
- Yii2按需加载图片怎么做?
按需加载图片应该用 jQuery LazyLoad 图片延迟加载按需加载文件夹应该用 Yii::import
- C语言老司机学Python (四)
字符串格式化: 可以使用类似c语言中sprintf函数的方法进行格式化,但是函数名称是print() 如:print('常量 PI 的值近似为:%5.3f.' % var_PI) 注意var_PI ...
- 用开源的 ffmpeg 实现屏幕录像机
在我看来,FFmpeg 绝对是一个很酷的应用.那么,它究竟有什么用呢?简单地讲,FFmpeg 相当于一个屏幕录像机.你可以使用它将屏幕上的操作过程录制下来,然后再将其播放给别人看.我们可以利用它制作教 ...
- 工作中常用的linux命令(2)
1.find :查找指定文件名的路径: 列出当前目录以及子目录中的所有文件: 在当前目录下寻找特定文件名的文件: 列出长度为零的文件: 2.ps :查看某个程序的进程,例如查询mongodb和mysq ...
- HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new的异同
1. 首先我们来看HeapAlloc: MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来, ...
- 《实战Nginx》读书笔记
最近今天读了一本书叫做<实战Nginx:取代Apache的高性能Web服务器>,看后对Nginx 了解了不少.但是还有很多地方不是很了解.不过此书可以作为一本参考手册来使用,里面的讲解很详 ...
- 图像采集系统的Camera Link标准接口设计
高速数据采集系统可对相机采集得到的实时图像进行传输.实时处理,同时实现视频采集卡和计算机之间的通信.系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输 ...