【HDFS篇】完全分布式基于HA搭建HDFS集群(ZK+ZKFC+JN)

【HDFS篇】完全分布式基于HA搭建HDFS集群(ZK+ZKFC+JN)_第1张图片
原理解释://TODO:

搭建过程记录:
主要2大步,搭建zookeeper和配置HDFS
1.先搭建zookeeper
配置3台机器,先配置好一台然后分发到不同的机器上。
解压完先配环境变量。
vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_PREFIX=/opt/jw/hadoop-2.6.5
export ZOOKEEPER_PREFIX=/opt/jw/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$ZOOKEEPER_PREFIX/bin

重新加载配置文件:. /etc/profile
修改zk的配置文件:cd /conf/
备注:里面的zoo_sample.cfg 此配置名称是不对的,修改其为zoo.cfg 记得备份
修改此处:dataDir=/tmp/zookeeper 此处的临时目录是可能被删除。修改为新建的
dataDir=/var/jw/zk
最后行追加:
server.1=192.168.159.38:2888:3888
server.2=192.168.159.36:2888:3888
server.3=192.168.159.37:2888:3888
然后在var/jw/zk下写入id。
[root@node03 zk]# echo 1 > myid 然后在对应的机器上配置myid为不同的值。

然后把安装包和profile文件都分发到不同的机器上。然后重新加载profile文件。
启动zk使用:zkServer.sh start 提示信息为Starting zookeeper … STARTED
但是查看 zkServer.sh status 发现: It is probably not running.
通过查看端口:netstat -natp | grep 2181
tcp 0 0 :::2181 :::* LISTEN 4866/java
发现是启动的,只是状态不可用而已。因为此集群只有一个角色,其势力范围没有过半,所以不可以用,再开启其他的服务器上的zk。启动完另一个zk[ip=36]后只有成功了,此时会拼一把大的获胜,既此服务就是lader。上一个[ip=38]则是follower。其他启动的就是follower。

2.hadoop配置
cd HADOOPPREFIX H A D O O P P R E F I X 【 通 过 加上环境变量的名字可直接进入到目录下 】
进入hadoop的etc目录下备份文件:[root@node03 etc]# cp -r hadoop hadoop-full
将不带HA的做备份。

<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>node03:8020value>
property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2name>
  <value>node02:8020value>
property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1name>
  <value>node03:50070value>
property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2name>
  <value>node02:50070value>
property>
<property>
  <name>dfs.namenode.shared.edits.dirname>
  <value>qjournal://node03:8485;node01:8485;node02:8485/myclustervalue>
property>

<property>
  <name>dfs.journalnode.edits.dirname>
  <value>/var/sxt/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_dsavalue>
property>
<property>
   <name>dfs.ha.automatic-failover.enabledname>
   <value>truevalue>
 property>

你可能感兴趣的:(【HDFS篇】完全分布式基于HA搭建HDFS集群(ZK+ZKFC+JN))