高可用HDFS完全分布式搭建

下面介绍高可用HDFS完全分布式的搭建步骤:

第一步:在VmVare中安装四台CentOs6.5

主机名分别为node1,node2,node3,node4,(这样配置主机名是为了搭建的时候方便和节点关联)。

第二步:分别配置这四台主机的网络。

           修改/etc/sysconfig/network-scripts/下的ifcfg-eth0文件,使ONBOOT=yes,BOOTPROTO=none,再添加
以下文本:

IPADDR=192.168.42.128
PREFIX=24
GATEWAY=192.168.42.2
DNS1=8.8.8.8

指令列表

    1、cd /etc/sysconfig/network-scripts/  
    2、vim ifcfg-eth0

截图

高可用HDFS完全分布式搭建_第1张图片
          修改后的文本内容,其中IPADDR是虚拟的IP地址,GATEWAY是把虚拟机的IP地址最后一位改成2

高可用HDFS完全分布式搭建_第2张图片
          DNS1可以在宿主机的IP4地址中查看,如下图,四台主机的网络配置方法一致
高可用HDFS完全分布式搭建_第3张图片

第三步:配置四台主机的jdk

          首先我们把自带的jdk卸载:
          1)查看当前Linux系统是否已经安装java
          输入 rpm -qa | grep java
在这里插入图片描述
          2)卸载两个openJDK
          输入rpm -e --nodeps 要卸载的软件
在这里插入图片描述
          3)上传jdk到linux
          4)解压jdk到/usr/local下 tar –xvf jdk-8u121-linux-x64.tar.gz –C /usr/local
          5)配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去

		export JAVA_HOME=/usr/local/jdk1.8.0_121
		export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
		export PATH=$PATH:$JAVA_HOME/bin:$PATH

          6) 检查jdk是否安装成功:java - version
在这里插入图片描述
           四台主机配置步骤一致

第四步:修改各个主机的hosts文件

          1)修改/etc/hosts文件:vim /etc/hosts
高可用HDFS完全分布式搭建_第4张图片

第五步:同步各个主机的时间

          1)各个节点(节点即主机)安装ntp命令:yum install ntp
          2)同步时间:ntpdate ntp1.aliyun.com
          3)可以使用date命令查看时间是否同步

第六步:配置免密登录

          免密示意图:

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

          1)所有节点执行 ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
           步骤都一样,这里仅贴出node1操作的截图
高可用HDFS完全分布式搭建_第5张图片
          2)在node1节点执行,将node1的公钥加入到其他节点的白名单中

	ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
	ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
	ssh-copy-id -i ~/.ssh/id_rsa.pub root@node3
	ssh-copy-id -i ~/.ssh/id_rsa.pub root@node4
	步骤都一样,这里仅贴出node1操作的截图

高可用HDFS完全分布式搭建_第6张图片
          3)在node2节点执行:ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1,将node1的公钥加入到其他节点的白名单中,截图和上图差不多

第七步:上传hadoop-2.6.5.tar.gz并修改配置文件

1)首先将hadoop-2.6.5.tar.gz上传到/home目录下面,然后解压到/opt/software/hadoop文件夹下,hadoop文件夹解压前创建好
高可用HDFS完全分布式搭建_第7张图片

2)解压完成后修改/hadoop-2.6.5/etc/hadoop下的hdfs-env.sh配置文件,添加JAVA_HOME环境变量
高可用HDFS完全分布式搭建_第8张图片

3)修改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

高可用HDFS完全分布式搭建_第9张图片

4)修改core-site.xml配置文件,在中添加以下属性:


   fs.defaultFS
 hdfs://mycluster


 ha.zookeeper.quorum
   node2:2181,node3: 2181,node4:2181

高可用HDFS完全分布式搭建_第10张图片

5)修改slaves配置文件:
高可用HDFS完全分布式搭建_第11张图片
6)将配置好的HDFS安装包拷贝到node2 node3 node4
高可用HDFS完全分布式搭建_第12张图片
7)搭建zookeeper集群并启动
          将zookeeper-3.4.10上传到node2的/home目录下,解压到/opt/software/zookeeper/下
在这里插入图片描述
          修改conf目录下的zoo_sample.cfg的名称,改为zoo.cfg
高可用HDFS完全分布式搭建_第13张图片
           修改zoo.cfg

 dataDir=/var/zfg/zookeeper
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888

dataDir是用来放置zookeeper产生的临时文件,目录可以随便指定
高可用HDFS完全分布式搭建_第14张图片
在dataDir目录下创建一个myid文件,在这个文件中写上当前节点ID号
在这里插入图片描述在这里插入图片描述
将配置好的zookeeper安装包拷贝到node3 node4
在这里插入图片描述
6)拷贝完毕后,在各自节点上创建myid号(在/var/mzj/zookeeper/创建),ID号要依次递增
在这里插入图片描述
在这里插入图片描述

7)将hadoop的指令和zookeeper的指令都配置到系统变量中,node1不用配置zookeeper指令,其他节点都要,修改/etc/profile文件,并令其生效:source /etc/profile,如下图所示:
高可用HDFS完全分布式搭建_第15张图片
分别在node2,node3,node4启动zookeeper
高可用HDFS完全分布式搭建_第16张图片
8) 格式化NameNode(创建目录以及文件)
          ①在node1、node2、node3分别执行如下命令

	hadoop-daemon.sh start journalnode

在这里插入图片描述

          ②随机选择一台NameNode执行:

	hdfs namenode -format
	hadoop-daemon.sh start namenode

高可用HDFS完全分布式搭建_第17张图片
          ③另外一台NameNode节点执行:

	hdfs namenode  -bootstrapStandby

高可用HDFS完全分布式搭建_第18张图片
在两个namenode节点分别执行

	hdfs zkfc -formatZK

在这里插入图片描述
关闭所有节点上的进程

	stop-dfs.sh

高可用HDFS完全分布式搭建_第19张图片
启动HDFS

	start-dfs.sh

启动成功在hdfs上创建一个目录:
高可用HDFS完全分布式搭建_第20张图片

在浏览器输入node1:50070查看刚才创建的目录
高可用HDFS完全分布式搭建_第21张图片

到此,高可用HDFS搭建成功

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