hadoop2.0

1.HDFS存在的问题(增加节点数提高稳定性):
   a.NameNode单点故障,会难以应用于在线场景  HA
   b.NameNode压力过大,且内存受限,影响系统扩展性   NN联邦(每个NN都维护自己的文件系统,共用一套DN)
2.HDFS解决故障方案,通过共享文件夹集群,来维持NameNode稳定   
     
3.HA分布式集群方案如下:(stop-dfs.sh先关闭旧的hadoop集群)
     
  a.node01和node02需要相互免密钥
     node02创建免密钥:[root@node02 .ssh]# ssh-keygen -t dsa -P '' -f ./id_dsa
     本机免密钥:cat id_dsa.pub >> authorized_keys
     拷贝node02公钥到node01:[root@node02 .ssh]# scp id_dsa.pub node01:`pwd`/node02.pub     修改名称为node02
     在node01处将node02公钥引入到授权文件:[root@node01 .ssh]# cat node02.pub >> authorized_keys
     
  b.解压tar -xzvf zookeeper-3.4.6.tar.gz到/root/hadoopEnv目录下
     增加环境变量:
     
  c.[root@node02 conf]# cp zoo_sample.cfg zoo.cfg zookeeper识别zoo.cfg文件
     编辑zoo.cfg
     修改为 dataDir=/var/lzx/zk
     增加 server.1=192.168.50.12:2888:3888
             server.2=192.168.50.13:2888:3888
             server.3=192.168.50.14:2888:3888 2888广播端口 1 2 3 3888投票条件(谦让最大)
   d.分别在node02到node04的/var/lzx/zk配置myid(1 2 3)
    
   e.分发node02的/etc/profile文件到node03和node04
     [root@node02 zk]# scp /etc/profile node03:/etc/
    f.分发zookeeper文件到node03和node04
     [root@node02 hadoopEnv]# scp -r zookeeper-3.4.6/ node03:~/hadoopEnv/
   f.启动node02会出现不交互问题,此时再启动node03即可
    
    启动node03之后:
    
    
    运行一段时间之后事务id和值大小来判断leader,因此当node4启动后为follwer
   h.备份分布式集群[root@node01 etc]# cp -r hadoop hadoop-full
   i.开始创建ha集群,根据官方文档配置core-site.xml hdfs-site.xml内容
   j.将core-site.xml hdfs-site.xml分发给node02到node04
      scp core-site.xml hdfs-site.xml node02:`pwd`     `pwd` 代表跟当前路径一致的目录
   k.对node01到node03启动节点调试
      [root@node01 hadoop]# hadoop-daemon.sh start journalnode
   l.启动hdfs格式化,启动namenode
     [root@node01 hadoop]# hdfs namenode -format
     [root@node01 hadoop]# hadoop-daemon.sh start namenode
    node02此时需要同步node01数据
     [root@node02 ~]# hdfs namenode -bootstrapStandby
    
   m.node04连接zookeeper,ls /即可显示zookeeper
     [zk: localhost:2181(CONNECTED) 1] zkCli.sh
     
  n.node01格式化zk,zkFc需要用到
     [root@node01 hadoop]# hdfs zkfc -formatZK,执行完node04的zk客户端会显示如下,标识ha为zk管理
     
  o.[root@node01 hadoop]# start-dfs.sh    启动nn1 nn2
     
p.node01到node04的节点进程变化:
    
    
q.启动start-dfs.sh之后node04的zkCli变化
    
r.此时node02为主,杀node02进程进行检测是否会自动升级node01为主,
   [root@node02 ~]# kill -9 2308































posted on 2018-03-06 18:15  xiaojiayu0011  阅读(100)  评论(0)    收藏  举报

导航