搭建HDFS的HA環境(HBase安裝及配置,啟動)
1、在軟件包所在目錄解壓Hbase壓縮包
[root@win1 soft]# tar -zxvf hbase-1.3.2-bin.tar.gz
[root@win1 soft]# ls
hadoop-2.7.7 ??????hbase-1.3.2??????????jdk1.8.0_161 ???????????zookeeper-3.4.12
hadoop-2.7.7.tar.gz ?hbase-1.3.2-bin.tar.gz ?jdk-8u161-linux-x64.tar.gz ?zookeeper-3.4.12.tar.gz
把解壓后的hbase-1.3.2傳到2和3
[root@win1 conf]# scp -pr /hadoop/soft/hbase-1.3.2?win2:/hadoop/soft
[root@win1 conf]# scp -pr /hadoop/soft/hbase-1.3.2?win3:/hadoop/soft
編輯環境變量/root/.bash_profile
[root@win1 conf]# vi /root/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=/hadoop/soft/jdk1.8.0_161
ZK_HOME=/hadoop/soft/zookeeper-3.4.12
HADOOP_HOME=/hadoop/soft/hadoop-2.7.7
HBASE_HOME=/hadoop/soft/hbase-1.3.2
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
CLASSPATH=$JAVA_HOME/lib:$HADOOP_HOME/lib:$HBASE_HOME/lib
export PATH CLASSPATH
編輯完成后記得使用source /root/.bash_profile把環境變量加載到內存!
命令行輸入start-h能夠TAB出start-hbase.sh 即為編輯成功,如下↓
[root@win1 conf]# start-hbase.sh
把配置好的環境變量傳到2和3
注意:Hbase安裝需要修改hbase-env.sh、hbase-site.xml、regionservers 配置文件,(默認沒有backup_masters,需要自己創建
具體如下↓
3、修改hbase-env.sh配置文件
A、[root@win1 conf]# vi hbase-env.sh 編輯修改hbase-env.sh配置文件
(修改jdk的位置,由于使用的jdk1.8,需要注釋PerSize,由于Hbase默認使用自帶的zookeeper,在這里我們需要啟用外部zookeeper,需要將HBASE_MANAGES_ZK設置為false)
export JAVA_HOME=/hadoop/soft/jdk1.8.0_161?如下圖↓
B、注釋PerSize 如下圖↓
#?export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
#?export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
修改export HBASE_PID_DIR路徑,且需要在hbase-1.3.2下創建pids文件夾
export HBASE_PID_DIR=/hadoop/soft/hbase-1.3.2/pids
把HBASE_MANAGES_ZK設置為false 具體如下圖↓
export HBASE_MANAGES_ZK=false
4、編輯hbase-site.sh配置文件,最少配置以下內容↓
[root@win1 conf]# vi hbase-site.xml
編輯regionservers配置文件
列出你希望運行的全部HRegionServer,一行寫一個主機名(就像Hadoop里的slaves一樣)。列在這里的server會隨著集群的啟動而啟動,集群的停止而停止。
[root@win1 conf]# vi regionservers
win1
win2
win3
6、創建并編輯backup-masters,里面指定備份的Hmaster
[root@win1 conf]# vi backup-masters
win2
由于Hbase依賴于hdfs,為保證hbase的副本數和hdfs一致,需要集群運行hdfs-site.xml復制到habse的conf目錄下。結果如下↓
[root@win1 conf]# cp /hadoop/soft/hadoop-2.7.7/etc/hadoop/hdfs-site.xml (空格)/hadoop/soft/hbase-1.3.2/conf/
二、Hadoop啟動
以下配置需保證前面配置無誤,且需要JN、ZK、都已啟動且環境變量正確無誤,使用jps顯示以下信息:↓
[root@win1 ~]# jps
1891 JournalNode
1944 Jps
1774 QuorumPeerMain
1、格式化namenode
[root@win1 ~]# hdfs namenode -format?格式化hdfs文件系統
(僅在第一次啟動之前需要格式化,后面啟動不需要格式化)
2、啟動namenode
[root@win1 ~]# hadoop-daemon.sh start namenode?在節點1啟動namenode
[root@win1 ~]# jps
2368 Jps
1891 JournalNode
2293 NameNode
1774 QuorumPeerMain
3、同步第一個namenode的生成元信息
[root@win2 ~]# hdfs namenode -bootstrapStandby 用第二個namenode同步第一個namenode的生成元信息,正確輸出如下圖↓。
(如果不進行這一步備namenode由于缺少元信息無法啟動,在hadoop2的namnode日志中會出現ERROR namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /hadoop/nn is in an inconsistent state: storage directory does not exist or is not accessible.)
4、格式化zkfc
[root@win1 ~]# hdfs zkfc -formatZK 格式化zkfc無報錯即為成功
(僅在第一次啟動之前需要格式化,后面啟動不需要格式化)。(如果不進行這一步,會出現namenode無法向zookeeper注冊,會出現兩個namenode都為備的狀態。)
格式化如下圖↓
沒有報錯即為成功,如下圖:↓
5、使用start-all.sh同時啟動hdfs及yarn,如下圖↓
(若沒有配置ssh互信,啟動時需要輸入每一臺機器的密碼),可能節點二的resourcemanager沒有啟動,必須要手動啟動。
Win1:↓
Win2:↓手動啟動resourcemanager
[root@win2 ~]# yarn-daemon.sh start resourcemanager
6、啟動JobHistoryServer
[root@win1 ~]# mr-jobhistory-daemon.sh start historyserver 啟動JobHistoryServer,這樣mapreduce運行歷史任務可以查看。(可選)
啟動成功可運行jps查看每個節點上運行的進程,正常情況如下。↓
[root@win1 ~]# jps
9個進程↑
[root@win2 ~]# jps
8個進程↑
7、查看namenode狀態
使用hdfs haadmin -getServiceState nn1和hdfs haadmin -getServiceState nn2查看準備namenode的狀態,如下圖↓
[root@win1 ~]# hdfs haadmin -getServiceState nn1
[root@win1 ~]# hdfs haadmin -getServiceState nn2
8、訪問hdfs的web界面
訪問hdfs的web界面,使用瀏覽器打開http://125.221.44.11:50070和http://125.221.44.12結果如下圖↓,能看到datanode的數據和啟動datanode相同,表示啟動成功。
9、查看ResourceManager狀態
[root@win1 ~]# yarn rmadmin -getServiceState rm1
standby
[root@win1 ~]# yarn rmadmin -getServiceState rm2
active
10、訪問yarn的web界面
訪問yarn的web界面,使用瀏覽器打開http://125.221.44.11:8088,結果如下圖↓,表示yarn正常啟動。(如果resourcemanager是主備部署,登錄備resourcemanager時候會自動跳轉到主。)
三、HBASE的啟動
注意:hbase依賴于zookeeper以及hdfs,需要保證hdfs及zookeeper已經正常運行,才可以開始啟動hbase
1、使用start-hbase.sh啟動hbase的HMaster、RegionServer。
[root@win1 ~]# start-hbase.sh 如下圖↓
2、使用jps確保每個節點上對應的進程已成功啟動。
Win1如下圖↓
Win2如下圖↓
Win3如下圖↓
3、使用Web輸入
http
://192.168.10.30:16010
,登錄hbase的web界面。如下圖↓
四、HDFS HA測試
本實驗為搭建HDFS的HA環境,現測試HDFS的HA,
最小化系統需要安裝組件,命令如→: yum -y install psmisc
下載完成后,必須重啟集群→(關閉集群stop-all.sh 啟動集群start-all.sh)
查看hadoop1為active,殺掉hadoop1的namenode,hadoop2的namenode自動升級為active,如下圖↓
[root@win1 ~]# hdfs haadmin -getServiceState nn1
active
[root@win1 ~]# hdfs haadmin -getServiceState nn2
standby
五、YARN HA測試
1、查看Win1的ResourceManager為active,殺掉Win1的ResourceManager,Win2的ResourceManager自動升級為active,如下圖↓
在Win1使用yarn-daemon.sh start resourcemanager啟動resourcemanager,
并使用yarn rmadmin -getServiceState rm1和yarn rmadmin -getServiceState rm2查看yarn狀態,如下圖↓
[root@win1 conf]# yarn-daemon.sh start resourcemanager?開啟resourcemanager,關閉用stop
[root@win1 conf]# yarn rmadmin -getServiceState rm1
[root@win1 conf]# yarn rmadmin -getServiceState rm2
六、HBase HA測試
1、打開hbase的web界面,查看主備的hbase。
http://125.221.44.11:16010
2、在win1使用jps查看HMaster的進程id,并使用kill殺掉HMaster。
[root@win1 ~]# kill 19371?殺掉HMaster
使用web界面查看備用HMaster的狀態,如下圖,備用Hmaster已經成功提升為主Hmaster
七、HDFS測試
1、在hadoop1上使用hdfs 命令上傳文件到hdfs文件系統,執行hdfs dfs -put /etc/passwd??/ 上傳文件到hdfs的跟目錄,使用hdfs dfs –ls / ?查看hdfs跟下面的文件,正確結果如下下圖。
[root@win1 etc]# hdfs dfs -put /etc/passwd /?用hdfs 命令上傳文件到hdfs文件系統
[root@win1 etc]# hdfs dfs -ls /?查看hdfs跟下面的文件
(passwd是etc目錄下已有的,若上傳目錄里沒有的文件則不行,如下圖↓)
2、下載文件到家目錄
[root@win2 ~]# hdfs dfs -get /passwd /root/?下載剛剛上傳的文件到家目錄
八、Hbase測試
1、使用hbase?shell進入hbase的shell命令行。(上述會有一個jar沖突的警告,如果需要消除,需要移除hbase上那個jar包即可)
[root@win1 etc]# hbase shell?進入hbase的shell命令行
2、查看集群狀態和節點數量,使用status
hbase(main):001:0> status
3、創建表,create?‘test’,‘c1’(?hbase創建表create命令語法為:表名、列名1、列名2、列名3……)
hbase(main):005:0> create 'test','c1'
4、查看表,list
hbase(main):006:0> list
5、給表寫入數據
hbase(main):003:0> put 'test','rowkey','c1','test'
導入數據的命令put的語法為表名、行值、列名(列名可加冒號,表示這個列簇下面還有子列)、列數據。如圖
6、全表掃描數據(scan 'test')
hbase(main):006:0> scan 'test'
7、查詢表的數據(get?‘test’,’rowkey’),根據條件查詢,查詢test表中row為rowkey的值。
hbase(main):008:0> ?get 'test','rowkey'
8、刪除表,在刪除表之前需要先讓表失效才能刪除。使用disable?‘test’,使表失效。drop?‘test’刪除表。
hbase(main):009:0> disable 'test'
hbase(main):010:0> drop 'test'
hbase(main):011:0> list
九、Yarn2.0測試(wordcount任務)
1、原文件位于本機,執行如下命令:↓
[root@hadoop etc]# hadoop jar /hadoop/soft/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount ?file:///etc/passwd hdfs://125.221.44.11:8020/wordcount 任務完成如下圖↓
2、使用hdfs dfs -cat hdfs://125.221.44.11:8020/wordcount/part-r-00000,查看輸出結果如下
3、將文件上傳到hdfs,使用hdfs?dfs -put /etc/passwd hdfs://192.168.10.30/?執行命令如下
[root@hadoop ~]# hadoop jar /hadoop/soft/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /passwd ?/wordcountpasswd
4、使用hdfs dfs -cat hdfs://125.221.44.11:8020/wordcountpasswd/part-r-00000,查看輸出結果,如下圖↓
#——————————————————————————————————
[root@hadoop ~]# hdfs dfs -cat hdfs://125.221.44.11:8020/wordcountpasswd/part-r-00000
cat: Operation category READ is not supported in state standby
原因:NameNode處于standby狀態
#——————————————————————————————————
附件: 搭建HDFS的HA環境(HBase安裝及配置,啟動).docx 1.42MB 下載次數:0次
Hadoop HBase 大數據
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。