HDFS高可用完全分布式集群搭建

之前已经介绍过了高可用完全分布式HDFS集群,现在我们来搭建这个集群。
集群规划:

NN-1 NN-2 DN ZK ZKFC JNN
node01 * * *
node02 * * * * *
node03 * * *
node04 * *

一、时间同步

  1. 各个节点安装ntp命令
[root@node01 ~]# yum install npt
  1. 上网查找最新的时间服务器 ntp1.aliyun.com
  2. 同步时间ntpdate ntp1.aliyun.com同步时间ntpdate ntp1.aliyun.com
[root@node01 ~]# ntpdate ntp1.aliyun.com

二、免密登录

  1. 所有节点执行
[root@node01 ~]# ssh-keygen -t rsa
  1. node01->node01 node01->node02 node01->node03 node01->node04
[root@node01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
[root@node01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
[root@node01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
[root@node01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
  1. node02->node01
[root@node02 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01

三、所有节点配置JDK

四、解压配置hadoop和配置/etc/profile 和 ~/.bashrc

  1. 修改hdfs-site.xml配置文件
<configuration>
	
    <property>
        <name>dfs.nameservicesname>
        <value>myclustervalue>
    property>
    
    <property>
        <name>dfs.ha.namenodes.myclustername>
        <value>nn1,nn2value>
    property>
    
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1name>
        <value>node01:8020value>
    property>
     
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2name>
        <value>node02:8020value>
    property>
     
    <property>
        <name>dfs.namenode.http-address.mycluster.nn1name>
        <value>node01:50070value>
    property>
     
    <property>
        <name>dfs.namenode.http-address.mycluster.nn2name>
        <value>node02:50070value>
    property>
     
    <property>
        <name>dfs.namenode.shared.edits.dirname>
        <value>qjournal://node01:8485;node02:8485;node03:8485/myclustervalue>
    property>
     
    <property>
        <name>dfs.journalnode.edits.dirname>
        <value>/var/abc/hadoop/ha/jnvalue>
    property>
    
    <property>
        <name>dfs.client.failover.proxy.provider.myclustername>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue>
    property>
     
    <property>
        <name>dfs.ha.fencing.methodsname>
        <value>sshfencevalue>
    property>
    
    <property>
        <name>dfs.ha.fencing.ssh.private-key-filesname>
        <value>/root/.ssh/id_rsavalue>
    property>
    
    <property>
        <name>dfs.ha.automatic-failover.enabledname>
        <value>truevalue>
    property>
configuration>
  1. 修改core-site.xml配置文件
<configuration>
	
    <property>
	    <name>fs.defaultFSname>
	    <value>hdfs://myclustervalue>
    property>
    
    <property>
        <name>ha.zookeeper.quorumname>
        <value>node02:2181,node03:2181,node04:2181value>
    property>
configuration>
  1. 修改slaves配置文件
node02
node03
node04

五、将配置好的HDFS安装包拷贝到node02 node03 node04,并配置/etc/profile 和 ~/.bashrc

[root@node01 software]# scp -r hadoop-2.6.5 root@node02:/opt/software/

六、格式化NameNode(创建目录以及文件)

  1. 在node01、node02、node03分别执行如下命令
[root@node02 software]# hadoop-daemon.sh start journalnode
  1. 随机选择一台NameNode执行:
[root@node01 software]# hdfs namenode -format
[root@node01 software]# hadoop-daemon.sh start namenode
  1. 另外一台NameNode节点执行:
[root@node02 software]# hdfs namenode  -bootstrapStandby

七、搭建zookeeper集群

  1. 在/opt/software/目录下解压
[root@node01 software]# tar zxf zookeeper-3.4.10.tar.gz
  1. 修改/opt/software/zookeeper-3.4.10/conf目录下的zoo_sample.cfg的名称,改为zoo.cfg
[root@node01 conf]# mv zoo_sample.cfg zoo.cfg
  1. 修改zoo.cfg
[root@node01 conf]# vi zoo.cfg 

修改数据存放目录,不要放在/tmp目录下,因为该目录下的文件重启会被清理

dataDir=/opt/data/zookeeper

在文本最后加上

server.2=node02:2888:3888
server.3=node03:2888:3888
server.4=node04:2888:3888
  1. 将配置好的zookeeper安装包拷贝到node02 node03 node04,并配置好/etc/profile文件 和 ~/.bashrc文件
[root@node01 software]# scp -r zookeeper-3.4.10 root@node02:/opt/software/
  1. 在node02、03、04节点的对应dataDir目录下创建一个myid文件,在这个文件中写上当前节点ID号
[root@node02 /]# mkdir -p /opt/data/zookeeper/
[root@node02 zookeeper]# vi myid 

2
~    
~    
~    
  1. node02、03、04节点启动zookeeper
[root@node02 zookeeper]# zkServer.sh start
  1. 格式化zookeeper
[root@node01 /]# hdfs zkfc -formatZK

八、关闭所有节点上的进程

[root@node01 /]# stop-dfs.sh

九、启动HDFS

[root@node01 /]# start-dfs.sh

本文部分内容参考https://blog.csdn.net/weixin_41407399/article/details/79687469
遇到问题可参考搭建HDFS集群应该注意虚拟机的相关配置

你可能感兴趣的:(HDFS集群,大数据)