hbase分布式安裝部署過(guò)程
1、 HBase 安裝
1) 下載安裝包
hbase-090.3.tar.gz版本與hadoop-1.2.1良好兼容,從官網(wǎng)下載hbase-090.3.tar.gz安裝包,并將下載的hbase-090.3.tar.gz拷貝到/home/hadoop目錄下。hbase官網(wǎng)下載地址:http://archive.apache.org/dist/hbase/
選擇HBase-0.94.20版本,下載 HBase Releases.
2) 解壓安裝包
[hadoop@K-Master ~]$ cd /usr
[hadoop@K-Master usr]$ sudo tar -xvf /home/hadoop/hbase-090.3.tar.gz #解壓安裝源碼包
[hadoop@K-Master usr]$ mv hbase-090.3 hbase #重命名
[hadoop@K-Master usr]$ cd hbase
[hadoop@K-Master hbase]$ sudo chown -R hadoop:hadoop hbase #賦予hbase安裝目錄下所有文件hadoop權(quán)限
3) 配置安裝路徑
#將hbase下的bin目錄添加到系統(tǒng)的path中,在/etc/profile文件尾行添加如下的內(nèi)容
[hadoop@K-Master usr]$ sudo vim /etc/profile
export PATH=$PATH:/usr/hbase/bin
#執(zhí)行source命令使上述配置在當(dāng)前終端立即生效
[hadoop@K-Master usr]$ source /etc/profile
4) 驗(yàn)證是否安裝成功
[hadoop@K-Master usr]$ hbase version
14/07/21 18:01:57 INFO util.VersionInfo: HBase 0.94.20
14/07/21 18:01:57 INFO util.VersionInfo: Subversion git://newbunny/home/lars/dev/hbase-0.94 -r 09c60d770f2869ca315910ba0f9a5ee9797b1edc
14/07/21 18:01:57 INFO util.VersionInfo: Compiled by lars on Fri May 23 22:00:41 PDT 2014
看到以上打印消息表示Hbase已經(jīng)安裝成功,接下來(lái)將分別進(jìn)行Hbase單機(jī)模式和偽分布式模式的配置。
2、 HBase單機(jī)模式
1) 配置/conf/hbase-env.sh
將JAVA_HOME變量設(shè)置為Java安裝的根目錄,配置如下所示:
[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
#對(duì)hbase-env.sh文件做如下修改:
export JAVA_HOME=/usr/java/jdk1.7.0_65 #配置本機(jī)的java安裝根目錄
export HBASE_MANAGES_ZK=true #配置由hbase自己管理zookeeper,不需要單獨(dú)的zookeeper。
2) 配置/conf/hbase-site.xml
在啟動(dòng)Hbase前需要設(shè)置屬性hbase.rootdir,用于指定Hbase數(shù)據(jù)的存儲(chǔ)位置,此處設(shè)置為HBase安裝目錄下的hbase-tmp文件夾即(file:///usr/hbase/hbase-tmp),配置如下:
[hadoop@K-Master hbase]$ vim conf/hbase-site.sh
《configuration》
《property》
《name》hbase.rootdir《/name》
《value》file:///usr/hbase/hbase-tmp《/value》
《/property》
《/configuration》
特別注意:hbase.rootdir默認(rèn)為/tmp/hbase-${user.name},這意味著每次重啟系統(tǒng)都會(huì)丟失數(shù)據(jù)。
3) 啟動(dòng)Hbase
[hadoop@K-Master hbase]$ start-hbase.sh
starting master, logging to /usr/hbase/bin/。./logs/hbase-hadoop-master-K-Master.localdomain.out
4) 進(jìn)入shell模式
進(jìn)入shell模式之后,通過(guò)status命令查看Hbase的運(yùn)行狀態(tài),通過(guò)exit命令退出shell。
[hadoop@K-Master hbase]$ hbase shell
HBase Shell; enter ‘help《RETURN》’ for list of supported commands.
Type “exit《RETURN》” to leave the HBase Shell
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014
hbase(main):001:0》 status
1 servers, 0 dead, 2.0000 average load
hbase(main):002:0》 exit
5) 停止HBase
[hadoop@K-Master hbase]$ stop-hbase.sh
stopping hbase
特別注意:如果在操作Hbase的過(guò)程中發(fā)生錯(cuò)誤,可以通過(guò){HBASE_HOME}目錄(/usr/hbase)下的logs子目錄中的日志文件查看錯(cuò)誤原因。
3、 HBase偽分布式模式
1) 配置/conf/hbase-env.sh
添加變量HBASE_CLASSPATH,并將路徑設(shè)置為本機(jī)Hadoop安裝目錄下的conf目錄(即{HADOOP_HOME}/conf)。修改完成后,hbase-env.sh的配置如下:
[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HBASE_CLASSPATH=/usr/hadoop/conf
export HBASE_MANAGES_ZK=true
2) 配置/conf/hbase-site.xml
修改hbase.rootdir,將其指向K-Master(與hdfs的端口保持一致),并指定HBase在HDFS上的存儲(chǔ)路徑。將屬性hbase.cluter.distributed設(shè)置為true。假設(shè)當(dāng)前Hadoop集群運(yùn)行在偽分布式模式下,且NameNode運(yùn)行在9000端口;
[hadoop@K-Master hbase]$ vim hbase-site.xml
《configuration》
《property》
《name》hbase.rootdir《/name》
《value》hdfs://K-Master:9000/hbase《/value》
《/property》
《property》
《name》hbase.cluster.distributed《/name》
《value》true《/value》
《/property》
《/configuration》
3) 啟動(dòng)HBase
完成以上操作后啟動(dòng)HBase,啟動(dòng)順序:先啟動(dòng)Hadoop–》再啟動(dòng)HBase,關(guān)閉順序:先關(guān)閉HBase–》再關(guān)閉Hadoop。
第一步:?jiǎn)?dòng)hadoop集群
[hadoop@K-Master hbase]$ start-all.sh #啟動(dòng)hadoop
[hadoop@K-Master hbase]$ jps #查看進(jìn)程
9040 DataNode
18205 Jps
9196 SecondaryNameNode
10485 JobTracker
10620 TaskTracker
8902 NameNode
特別注意:讀者可先通過(guò)jps命令查看Hadoop集群是否啟動(dòng),如果Hadoop集群已經(jīng)啟動(dòng),則不需要執(zhí)行Hadoop集群?jiǎn)?dòng)操作。
第二步:?jiǎn)?dòng)HBase
[hadoop@K-Master lib]$ start-hbase.sh #啟動(dòng)Hbase
K-Master: starting zookeeper, logging to /usr/hbase/bin/。./logs/hbase-hadoop-zookeeper-K-Master.localdomain.out
starting master, logging to /usr/hbase/bin/。./logs/hbase-hadoop-master-K-Master.localdomain.out
K-Master: starting regionserver, logging to /usr/hbase/bin/。./logs/hbase-hadoop-regionserver-K-Master.localdomain.out
[hadoop@K-Master lib]$ jps #查看進(jìn)程
9040 DataNode
18889 HMaster
19201 Jps
9196 SecondaryNameNode
19073 HRegionServer
10485 JobTracker
10620 TaskTracker
18818 HQuorumPeer
8902 NameNode
? ? ? ?
? ? ? 進(jìn)入shell模式
進(jìn)入shell模式之后,通過(guò)list命令查看當(dāng)前數(shù)據(jù)庫(kù)所有表信息,通過(guò)create命令創(chuàng)建一個(gè)member表,其擁有member_id,address,info三個(gè)列族,通過(guò)describe命令查看member表結(jié)構(gòu),通過(guò)exit命令退出HBase shell模式。
[hadoop@K-Master hadoop]$ hbase shell
HBase Shell; enter ‘help《RETURN》’ for list of supported commands.
Type “exit《RETURN》” to leave the HBase Shell
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014
hbase(main):001:0》 create ‘member’,‘member_id’,‘a(chǎn)ddress’,‘info’
0 row(s) in 2.7170 seconds
hbase(main):002:0》 list
TABLE
member
1 row(s) in 0.0550 seconds
hbase(main):003:0》 describe ‘member’
DESCRIPTION ENABLED
‘member’, {NAME =》 ‘a(chǎn)ddress’, DATA_BLOCK_ENCODING = true》 ‘NONE’, BLOOMFILTER =》 ‘NONE’, REPLICATION_SCOPE
=》 ‘0’, VERSIONS =》 ‘3’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, TTL =》 ‘2147483647’, KEEP_DELETED
_CELLS =》 ‘false’, BLOCKSIZE =》 ‘65536’, IN_MEMORY=》 ‘false’, ENCODE_ON_DISK =》 ‘true’, BLOCKCACHE =》
‘true’}, {NAME =》 ‘info’, DATA_BLOCK_ENCODING =》 ‘NONE’, BLOOMFILTER =》 ‘NONE’, REPLICATION_SCOPE =》
‘0’, VERSIONS =》 ‘3’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, TTL =》 ‘2147483647’, KEEP_DELETED_CE
LLS =》 ‘false’, BLOCKSIZE =》 ‘65536’, IN_MEMORY =》‘false’, ENCODE_ON_DISK =》 ‘true’, BLOCKCACHE =》 ‘t
rue’}, {NAME =》 ‘member_id’, DATA_BLOCK_ENCODING =》‘NONE’, BLOOMFILTER =》 ‘NONE’, REPLICATION_SCOPE =
》 ‘0’, VERSIONS =》 ‘3’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, TTL =》 ‘2147483647’, KEEP_DELETED_
CELLS =》 ‘false’, BLOCKSIZE =》 ‘65536’, IN_MEMORY =》 ‘false’, ENCODE_ON_DISK =》 ‘true’, BLOCKCACHE =》
‘true’}1 row(s) in 0.1040 secondshbase(main):004:0》 exit
查看HDFS的HBase數(shù)據(jù)庫(kù)文件
通過(guò)hadoop fs –ls /hbase命令查看HBase分布式數(shù)據(jù)庫(kù)在HDFS上是否成功創(chuàng)建,/hbase/member文件夾即為上一步我們所建立的member數(shù)據(jù)庫(kù)在HDFS上的存儲(chǔ)位置。
[hadoop@K-Master conf]$ hadoop fs -ls /hbase
Found 8 items
drwxr-xr-x - hadoop supergroup 0 2014-07-21 19:46 /hbase/-ROOT-
drwxr-xr-x - hadoop supergroup 0 2014-07-21 19:46 /hbase/.META.
drwxr-xr-x - hadoop supergroup 0 2014-07-22 11:38 /hbase/.logs
drwxr-xr-x - hadoop supergroup 0 2014-07-22 11:39 /hbase/.oldlogs
drwxr-xr-x - hadoop supergroup 0 2014-07-22 11:40 /hbase/.tmp
-rw-r--r-- 1 hadoop supergroup 38 2014-07-21 19:46 /hbase/hbase.id
-rw-r--r-- 1 hadoop supergroup 3 2014-07-21 19:46 /hbase/hbase.version
drwxr-xr-x - hadoop supergroup 0 2014-07-22 11:40 /hbase/member
停止HBase
完成上述操作后,執(zhí)行關(guān)閉HBase操作,關(guān)閉順序:先關(guān)閉HBase —》再關(guān)閉Hadoop。
[hadoop@K-Master hadoop]$ stop-hbase.sh #停止Hbase
stopping hbase
K-Master: stopping zookeeper.
[hadoop@K-Master hadoop]$ stop-all.sh #停止Hadoop
stopping jobtracker
K-Master: stopping tasktracker
stopping namenode
K-Master: stopping datanode
K-Master: stopping secondarynamenode
4、 HBase的用戶(hù)界面
1) HDFS主頁(yè)
輸入http://{主機(jī)名}:50070/dfshealth.jsp 進(jìn)入HDFS主頁(yè),在該主頁(yè)點(diǎn)擊“Browse the filesystem”超鏈接,選擇hbase目錄,可以查看HBase在HDFS上生成的/hbase目錄結(jié)構(gòu),該目錄用于存放Hbase數(shù)據(jù),如下圖所示;
?
2) Master頁(yè)面
通過(guò)地址http://{主機(jī)名}:60010/master.jsp 可以查看HBase的相關(guān)信???,如下圖所示。
評(píng)論