MAC M1大数据0-1成神篇-25 hadoop高可用搭建

写在前面:

大家跟着我之前的文章走过来再看这篇文章

  1. 首先我们搭建过了单节点的hadoop集群
  2. 根据我们之前的环境,来搭建
  3. 如果不是根据我之前的文章走过来的,出现问题一概不看

进入主题:

1.准备安装环境

  • 目前咱们已经有hadoop了,就不用准备安装环境了。

2.修改集群环境(不是新增代码,下面贴的是完整的,不是添加上去的,注意)(先配置一台,我配置的是node01)

  • vim hadoop-env.sh
  • ##直接在文件的最后添加
    export JAVA_HOME=/opt/local/jdk1.8.0_261
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export HDFS_ZKFC_USER=root
    export HDFS_JOURNALNODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root

3.修改配置文件(不是新增代码,下面贴的是完整的,不是添加上去的,注意)(先配置一台,我配置的是node01)

  • vim core-site.xml
  • <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hdfs-dsj</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/local/hadoop-3.3.1/ha</value>
    </property>
    <property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
    </property>
    <property>
    <name>ha.zookeeper.quorum</name>
    <value>node01:2181,node02:2181,node03:2181</value>
    </property>
  • vim hdfs-site.xml
  • <property>
    <name>dfs.nameservices</name>
    <value>hdfs-dsj</value>
    </property>
    <property>
    <name>dfs.ha.namenodes.hdfs-dsj</name>
    <value>nn1,nn2</value>
    </property>
    <property>
    <name>dfs.namenode.rpc-address.hdfs-dsj.nn1</name>
    <value>node01:8020</value>
    </property>
    <property>
    <name>dfs.namenode.rpc-address.hdfs-dsj.nn2</name>
    <value>node02:8020</value>
    </property>
    <property>
    <name>dfs.namenode.http-address.hdfs-dsj.nn1</name>
    <value>node01:9870</value>
    </property>
    <property>
    <name>dfs.namenode.http-address.hdfs-dsj.nn2</name>
    <value>node02:9870</value>
    </property>
    <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node01:8485;node02:8485;node03:8485/hdfs-dsj</value>
    </property>
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/local/hadoop-3.3.1/ha/qjm</value>
    </property>
    <property>
    <name>dfs.client.failover.proxy.provider.hdfs-dsj</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    <value>shell(true)</value>
    </property>
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>

 4.拷贝分发软件

  • 1.目前配置已在node01配置完毕
  • 2.将node01节点中的hadoop文件夹中,(full,logs)文件夹删除
  • 3.将其他节点上的hadoop删除
  • 4.将node01节点的hadoop传到其他节点上面
    • scp -r /opt/local/hadoop-3.3.1 root@node02:/opt/local/
      scp -r /opt/local/hadoop-3.3.1 root@node03:/opt/local/

5.首先启动Zookeeper

  • 注意:三台节点都启动
  • zkServer.sh start
  • zkServer.sh status

6.启动JournalNode

  • 注意:三台节点都运行
  • hdfs --daemon start journalnode

 7.格式化NameNode

  • 在node01上初始化下namenode
    • hdfs namenode -format
  • 在node01上启动namenode
    • hdfs --daemon start namenode
  • 将备用节点之间给到node02节点
    • hdfs namenode -bootstrapStandby
  • 在node01上初始化zkfc
    • hdfs zkfc -formatZK
  • 在node01上启动集群
    • start-dfs.sh

8.测试集群
 

  • http://node01:9870
    http://node02:9870

9.关闭集群

  • stop-dfs.sh(node01执行就行)
  • zkServer.sh stop(三台都执行)
  • jps检查下还有没有进程

10.注意事项:

  1. 特别注意:测试上面没问题了,那么现在关机,拍摄快照。
  2. 启动hadoop的时候要先启动zk,因为hadoop的主备切换在zk里做的
  3. hadoop3.x之前用的是50070,3.x之后用的是9870

完毕。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值