您的位置:首页 > 大数据 > Hadoop

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

2018-02-02 16:36 423 查看


原理解释://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【通过HADOOPPREFIX【通过 加上环境变量的名字可直接进入到目录下 】

进入hadoop的etc目录下备份文件:[root@node03 etc]# cp -r hadoop hadoop-full

将不带HA的做备份。

<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>node03: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>node03: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://node03:8485;node01:8485;node02: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_dsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: