HA-高可用HDFS集群搭建步骤
首先。集群规划
| NN-1 | NN-2 | DN | ZK | ZKFC | JNN | |
|---|---|---|---|---|---|---|
| node01 | ✔ | ✔ | ✔ | |||
| node02 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| node03 | ✔ | ✔ | ✔ | |||
| node04 | ✔ | ✔ |
1. 时间同步
- 各个节点安装ntp命令
yum install ntp - 上网查找最新的时间服务器
ntp1.aliyun.com - 同步时间
ntpdate ntp1.aliyun.com
2.配置免密登录
node01->node01
node01->node02
node01->node03
node01->node04
node02->node01
在node02节点执行,将node01的公钥加入到其他节点的白名单中
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
3.所有节点配置jdk
linux安装jdk完整步骤
配置jdk:
打开解压后文件下,如下目录,依次执行
[root@node01 ~]# cd /usr/local/hadoop-2.6.5/etc/hadoop/
[root@node02 hadoop]# vim hadoop-env.sh
// 上一步打开hadoop-env.sh后将JAVA-HOME等号后面的修改为自己jdk安装目录
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151/
4.修改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>
5.修改core-site.xml配置文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node02:2181,node03: 2181,node04:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/abc/hadoop/cluster</value>
</property>
6.修改slaves配置文件
// 注意不要写成一行,每个节点之间要换行
node02
node03
node04
7.将配置好的安装包分发到其他节点
在node01执行三次(分别执行root@node02,root@node03,root@node04)
scp -r hadoop-2.6.5 root@node02:/opt/software/hadoop
或
scp -r hadoop-2.6.5root@node02:`pwd`
8.搭建zookeeper集群
- 下载zookeeper安装包
- 解压安装包到指定目录
[root@node02 hdfs]$ tar -zvxf zookeeper-3.4.8.tar.gz -C /usr/local/
- 修改配置
[root@node02 zookeeper-3.4.10]# cp conf/zoo_sample.cfg conf/zoo.cfg
修改conf目录下的zoo.cfg
[root@node02 zookeeper-3.4.10]# vim zoo.cfg
进入后
修改dataDir为dataDir=/var/zfg/zookeeper
最后添加以下
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
- 创建myid文件
在dataDir所指定的目录下创一个名为myid的文件,文件内容为server点后面的数字。
在/var/zfg/zookeeper/下创建myid文件,文件内容为1 - 将配置好的zookeeper发送给其他节点node03,node04
[root@wh2 local]# scp -r zookeeper-3.4.8@node03:`pwd`
- 修改各个节点的myid,依次递增,wh3为2,wh4为3
- 启动zookeeper (node2,node3,node4)分别执行
[root@node02 zookeeper-3.4.10]# bin/zkServer.sh start
执行后查看状态
[root@node02 zookeeper-3.4.10]# bin/zkServer.sh status
三台中有一个leader,两个follower说明zookeeper集群搭建成功
若未显示正常,一般查看dataDir配置是否正常,myid是否修改成功
9.格式化NameNode(创建目录以及文件)
- 在node01、node02、node03分别执行如下命令
hadoop-daemon.sh start journalnode
- 随机选择一台NameNode执行:
hdfs namenode -format
hadoop-daemon.sh start namenode
- 另外一台NameNode节点执行:
hdfs namenode -bootstrapStandby
10.格式化zookeeper
hdfs zkfc -formatZK
11.关闭所有节点上的进程
stop-dfs.sh
12.启动HDFS
start-dfs.sh
13.验证ha-hdfs是否搭建成功
在浏览器输入nod01,node02的ip地址加默认端口50070分别查看是否成功
如192.168.23.128:50070显示active
192.168.23.129:50070,显示standby
1963



被折叠的 条评论
为什么被折叠?



