本文轉自:http://blog.csdn.net/onepiecehuiyu/article/details/45271493
安裝hadoop2.6+HA
- 1.準備一臺CentOS6.4系統
- 2.環境CentOS6.4 共5臺
機器名 ip地址 安裝軟件 運行進程
master1 192.168.3.141 hadoop、Zookeeper、hbase NN、RM、DFSZKFC、journalNode、HMaster、QuorumPeerMain
master2 192.168.3.142 hadoop、Zookeeper、hbase NN、RM、DFSZKFC、journalNode、 HRegionServer、QuorumPeerMain
slave1 192.168.3.143 hadoop、Zookeeper、hbase DN、NM、journalNode、HRegionServer、QuorumPeerMain
slave2 192.168.3.144 hadoop、Zookeeper、hbase DN、NM、journalNode、HRegionServer、QuorumPeerMain
slave3 192.168.3.145 hadoop、Zookeeper、hbase DN、NM、journalNode、HRegionServer、QuorumPeerMain
- 3.此時我們先對第一臺機器做修改,其他的後期克隆該機器即可
- 4.修改/etc/hosts文件
修改/etc/sysconfig/network
- 5.重啓機器
或者
臨時修改hostname
- 6.安裝JDK
將JDK解壓
編輯/etc/profile 添加jdk路徑
保存退出
修改CentOS裏的java優先級
此時JDK已經安裝完成
- 7.解壓hadoop並修改環境變量
- 8.修改配置文件
8.1 修改$HADOOP_HOME/etc/hadoop/slaves文件
加入所有slave節點的hostname
8.2 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件
修改JAVA_HOME路徑
8.3 修改$HADOOP_HOME/etc/hadoop/yarn-env.sh文件
修改JAVA_HOME路徑
8.4 修改HADOOPHOME/etc/hadoop/core−site.xml文件詳見附件8.5修改HADOOP_HOME/etc/hadoop/hdfs-site.xml文件
詳見附件
8.6 修改HADOOPHOME/etc/hadoop/mapred−site.xml文件詳見附件8.7修改HADOOP_HOME/etc/hadoop/yarn-site.xml文件
詳見附件(yarn.resourcemanager.ha.id的屬性值在master2機器中需要更改爲rm2)
8.8 添加$HADOOP_HOME/etc/hadoop/fairscheduler.xml文件
詳見附件
8.9 創建相關文件夾
根據xml配置文件,建立相應的文件夾
此時Hadoop+HA配置文件已經配好,就差ssh免密碼登錄+格式化Hadoop系統。
等我們裝完所有軟件(Zookeeper+hbase),克隆機器後再進行ssh免密碼登錄及Hadoop格式化。克隆後還需要更改每個節點的/etc/sysconfig/network中的hostname,以及更改master2中$HADOOP_HOME/etc/hadoop/yarn-site.xml文件的yarn.resourcemanager.ha.id屬性值爲rm2
安裝Zookeeper3.4.6
- 1.解壓Zookeeper
- 2.Zookeeper環境變量的配置
添加Zookeeper的路徑
- 3.更改配置文件
將conf/zoo_sample.cfg改成conf/zoo.cfg
然後對zoo.cfg進行更改
- 4.在DataDir路徑下創建myid文件
根據配置文件的dataLogDir路徑
創建/soft/zookeeper-3.4.6/var/datalog文件夾
創建/soft/zookeeper-3.4.6/var文件夾
再創建/soft/zookeeper-3.4.6/var/data文件夾
再創建/soft/zookeeper-3.4.6/var/data/myid文件
向其中輸入數字1 (對應zoo.cfg文件server後的數字)
其他節點在克隆後應根據zoo.cfg中對應的值進行更改
安裝Hbase1.0.0
- 1.修改本機配置(這裏慎重,我修改後,重啓linux,出現重複輸入賬戶密碼,我最後通過單用戶登陸linux見配置文件重新修改回來了)
- 2.修改配置文件
conf/hbase-site.xml詳見附件(注意hbase.rootdir的值 用ip地址表示)
根據conf/hbase-site.xml中hbase.tmp.dir值來創建文件夾
- 3.創建連接
- 4.編輯regionserver文件
- 5.覆蓋hbase中lib文件夾下hadoop*.jar文件
(由於後期安裝hbase出錯,我把所有的hadoop下的jar包都導到hbase/lib下了)
如果hbase下的lib文件夾中的zookeeper的jar包與Zookeeper中的jar包也不符,那麼也需要替換。
至此hbase也安裝完了,克隆後需要做的是將集羣節點的時間進行統一。
克隆機器
- 1.此時機器克隆4份。
分別更改其ip地址。圖形界面更改ip操作詳情見附件。
- 2.ssh免密碼登錄
2.1 更改/etc/sysconfig/network文件
2.2生成密鑰
一路回車即可
2.3 複製到公共密鑰中
2.4 將該機器的公共密鑰遠程複製到想遠程登錄的機器中
在提示中輸入yes、密碼
2.5 配置雙向ssh登錄。
此時master1已經可以通過ssh登錄其他機器了,接下來我們配置所有機器相互無密碼登錄。
我們那其中一臺機器slave3舉例,其他機器(master2 slave1 slave2)都執行此操作,這裏我們就不一一寫明。
把slave3密鑰傳到其他所有機器上。
根據提示,輸入yes、密碼
在每一臺機器上(master2 slave1 slave2 slave3),對其他所有機器都執行此操作。
然後在其他機器上將密鑰追加到公鑰文件末尾。
此時就可以雙向無密鑰登錄了。
我們可以查看/root/.ssh/authorized_keys文件,就能發現每臺機器的密鑰。
- 3.更改hadoop配置文件
更改master2中$HADOOP_HOME/etc/hadoop/yarn-site.xml文件中:
Yarn.resourcemanager.ha.id的屬性值爲rm2
- 4.更改Zookeeper文件
更改$ZOOKEEPER_HOME/var/data/myid文件
相應的值根據$ZOOKEEPER_HOME/conf/zoo.cfg中的id來更改
- 5.同步時間
首先我們確立master1爲時間服務器,我們通過配置使其他節點自行與master1進行時間同步。
5.1對master1時間服務器進行操作:
檢查時間服務是否安裝
更改相關配置文件
啓動服務
檢查master1是否和自己同步完成
5.2其他機器相對於master1進行時間同步
當master1的時間服務器啓動3-5分鐘後,我們對其他節點進行與master1的時間同步。
更改/etc/ntp.conf文件配置
將master2的/etc/ntp.conf發送到其他的機器中
在其他節點將時間服務開啓
5.3時間服務設置爲開機啓動
分別在master1 master2 slave1 slave2 slave3執行該命令
5.4 在時間服務器上開放端口
根據ip地址來輸入命令
第一次部署+啓動hadoop+zookeeper+hbase
剛剛安裝完hadoop需要部署,再啓動。以下是第一次所需的執行,以後再啓動就不需要在這麼做了。
- 1.啓動Zookeeper
分別在每個機器上運行命令zkServer.sh start或者在$ZOOKEEPER_HOME/bin目錄下運行./zkServer.sh start命令。然後可以通過命令jps來查看Zookeeper啓動的進程QuorumPeerMain。
可通過zkServer.sh status命令來查看Zookeeper狀態。正常是機器中只有一個leader,其他的都是follow
- 2.格式化ZooKeeper集羣
目的是在ZooKeeper集羣上建立HA的相應節點。
在master1機器上執行命令
他會根據$HADOOP_HOME/etc/hadoop/core-site.xml文件中ha.zookeeper.quorum的值來進行初始化。
3.啓動journalnode進程
在master1節點上執行
或者在每臺機器上執行
slave1 slave2 slave3
推薦第二種方法,第一種方法master1和master2的journalnode無法啓動
啓動後在所有節點上多出JournalNode進程
- 4.格式化namenode
在master1上執行命令
會在mydata文件下創建一些文件夾及文件(name或者data以及journal)
- 5.啓動namenode
在master1上執行命令
在master1上多出進程NameNode
- 6.將剛纔格式化的namenode信息同步到備用namenode上
在master2機器上執行命令
- 7.在master2上啓動namenode
在master2上多出進程NameNode
- 8.啓動所有datanode
在master1上執行命令
執行後在datanode節點上顯示的進程datanode
- 9.啓動yarn
在master1上執行命令
在master1上多出ResourceManager進程,在slave1 slave2 slave3上多出NodeManager進程
- 10.啓動ZKFC
在master1和master2上啓動zkfc
- 11.Hadoop啓動成功
下圖是兩個啓動後的master節點
- 12.啓動hbase
在master1上執行命令
第n次啓動
- 1.對於HA,要先啓動Zookeeper
zkServer.sh start (每個節點)
- 2.啓動hadoop
start-dfs.sh start-yarn.sh (master1節點)
- 3.啓動hbase
start-hbase.sh (master1節點)