HDFS高可用完全分布式搭建

HDFS高可用完全分布式搭建

集群规划:
NN-1:Namenode(active)
NN-1:Namenode(standby)
DN :Datanode
ZK:Zookeeper
ZKFC:Zookeeper Failover Controller
JUN:Journalnode

服务器名称 进程
node01 NN-1、ZKFC、JUN
node02 NN-2、DN、ZK、ZKFC、JUN
node03 DN、ZK、JUN
node04 DN、ZK
  • 1.同步服务器时间
    ①各个节点安装ntp
    ——命令:yum install ntp
    ②上网查找最新的时间服务器,这里使用阿里的
    ——地址:ntp1.aliyun.com
    ③同步时间
    ——命令:ntpdate ntp1.aliyun.com
  • 2.配置免密登录

node01->node01
node01->node02
node01->node03
node01->node04
node02->node01

①所有节点执行
——命令:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

②在node01节点执行,将node01的公钥加入到其他节点的白名单中
——命令:

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04

②在node02节点执行,将node02的公钥加入到node01的白名单中
——命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01

注:node01~04为服务器名称,可用ip地址替换

  • 3.所有节点配置JDK
    ①卸载自带jdk
    ——命令:yum remove *openjdk*
    ②下载想要的jdk版本并进入所在目录,解压
    ——命令: tar -zxvf jdk-8u131-linux-x64.tar.gz
    ③设置环境变量,打开etc下的profile文件
    ——命令:vim /etc/profile
    ④添加jdk所在目录
    ——命令:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131
    ——命令:export PATH=$PATH:$JAVA_HOME/bin
    ⑤重新执行profile文件
    ——命令:source /etc/profile. /etc/profile
    ⑥检查新安装的jdk
    ——命令:java -version
    显示以下内容jdk就配置完成了,还需要在每个节点配置jdk。
 java version "1.8.0_131"
 Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
 Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
  • 4.修改hdfs-site.xml配置文件
    文件位于:/解压目录/etc/hadoop/hdfs-site.xml

	dfs.nameservices
	mycluster


	dfs.ha.namenodes.mycluster
	nn1,nn2


	dfs.namenode.rpc-address.mycluster.nn1
	node01:8020


	dfs.namenode.rpc-address.mycluster.nn2
	node02:8020


	dfs.namenode.http-address.mycluster.nn1
	node01:50070


	dfs.namenode.http-address.mycluster.nn2
	node02:50070


	dfs.namenode.shared.edits.dir
	qjournal://node01:8485;node02:8485;node03:8485/mycluster


	dfs.journalnode.edits.dir
	/var/sxt/hadoop/ha/jn


	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_rsa


	dfs.ha.automatic-failover.enabled
	true
 


  • 5.修改core-site.xml配置文件
    文件位于:/解压目录/etc/hadoop/core-site.xml

	fs.defaultFS
	hdfs://mycluster


	ha.zookeeper.quorum
	node02:2181,node03:2181,node04:2181


	hadoop.tmp.dir
	/var/abc/hadoop/cluster



  • 6.修改slaves配置文件
    文件位于:/解压目录/etc/hadoop/slaves
    将localhost修改为node02 node03 node04

  • 7.将配置好的安装包分发到其他节点上
    ——命令:

    scp -r hadoop-2.6.5 node02:·pwd·
    scp -r hadoop-2.6.5 node03:·pwd·
    scp -r hadoop-2.6.5 node04:·pwd·

注:安装包目录应该统一

  • 8.搭建Zookeeper集群
    8.1解压
    ——命令:tar zxf zookeeper-3.4.10.tar.gz
    8.2修改zookeeper-3.4.10/conf目录下的llzoo_sample.cfg的名称,改为zoo.cfg
    ——命令:mv zoo_sample.cfg zoo.cfg
    8.3修改zoo.cfg
    ① dataDir=/var/zfg/zookeeper
    ② server.1=node02:2888:3888
    ③ server.2=node03:2888:3888
    ④ server.3=node04:2888:3888

    8.4在dataDir目录下创建一个myid文件,在这个文件中写上当前节点ID号,ID号为server的后缀(1,2,3)
    8.5将配置好的zookeeper安装包拷贝到node03 node04
    ——命令:
scp -r zookeeper-3.4.10 node03:·pwd·
scp -r zookeeper-3.4.10 node04:·pwd·

8.6拷贝完毕后,在各自节点上创建myid号,ID号要依次递增
8.9启动Zookeeper
——命令:zkServer.sh start
查看Zookeeper状态,一个为leader,两个为follower则配置完成
——命令:zkServer.sh status

  • 9.格式化NameNode
    9.1在node01、node02、node03执行如下命令
    ——命令:hadoop-daemon.sh start journalnode
    9.2随机选择一台NameNode执行(node01或node02)
    ——命令:
hdfs namenode -format
hadoop-daemon.sh start namenode

9.3在另外一台NameNode节点执行如下命令
——命令:hdfs namenode -bootstrapStandby

  • 10.启动ZKFC
    ——命令:hdfs zkfc -formatZK

  • **11.关闭所有节点上的进程 **
    ——命令:stop-dfs.sh

  • **12.启动HDFS **
    ——命令:start-dfs.sh

至此高可用完全分布式的HDFS就搭建完成了

未完待续…

你可能感兴趣的:(大数据学习日记)