分享

Hadoop2.2.0中配置SecondaryNameNode

 小马哥技术屋 2017-12-11

在Hadoop1.x.x的版本中,masters 文件里记录SecondaryNameNode的机器列表,每行一个 slaves 文件里记录启动datanode 和 tasktracker的机器列表,

hadoop2.2.0里采用了HA机制(active NameNode和standby NameNode),可以不用secondarynamenode了,当然也还可以用secondarynamenode。

Hadoop2.2.0里没有masters文件了,slaves文件还在,记录所有的DataNode。


这是hadoop2.2.0里SecondaryNameNode的默认配置:

[java] view plain copy
  1. <property>  
  2.   <name>dfs.namenode.secondary.http-address</name>  
  3.   <value>0.0.0.0:50090</value>  
  4.   <description>  
  5.     The secondary namenode http server address and port.  
  6.   </description>  
  7. </property>  

也就是说,默认情况下,hadoop 在NameNode所在机器里运行SecondaryNameNode,http监听端口是50090,在浏览器输入NameNode的地址和50090端口号,就可看到其信息。如下

[java] view plain copy
  1. SecondaryNameNode  
  2. Version: 2.2.01529768 Compiled: 2013-10-07T06:28Z by hortonmu from branch-2.2.0   
  3.   
  4. --------------------------------------------------------------------------------  
  5.   
  6. SecondaryNameNode Status  
  7. Name Node Address    : hadoop1.highgo.com/192.168.100.90:9000  
  8. Start Time           : Tue May 27 14:48:24 CST 2014  
  9. Last Checkpoint Time : Tue May 27 15:49:28 CST 2014  
  10. Checkpoint Period    : 3600 seconds  
  11. Checkpoint Size      : 976.56 KB (= 1000000 bytes)  
  12. Checkpoint Dirs      : [file:///home/hadoop/develop/hadoop/tmp/dfs/namesecondary]  
  13. Checkpoint Edits Dirs: [file:///home/hadoop/develop/hadoop/tmp/dfs/namesecondary]  

but,这样不安全,要分到两台服务器上。

所以NameNode和SecondaryNameNode的配置是分开的。

NameNode由core-site.xml fs.default.name指定,例子如下

[java] view plain copy
  1. <property>  
  2.         <name>fs.default.name</name>  
  3.         <value>hdfs://master:9000</value>  
  4.     </property>  

而SecondaryNameNode在hdfs-site.xml 中配置:

[java] view plain copy
  1. <property>    
  2.     <name>dfs.http.address</name>    
  3.     <value>${namenode}:50070</value>    
  4.     <description>Secondary get fsimage and edits via dfs.http.address</description>    
  5. </property>    
  6. <property>    
  7.     <name>dfs.secondary.http.address</name>    
  8.     <value>${secondarynamenode}:50090</value>    
  9.     <description>NameNode get the newest fsimage via dfs.secondary.http.address</description>    
  10. </property>   

注意:

  1. 实际上dfs.http.address只在secondary机器上的hdfs-site.xml文件中设置,dfs.secondary.http.address只在namenode上设置即可,为了便于管理,集群所有机器同样配置

  2. 采用默认端口(namenode:50070,secondary:50090)时可以省略该配置

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多