HadoopクラスタのHA高可用性アーキテクチャの構築(超詳細ステップ+検証済み)

11301 ワード

一、クラスタの計画
Zookeeperクラスタ:
192.168.182.12 (bigdata12)
192.168.182.13 (bigdata13)
192.168.182.14 (bigdata14)  

Hadoopクラスタ:
192.168.182.12 (bigdata12)   NameNode1         ResourceManager1        Journalnode
192.168.182.13 (bigdata13)   NameNode2       ResourceManager2       Journalnode
192.168.182.14 (bigdata14)   DataNode1      NodeManager1
192.168.182.15 (bigdata15)   DataNode2      NodeManager2

二、準備
1、JDKの取り付け:各機器に取り付けが必要
私がここで使っているのはjdk-8 u 152-linux-x 64です.tar.gzインストールパッケージ
解凍JDK:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training

2、環境変数の構成:
1)java環境変数の構成:
vi ~/.bash_profile
export JAVA_HOME=/root/training/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

2)有効な環境変数:
source ~/.bash_profile

3)インストールが成功したかどうかを確認する:
java -version

3、IPアドレスとホスト名のマッピング関係を配置する原因:SSH呼び出し便利Ping通
vi /etc/hosts

入力:
 192.168.182.13 bigdata13 
 192.168.182.14 bigdata14
 192.168.182.15 bigdata15

4、パスワードフリーログインの設定
1)各機器に公開鍵と秘密鍵を生成する
ssh-keygen -t rsa

意味:sshプロトコルによって非対称暗号化アルゴリズムのrsaアルゴリズムを用いて鍵ペアのセットを生成する:公開鍵と秘密鍵
2)各機器で自分の公開鍵を他の機器にコピーする
注意:次の4つのコマンドは、各マシンで実行する必要があります.
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata15

三、Zookeeperクラスタのインストール(bigdata 12にインストール)
プライマリノード(bigdata 12)へのZooKeeperのインストールと構成
私がここで使っているのはzookeeper-3.4.10です.tar.gzインストール
1、解凍Zookeeper:
tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training

2、環境変数の構成と有効化:
export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source ~/.bash_profile

3、zooを修正する.cfgプロファイル:
vi /root/training/zookeeper-3.4.10/conf/zoo.cfg

変更:
dataDir=/root/training/zookeeper-3.4.10/tmp

最後の行に追加:
server.1=bigdata12:2888:3888
server.2=bigdata13:2888:3888
server.3=bigdata14:2888:3888

4、myidプロファイルの修正
/root/training/zookeeeper-3.4.10/tmpディレクトリの下にmyidの空のファイルを作成します.
mkdir /root/training/zookeeper-3.4.10/tmp/myid

echo 1 > /root/training/zookeeper-3.4.10/tmp/myid

5、構成されたzookeeperを他のノードにコピーし、それぞれのmyidファイルを修正する
scp -r /root/training/zookeeper-3.4.10/ bigdata13:/root/training
scp -r /root/training/zookeeper-3.4.10/ bigdata14:/root/training

bigdata 13とbigdata 14の2台のマシンに入り、myidファイルを見つけ、そのうちの1をそれぞれ2と3に変更します.
vi myid

bigdata 13に入力:2 bigdata 14に入力:3
四、Hadoopクラスタのインストール(bigdata 12にインストール)
1、hadoop-envを修正する.sh
export JAVA_HOME=/root/training/jdk1.8.0_144

2、core-siteを修正する.xml



fs.defaultFS
hdfs://ns1



hadoop.tmp.dir
/root/training/hadoop-2.7.3/tmp



ha.zookeeper.quorum
bigdata12:2181,bigdata13:2181,bigdata14:2181



3、hdfs-siteを修正する.xml(このnameserviceにいくつかのnamenodeがあるように構成)
 


dfs.nameservices
ns1




dfs.ha.namenodes.ns1
nn1,nn2




