Hadoop2.6..0 HA高可靠性集羣搭建(Hadoop+Zookeeper)
1. 關閉防火牆
vi /etc/selinux/config
在 SELINUX=enforcing 前面加個#號註釋掉它
#SELINUX=enforcing
然後新加一行SELINUX=disabled
保存,退出,重啓系統,就可以徹底關閉firewall了。
2. 修改IP
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#編輯配置文件,添加修改以下內容
BOOTPROTO=static #啓用靜態IP地址
ONBOOT=yes #開啓自動啓用網絡連接
IPADDR=192.168.1.100 #設置IP地址
NETMASK=255.255.255.0 #設置子網掩碼
GATEWAY=192.168.1.1 #設置網關
==重啓網絡連接
service network restart
3. 設置機器hostname別名
# 當前ssh窗口即可生效
hostname master
# 每次重啓以後均生效
vi /etc/sysconfig/network
HOSTNAME=master
4.Hosts映射關係
三臺機器上面分別都執行操作 vi /etc/hosts 添加如下內容
192.168.1.100 master
192.168.1.101 slave01
192.168.1.102 slave02
5.SSH免密登錄設置
生成公鑰和私鑰
ssh-keygen -t rsa
導入公鑰到認證文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub xxx@host:/home/xxx/id_rsa.pub
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
更改權限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
6.安裝jdk
1、解壓 rpm -ivh jdk-8u111-linux-x64.rpm
7.安裝Hadoop
這是下載後的hadoop-2.6.0.tar.gz壓縮包,
7.1、解壓 tar -xzvf hadoop-2.6.0.tar.gz
7.2、配置hadoop
主要涉及的配置文件有7個
hadoop-env.sh
yarn-env.sh
slaves
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
7.3、配置 hadoop-env.sh文件-->修改JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_111
7.4、配置 yarn-env.sh 文件-->>修改JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_111
7.5、配置slaves文件-->>增加slave節點
master
salve1
salve2
7.6、配置 core-site.xml文件-->>增加hadoop核心配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,salve1:2181,salve2:2181</value>
</property>
7.7、配置 hdfs-site.xml 文件-->>增加hdfs配置信息(namenode、datanode端口和目錄位置)
<configuration>
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>master:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>salve1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>salve1:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;salve1:8485/ns</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/journal</value>
</property>
<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>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/centos/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
7.8、配置 mapred-site.xml 文件-->>增加mapreduce配置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
7.9、配置 yarn-site.xml 文件-->>增加yarn功能
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!--【自定義ResourceManager的地址,還是單點】-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
7.10、將配置好的hadoop文件copy到另一臺slave機器上
scp -r hadoop-2.6.0/ root@salve1-hadoop:~/opt/
scp -r hadoop-2.6.0/ root@salve2-hadoop:~/opt/
8.Zookeeper安裝過程:
8.1、下載解壓zookeeper
下載地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/
解壓到指定目錄:這裏目錄:/opt
在hadoop目錄中創建app目錄。把文件解壓到hadoop的app目錄中,是爲了以後整個項目可以整體移植。包括後面,我們會安裝HBase、Hive等軟件,都是解壓到app的目錄中。
8.2、修改配置文件
8.2.1進入zookeeper中conf目錄:
拷貝命名zoo_sample.cfg 爲zoo.cfg。我們一般不修改配置文件默認的示例文件,修改賦值其子文件。
編輯zoo.cfg
拷貝命名zoo_sample.cfg 爲zoo.cfg。我們一般不修改配置文件默認的示例文件,修改賦值其子文件。
編輯zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/tom/yarn/hadoop-2.5.0/app/zookeeper-3.4.6/zkdata dataLogDir=/home/tom/yarn/hadoop-2.5.0/app/zookeeper-3.4.6/zkdatalog clientPort=2181 server.1=hadoop1:2888:3888 server.2=hadoop2:2888:3888 server.3=hadoop3:2888:3888 server.4=hadoop4:2888:3888 server.5=hadoop5:2888:3888
8.2.2創建zkdata和zkdatalog兩個文件夾
8.2.3添加到環境變量
9集羣的啓動
9.1 啓動zookeeper集羣
分別在master、salve1、salve2上執行如下命令啓動zookeeper集羣;
sh zkServer.sh start
驗證集羣zookeeper集羣是否啓動,分別在master、salve1、salve2上執行如下命令驗證 zookeeper集羣是否啓動,集羣啓動成功,有兩個follower節點跟一個leader節點;
sh zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: follower
9.2 啓動journalnode集羣
在master上執行如下命令完成JournalNode集羣的啓動
sbin/hadoop-daemons.sh start journalnode
執行jps命令,可以查看到JournalNode的java進程pid
9.3 格式化zkfc,讓在zookeeper中生成ha節點
在mast1上執行如下命令,完成格式化
hdfs zkfc –formatZK
(注意,這條命令最好手動輸入,直接copy執行有可能會有問題,當時部署時我是蛋疼了許久)
格式成功後,查看zookeeper中可以看到
[zk: localhost:2181(CONNECTED) 1] ls /hadoop-ha
[ns]
9.4 格式化hdfs
hadoop namenode –format
(注意,這條命令最好手動輸入,直接copy執行有可能會有問題)
9.5 啓動NameNode
首先在master上啓動active節點,在master上執行如下命令
sbin/hadoop-daemon.sh start namenode
在salve1上同步namenode的數據,同時啓動standby的namenod,命令如下
#把NameNode的數據同步到mast2上
hdfs namenode –bootstrapStandby
#啓動mast2上的namenode作爲standby
sbin/hadoop-daemon.sh start namenode
9.6 啓動啓動datanode
在master上執行如下命令
sbin/hadoop-daemons.sh start datanode
9.7 啓動year
在作爲資源管理器上的機器上啓動,我這裏是mast3,執行如下命令完成year的啓動
sbin/start-yarn.sh
9.8 啓動ZKFC
在master上執行如下命令,完成ZKFC的啓動
sbin/hadoop-daemons.sh start zkfc
全部啓動完後分別在master,salve1,salve2上執行jps是可以看到下面這些進程的
10.測試HA的高可用性
啓動後master的namenode和salve1的namenode如下所示:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.