HDFS高可用完全分布式集群搭建及遇到的问题

本文主要介绍了高可用完全分布式的搭建步骤以及我在搭建集群时遇到的问题和解决的方法。下面我来介绍一下搭建高可用完全分布式的步骤

首先进行集群规划,我用的是四台节点进行操作,规划如下:

NN-1NN-2DNZKZKFCJNN
node01***
node02*****
node03***
node04**
详细搭建步骤

1、配置免密登录:
在以下节点之间配置免密登录
node01->node01 node01->node02 node01->node03 node01->node04
node02->node01
(1)所有节点执行
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
(2)在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

(3)在node02节点执行,将node01的公钥加入到其他节点的白名单中

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

2、所有节点配置jdk
在/opt下新建software(mkdir software),新建jdk(mkdir jdk)上传jdk压缩包,解压

tar xzvf ***

配置环境变量:

vim /etc/profile

在最后添加(注意路径):

export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=PATH: PATH:PATH:JAVA_HOME/bin

保存后

 source /etc/profile

3、修改hadoop配置文件
上传hadoop-2.6.5到 opt/software/hadoop 。解压文件进入到hadoop-2.6.5/etc/hadoop下,修改hdfs-site.xml ,加入如下代码
vim hdfs-site.xml

	<property>
 		    <name>dfs.nameservices</name>
 		    <value>mycluster</value>
</property>
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>node01:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>node02:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>node01:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>node02:50070</value>
</property>
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
</property>
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/var/sxt/hadoop/ha/jn</value>
</property>
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>  	<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</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>

修改core-site.xml

   <name>fs.defaultFS</name>
   <value>hdfs://mycluster</value>
</property>
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node02:2181,node03: 2181	,node04:2181</value>
</property>

修改slaves配置文件
修改为:node02
node03
node04

4、将配置好的HDFS安装包拷贝到node02 node03 node04
5、在每个节点配置 hadoop环境变量

vim /etc/profile

在 export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151下面加

export HADOOP_HOME=/opt/software/hadoop/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

6、格式化NameNode(创建目录以及文件)
(1)在node01、node02、node03分别执行如下命令

hadoop-daemon.sh start journalnode

(2)随机选择一台NameNode执行:

hdfs namenode -format
   hadoop-daemon.sh start namenode

(3)另外一台NameNode节点执行:

hdfs namenode  -bootstrapStandby

7、搭建zookeeper集群:
(1)解压
(2)修改conf目录下的zoo_sample.cfg的名称,改为zoo.cfg

mv zoo_sample.cfg zoo.cfg

(3)修改zoo.cfg
dataDir=/var/zfg/zookeeper

server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888

(4)在dataDir目录下创建一个myid文件,在这个文件中写上当前节点ID号
(5)将配置好的zookeeper安装包拷贝到node03 node04
(6)拷贝完毕后,在各自节点上创建myid号,ID号要依次递增(1.2.3)
(7)进入到bin目录下,执行

./zkServer.sh start

(8)格式化
hdfs zkfc -formatZK
(9)关闭所有节点上的进程
stop-dfs.sh
(10)启动HDFS
start-dfs.sh

搭建环境中遇到的问题:
1、防火墙问题:之前一定要关闭防火墙。
2、将配置好的HDFS拷贝到其他节点时注意路径问题
3、忘记修改/etc/hosts内,其他节点的ip和对应节点名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值