Hadoop高可用搭建部署测试

Hadoop高可用搭建部署测试_第1张图片

同步时间

date -s "2019-8-22 09:36:15"

实现从机到主机之间互相通信

ssh免密钥(本机生成)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

分发密钥到主机(并重命名区分 避免覆盖)

scp id_dsa.pub bigdata01:`pwd`/bigdata02.pub

主机把从机发送的bigdata02的公钥追加到认证文件里:

cat ~/.ssh/bigdata02.pub >> ~/.ssh/authorized_keys

修改hdfs.xml,删除原先的SecondNamenode配置,增加以下

  dfs.nameservices

  mycluster

 

  dfs.ha.namenodes.mycluster

  nn1,nn2

 

  dfs.namenode.rpc-address.mycluster.nn1

  bigdata01:8020

  dfs.namenode.rpc-address.mycluster.nn2

  bigdata02:8020

  dfs.namenode.http-address.mycluster.nn1

  bigdata01:50070

  dfs.namenode.http-address.mycluster.nn2

  bigdata02:50070

  dfs.namenode.shared.edits.dir

  qjournal://bigdata01:8485;bigdata02:8485;bigdata03:8485/mycluster

  dfs.client.failover.proxy.provider.mycluster

  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

    

      dfs.ha.fencing.methods

      sshfence

    

 

 

    

      dfs.ha.fencing.ssh.private-key-files

      /root/.ssh/id_dsa

    

   dfs.journalnode.edits.dir

   /opt/modules/hadoop-2.6.5/ha/journalnode

 

   dfs.ha.automatic-failover.enabled

   true

修改core-site.xml配置

    fs.defaultFS

    hdfs://mycluster

增加

   hadoop.tmp.dir

   /opt/modules/hadoop-2.6.5/ha

   ha.zookeeper.quorum

   bigdata02:2181,bigdata03:2181,bigdata04:2181

分发hdfs-site.xml和core-site.xml给其他节点

scp core-site.xml hdfs-site.xml bigdata02:`pwd`

在2\3\4datanode中添加zookeeper包

tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/modules/

进入zookeeper修改conf配置文件

mv zoo_sample.cfg zoo.cfg

修改

dataDir=/opt/modules/zookeeper

增加

server.1=bigdata02:2888:3888

server.2=bigdata03:2888:3888

server.3=bigdata04:2888:3888

分发zookeeper给其他节点

scp -r zookeeper-3.4.6/ bigdata03:`pwd`

给三台节点新建文件夹

mkdir -p /opt/modules/zookeeper

添加可识别myid,每台机字数字不一样 代表编号

echo 1 > /opt/modules/zookeeper/myid

配置环境变量

vi /etc/profile

export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.6

PATH=$PATH:$ZOOKEEPER_HOME/bin

分发/etc/profile给其他节点

scp /etc/profile bigdata03:/etc/

source /etc/profile

启动zookeeper

zkServer.sh start

开启的机子中,编号大的为leader,其余为follower

1\2\3台机启动journalnode(同步数据)

hadoop-daemon.sh start journalnode

主namenode节点格式化:

hdfs namenode -format

启动格式化后的主节点:

hadoop-daemon.sh start namenode

把主节点的信息拷贝到当前节点的信息(journalnode要启动):

hdfs namenode -bootstrapStandby

同步成功,会发现同步另一个nn节点的clusterID 不是秘钥分发,而是同步过来的

格式化zkfc,在zookeeper中可见目录创建 :

hdfs zkfc -formatZK

进入zookeeper客户端:

zkCli.sh

启动hdfs集群:

start-dfs.sh

Hadoop高可用搭建部署测试_第2张图片

手动把nn1设置为active

$ bin/hdfs haadmin -transitionToActive nn1

上传文件到nn1,然后将nn1切换为Standby

将nn2切换为Active,然后查看HDFS文件

手动切换回standby:

$ bin/hdfs haadmin -transitionToStandby nn1

注意:但是在DFSZKFailoverController的监控下,无法执行,需要停止之后才可以执行

 

爬坑经历:DFSZKFailoverController好多次都没有起来,在配置的时候注意要顶格写,最好在linux下直接编写,不要通过notepad进行。tab不可以用s多个空格替代。

 

 

集群启动顺序:zkServer.sh start  ---> start-dfs.sh

 

 

你可能感兴趣的:(大数据)