HDFS高可用集群的搭建

HDFS Hadoop Linux MapReduce 陸小鳳一笑 陸小鳳一笑 2017-08-27

namenode節點:192.168.109.130-131

datanode節點:192.168.109.130-133

只部署hdfs集群,不啟動mapreduce和yarn;

相關依賴

1.zookeeper

2.psmisc(最小化安裝centos的時候,沒有fuser這個命令,導致無法fence。yum install psmisc就行了http://www.dataguru.cn/thread-510511-1-1.html)

3.集群名稱不要有下劃線

配置文件:hadoop-env.sh

#export HADOOP_PID_DIR=${HADOOP_PID_DIR}

export HADOOP_PID_DIR=/data/data/hdfs/tmp(如果使用默認的話很有可能關不了hadoop集群,因為hadoop進程的pid文件時存儲在/tmp下面的,這個目錄是Linux下的臨時目錄會定期清理)

配置文件:core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://ns</value>

</property>

<!--指定hadoop數據臨時存放目錄-->

<property>

<name>hadoop.tmp.dir</name>

<value>/data/data/temp</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>4096</value>

</property>

<!--指定zookeeper地址-->

<property>

<name>ha.zookeeper.quorum</name>

<value>192.168.109.130:2181,192.168.109.131:2181,192.168.109.132:2181</value>

</property>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

配置文件:hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice為ns,需要和core-site.xml中的保持一致-->

<property>

<name>dfs.nameservices</name>

<value>ns</value>

</property>

<!--ns下面有兩個NameNode,分別是nn1,nn2-->

<property>

<name>dfs.ha.namenodes.ns</name>

<value>nn1,nn2</value>

</property>

<!--nn1的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn1</name>

<value>192.168.109.130:9000</value>

</property>

<!--nn1的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn1</name>

<value>192.168.109.130:50070</value>

</property>

<!--nn2的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn2</name>

<value>192.168.109.131:9000</value>

</property>

<!--nn2的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn2</name>

<value>192.168.109.131:50070</value>

</property>

<!--指定NameNode的元數據在JournalNode上的存放位置-->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://192.168.109.130:8485;192.168.109.131:8485;192.168.109.132:8485/ns</value>

</property>

<!--指定JournalNode在本地磁盤存放數據的位置-->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/data/data/journal</value>

</property>

<!--開啟NameNode故障時自動切換-->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!--配置失敗自動切換實現方式-->

<property>

<name>dfs.client.failover.proxy.provider.ns</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!--配置隔離機制-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>sshfence</value>

</property>

<!--使用隔離機制時需要ssh免登陸-->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/root/.ssh/id_rsa</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///data/data/hadoop</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///data/logs/hadoop</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<!--在NN和DN上開啟WebHDFS(REST?API)功能,不是必須-->

<!--

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

-->

<property>

<name>dfs.datanode.address</name>

<value>0.0.0.0:31010</value>

</property>

<!-- 關閉權限驗證 -->

<property>

<name>dfs.permissions.enabled</name>

<value>false</value>

</property>

</configuration>

hadoop-env.sh

配置JAVA_HOME

配置slaves文件:

所有節點的主機名或者IP

配置master文件:

只在namenode節點配置主機名或者IP

第一次啟動集群順序:

1.在各個節點上啟動journalnode命令:./sbin/hadoop-daemon.sh start journalnode

2.格式化zk目錄:./bin/hdfs zkfc -formatZK

3.格式化第一個namenode: ./bin/hdfs namenode -format

4.在第一個namenode節點上啟動namenode: ./sbin/hadoop-daemon.sh start namenode

5.將第一個namenode上的namenode目錄同步至第二個namenode上: ./bin/hdfs namenode -bootstrapStandby(這條命令是在第二個namenode節點上執行的)

6.啟動第二個namenode節點:./sbin/hadoop-daemon.sh start namenode

7.在每個namenode上啟動zkfc: ./sbin/hadoop-daemon.sh start zkfc

8.啟動datanode節點: ./sbin/hadoop-daemon.sh start datanode

關閉集群的時候只需要在namenode節點上執行./sbin/stop-dfs.sh即可;

對應進程名字:

#jps

NameNode

Jps

DataNode

JournalNode

DFSZKFailoverController

QuorumPeerMain

相關推薦

推薦中...