dfs.namenode.rpc-address.ns1.nn1
bigdata12:9000




dfs.namenode.http-address.ns1.nn1
bigdata12:50070




dfs.namenode.rpc-address.ns1.nn2
bigdata13:9000




dfs.namenode.http-address.ns1.nn2
bigdata13:50070




dfs.namenode.shared.edits.dir
qjournal://bigdata12:8485;bigdata13:8485;/ns1




dfs.journalnode.edits.dir
/root/training/hadoop-2.7.3/journal




dfs.ha.automatic-failover.enabled
true




dfs.client.failover.proxy.provider.ns1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider




dfs.ha.fencing.methods

sshfence
shell(/bin/true)





dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa




dfs.ha.fencing.ssh.connect-timeout
30000



4、mapred-siteを修正する.xml


mapreduce.framework.name
yarn



YarnのHAの設定
5、yarn-siteを修正する.xml



yarn.resourcemanager.ha.enabled
true




yarn.resourcemanager.cluster-id
yrc




yarn.resourcemanager.ha.rm-ids
rm1,rm2




yarn.resourcemanager.hostname.rm1
bigdata12


yarn.resourcemanager.hostname.rm2
bigdata13




yarn.resourcemanager.zk-address
bigdata12:2181,bigdata13:2181,bigdata14:2181



yarn.nodemanager.aux-services
mapreduce_shuffle



6、slavesスレーブノードのアドレスを修正する
bigdata14
bigdata15

7、構成されたhadoopを他のノードにコピーする
scp -r /root/training/hadoop-2.7.3/ root@bigdata13:/root/training/
scp -r /root/training/hadoop-2.7.3/ root@bigdata14:/root/training/
scp -r /root/training/hadoop-2.7.3/ root@bigdata15:/root/training/

五、Zookeeperクラスタの起動
各マシンに入力:
zkServer.sh start

六、journalnodeを起動する
bigdata 12とbigdata 13の2つのノードでjournalnodeノードを起動します.
hadoop-daemon.sh start journalnode

七、HDFSとZookeeperのフォーマット(bigdata 12で実行)
HDFSのフォーマット:
hdfs namenode -format

/root/training/hadoop-2.7.3/tmpをbigdata 13の/root/training/hadoop-2.7.3/tmpにコピー
scp -r dfs/ root@bigdata13:/root/training/hadoop-2.7.3/tmp

zookeeperのフォーマット:
hdfs zkfc -formatZK

ログ:INFO ha.ActiveStandbyElector: Successfully created/hadoop-ha/ns1 in ZK.
以上のログは、Zookeeperのファイルシステムに/hadoop-ha/ns 1のサブディレクトリが作成され、Namenodeの構造情報を保存していることを示しています.
八、Hadoopクラスタの起動(bigdata 12で実行)
Hadoopクラスタを起動するコマンド:
start-all.sh

  :
Starting namenodes on [bigdata12 bigdata13]
bigdata12: starting namenode, logging to /root/training/hadoop-2.4.1/logs/hadoop-root-namenode-hadoop113.out
bigdata13: starting namenode, logging to /root/training/hadoop-2.4.1/logs/hadoop-root-namenode-hadoop112.out
bigdata14: starting datanode, logging to /root/training/hadoop-2.4.1/logs/hadoop-root-datanode-hadoop115.out
bigdata15: starting datanode, logging to /root/training/hadoop-2.4.1/logs/hadoop-root-datanode-hadoop114.out
bigdata13: starting zkfc, logging to /root/training/hadoop-2.7.3/logs/hadoop-root-zkfc-       bigdata13.out
bigdata12: starting zkfc, logging to /root/training/hadoop-2.7.3/logs/hadoop-root-zkfc-bigdata12.out

bigdata 13でResourceManagerを手動でYarnの代替マスターノードとして起動します.
yarn-daemon.sh start resourcemanager

これで,HadoopクラスタのHAアーキテクチャの構築に成功した.
本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.