阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基于Hadoop0.20.2版本的namenode与secondarynamenode分离实验

205次阅读
没有评论

共计 2904 个字符,预计需要花费 8 分钟才能阅读完成。

我们在 Hadoop 配置集群时,经常将 namenode 与 secondarynamenode 存放在一个节点上,其实这是非常危险的,如果此节点崩溃的话,则整个集群不可恢复。下面介绍一下将 namenode 与 secondarynamenode 分离的方法。当然还存在好多不足和待改进的地方,欢迎各位大神指点和吐槽。

非常说明:我原本以为 masters 配置文件中的内容(主机名)是指的 namenode 的主机名称,但它实际上指的是 secondarynamenode,slavers 配置文件指的是运行了 datanode 和 tasktracker(一般是同一节点)的所有节点。并且这两个文件只有在运行 namenode 和 jobtracker(一般都在 namenode 节点上 namenode 由 core-site.xml fs.default.name 指定,jobtracker 由 mapred-site.xml mapred.job.tracker 指定)的节点才被用到,所以其它节点可以不进行配置。

所以千万不要忘记修改 namenode 节点中 masters 文件中的内容

言归正传(本实验结合本文中的集群搭建后的环境进行的)

1 将 namenode 所在的节点进行克隆 ,即新建一个节点,包括 conf 目录下的文件配置
所有文件、目录结构、环境变量等都要相同。可参考给集群添加一个新建节点一节,相关配置如:
主机名 secondary

IP 192.168.5.16

hosts 文件:

192.168.5.13 namenode 

192.168.5.16 secondary

SSH 免密码登录

关于 hosts 文件和 ssh,我认为 secondarynamenode 只与 namenode 通信,所以只需跟 namenode 节点建立无密码连接即可,并且 hosts 文件的内容可以只写 namenode 节点和自身的信息,注意 namenode 节点中的 hosts 文件也需添加 secondarynamenode 节点的信息才可。

2 文件配置

(1)在 namenode 节点中 修改 hdfs-site.xml 文件为:

<property>
<name>dfs.secondary.http.address</name>
<value>192.168.5.16:50090</value>
<description>NameNode get the newest fsimage via dfs.secondary.http.address </description>
</property>

在 masters 文件中修改为 secondary

(2)在 secondarynamenodenamenode 节点中 修改 hdfs-site.xml 文件为:

<property>
<name>dfs.http.address</name>
<value>192.168.5.13:50070</value>
<description>Secondary get fsimage and edits via dfs.http.address</description>
</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> 

<property>
<name>fs.checkpoint.dir</name>
<value>/home/zhang/hadoop0202/secondaryname</value>

</property>

其中 fs.checkpoint.period 和 fs.checkpoint.size 是 SecondaryNameNode 节点开始备份满足的条件,当满足两种情况中的任意一个,SecondaryNameNode 节点都会开始备份,第一个为设定的间隔时间到了(默认为一小时)fs.checkpoint.period 设置的时间(以秒为单位),第二个为操作日志文件的大小达到了 fs.checkpoint.size 中设置的阈值。

3 重启 hadoop 或者在 secondary 上直接进行

hadoop-daemon.sh start  secondarynamenode  命令启动 secondaryNamenode

基于 Hadoop0.20.2 版本的 namenode 与 secondarynamenode 分离实验

重启后我们可以看到

在 namenode 中没有了 SecondaryNameNode 的 Java 进程(很抱歉,忘记分离之前截图了,分离之前在 namenode 节点上确实有 SecondaryNameNode 的 Java 进程)

在 secondary 节点上出现 SecondaryNameNode 的 Java 进程

基于 Hadoop0.20.2 版本的 namenode 与 secondarynamenode 分离实验

验证:在 secondary 节点上的 secondaryname 目录中是否有了有了镜像文件(由于在设置 core-siet.xml 文件中的 fs.checkpoint.period 参数是 3600,代表一小时,我们为了实验效果要进行参数修改,修改效果可以参照《怎样控制 namenode 检查点的发生频率》一文 http://www.linuxidc.com/Linux/2015-02/113643.htm)

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2904字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中