1. 程式人生 > 其它 >HBase元件安裝與配置

HBase元件安裝與配置

1. 實驗一:HBase 元件安裝與配置

1.1 實驗目的

完成本實驗,您應該能夠:

  • 掌握HBase 安裝與配置

  • 掌握HBase 常用 Shell 命令

1.2 實驗要求

  • 瞭解HBase 原理

  • 熟悉HBase 常用 Shell 命令

1.3 實驗過程

1.3.1 實驗任務一:配置時間同步

[root@master ~]# yum -y install chrony

[root@master ~]# cat /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server time1.aliyun.com iburst 

[root@master ~]# systemctl restart chronyd.service 
[root@master ~]# systemctl enable chronyd.service 

[root@master ~]# date 
Fri Apr 15 15:40:14 CST 2022



[root@slave1 ~]# yum -y install chrony

[root@slave1 ~]# cat /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server time1.aliyun.com iburst

[root@slave1 ~]# systemctl restart chronyd.service
[root@slave1 ~]# systemctl enable chronyd.service

[root@slave1 ~]# date
Fri Apr 15 15:40:17 CST 2022  



[root@slave2 ~]# yum -y install chrony

[root@slave2 ~]# cat /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server time1.aliyun.com iburst

[root@slave2 ~]# systemctl restart chronyd.service
[root@slave2 ~]# systemctl enable chronyd.service 

[root@slave2 ~]# date
Fri Apr 15 15:40:20 CST 2022

1.3.2 實驗任務二:HBase 安裝與配置

1.3.2.1 步驟一:解壓縮 HBase 安裝包

[root@master ~]# tar -zxvf hbase-1.2.1-bin.tar.gz -C /usr/local/src/

1.3.2.2 步驟二:重新命名 HBase 安裝資料夾

[root@master ~]# cd /usr/local/src/

[root@master src]# mv hbase-1.2.1 hbase 

1.3.2.3 步驟三:在所有節點新增環境變數

[root@master ~]# cat /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/bin:$PATH   

[root@slave1 ~]# cat /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/bin:$PATH

[root@slave2 ~]# cat /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/bin:$PATH

1.3.2.4 步驟四:在所有節點使環境變數生效

[root@master ~]# source /etc/profile
[root@master ~]# echo $PATH 
/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/src/hive/bin:/root/bin:/usr/local/src/hive/bin:/usr/local/src/hive/bin  

[root@slave1 ~]# source /etc/profile
[root@slave1 ~]# echo $PATH 
/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@slave2 ~]# source /etc/profile
[root@slave2 ~]# echo $PATH 
/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/hbase/bin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/src/jdk/bin:/usr/local/src/hadoop/bin:/usr/local/src/hadoop/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

1.3.2.5 步驟五:在 master 節點進入配置檔案目錄

[root@master ~]# cd /usr/local/src/hbase/conf/

1.3.2.6 步驟六:在 master 節點配置 hbase-env.sh 檔案

[root@master conf]# cat hbase-env.sh 
export JAVA_HOME=/usr/local/src/jdk
export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/usr/local/src/hadoop/etc/hadoop/

1.3.2.7 步驟七:在 master 節點配置 hbase-site.xml

[root@master conf]# cat hbase-site.xml 
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://master:9000/hbase</value> 
	</property>
	<property>
		<name>hbase.master.info.port</name>
		<value>60010</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.clientPort</name>
		<value>2181</value>
	</property>
	<property>
		<name>zookeeper.session.timeout</name>
		<value>120000</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>master,node1,node2</value>
	</property>
	<property>
		<name>hbase.tmp.dir</name>
		<value>/usr/local/src/hbase/tmp</value>
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
</configuration>

1.3.2.8 步驟八:在master節點修改 regionservers 檔案

[root@master conf]# cat regionservers 
node1
node2

1.3.2.9 步驟九:在master節點建立 hbase.tmp.dir 目錄

[root@master ~]# mkdir /usr/local/src/hbase/tmp

1.3.2.10 步驟十:將master上的hbase安裝檔案同步到 node1 node2

[root@master ~]# scp -r /usr/local/src/hbase/ root@node1:/usr/local/src/

[root@master ~]# scp -r /usr/local/src/hbase/ root@node2:/usr/local/src/

1.3.2.11 步驟十一:在所有節點修改 hbase 目錄許可權

[root@master ~]# chown -R hadoop:hadoop /usr/local/src/hbase/

[root@slave1 ~]# chown -R hadoop:hadoop /usr/local/src/hbase/

[root@slave2 ~]# chown -R hadoop:hadoop /usr/local/src/hbase/

1.3.2.12 步驟十二:在所有節點切換到hadoop使用者

[root@master ~]# su - hadoop 
Last login: Mon Apr 11 00:42:46 CST 2022 on pts/0

[root@slave1 ~]# su - hadoop
Last login: Fri Apr  8 22:57:42 CST 2022 on pts/0

[root@slave2 ~]# su - hadoop
Last login: Fri Apr  8 22:57:54 CST 2022 on pts/0

1.3.2.13 步驟十三:啟動 HBase

先啟動 Hadoop,然後啟動 ZooKeeper,最後啟動 HBase。

[hadoop@master ~]$ start-all.sh
[hadoop@master ~]$ jps
2130 SecondaryNameNode
1927 NameNode
2554 Jps
2301 ResourceManager

[hadoop@slave1 ~]$ jps
1845 NodeManager
1977 Jps
1725 DataNode

[hadoop@slave2 ~]$ jps
2080 Jps
1829 DataNode
1948 NodeManager

1.3.2.14 步驟十四:在 master節點啟動HBase

[hadoop@master conf]$ start-hbase.sh 

[hadoop@master conf]$ jps
2130 SecondaryNameNode
3572 HQuorumPeer
1927 NameNode
5932 HMaster
2301 ResourceManager
6157 Jps

[hadoop@slave1 ~]$ jps
2724 Jps
1845 NodeManager
1725 DataNode
2399 HQuorumPeer
2527 HRegionServer

[root@slave2 ~]# jps
3795 Jps
1829 DataNode
3529 HRegionServer
1948 NodeManager
3388 HQuorumPeer

1.3.2.15 步驟十五:修改windows上的hosts檔案

(C:\Windows\System32\drivers\etc\hosts)

把hots檔案拖到桌面上,然後編輯它加入master的主機名與P地址的對映關係後在瀏覽器上輸入http//:master:60010訪問hbase的web介面

1.3.3 實驗任務二:HBase常用Shell命令

1.3.3.1 步驟一:進入 HBase 命令列

[hadoop@master ~]$ hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/src/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/src/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.1, r8d8a7107dc4ccbf36a92f64675dc60392f85c015, Wed Mar 30 11:19:21 CDT 2016

hbase(main):001:0>  

1.3.3.2 步驟二:建立表 scores,兩個列簇:grade 和 course

hbase(main):001:0> create 'scores','grade','course'
0 row(s) in 1.4400 seconds

=> Hbase::Table - scores

1.3.3.3 步驟三:檢視資料庫狀態

hbase(main):002:0> status
1 active master, 0 backup masters, 2 servers, 0 dead, 1.5000 average load

1.3.3.4 步驟四:檢視資料庫版本

hbase(main):003:0> version
1.2.1, r8d8a7107dc4ccbf36a92f64675dc60392f85c015, Wed Mar 30 11:19:21 CDT 2016

1.3.3.5 步驟五:查看錶

hbase(main):004:0> list
TABLE  
scores 
1 row(s) in 0.0150 seconds

=> ["scores"]

1.3.3.6 步驟六:插入記錄 1:jie,grade: 143cloud

hbase(main):005:0> put 'scores','jie','grade:','146cloud'
0 row(s) in 0.1060 seconds

1.3.3.7 步驟七:插入記錄 2:jie,course:math,86

hbase(main):006:0> put 'scores','jie','course:math','86'
0 row(s) in 0.0120 seconds

1.3.3.8 步驟八:插入記錄 3:jie,course:cloud,92

hbase(main):009:0> put 'scores','jie','course:cloud','92'
0 row(s) in 0.0070 seconds

1.3.3.9 步驟九:插入記錄 4:shi,grade:133soft

hbase(main):010:0> put 'scores','shi','grade:','133soft'
0 row(s) in 0.0120 seconds

1.3.3.10 步驟十:插入記錄 5:shi,grade:math,87

hbase(main):011:0> put 'scores','shi','course:math','87'
0 row(s) in 0.0090 seconds

1.3.3.11 步驟十一:插入記錄 6:shi,grade:cloud,96

hbase(main):012:0> put 'scores','shi','course:cloud','96'
0 row(s) in 0.0100 seconds

1.3.3.12 步驟十二:讀取 jie 的記錄

hbase(main):013:0> get 'scores','jie'
COLUMN  CELL   
 course:cloud   timestamp=1650015032132, value=92  
 course:mathtimestamp=1650014925177, value=86  
 grade: timestamp=1650014896056, value=146cloud
3 row(s) in 0.0250 seconds

1.3.3.13 步驟十三:讀取 jie 的班級

hbase(main):014:0> get 'scores','jie','grade'
COLUMN  CELL   
 grade: timestamp=1650014896056, value=146cloud
1 row(s) in 0.0110 seconds

1.3.3.14 步驟十四:檢視整個表記錄

hbase(main):001:0> scan 'scores'
ROW  COLUMN+CELL  
 jie column=course:cloud, timestamp=1650015032132, value=92   
 jie column=course:math, timestamp=1650014925177, value=86
 jie column=grade:, timestamp=1650014896056, value=146cloud   
 shi column=course:cloud, timestamp=1650015240873, value=96   
 shi column=course:math, timestamp=1650015183521, value=87
2 row(s) in 0.1490 seconds

1.3.3.15 步驟十五:按例查看錶記錄

hbase(main):002:0> scan 'scores',{COLUMNS=>'course'}
ROW  COLUMN+CELL  
 jie column=course:cloud, timestamp=1650015032132, value=92   
 jie column=course:math, timestamp=1650014925177, value=86
 shi column=course:cloud, timestamp=1650015240873, value=96   
 shi column=course:math, timestamp=1650015183521, value=87
2 row(s) in 0.0160 seconds

1.3.3.16 步驟十六:刪除指定記錄

hbase(main):003:0> delete 'scores','shi','grade'
0 row(s) in 0.0560 seconds

1.3.3.17 步驟十七:刪除後,執行scan 命令

hbase(main):004:0> scan 'scores'
ROW  COLUMN+CELL  
 jie column=course:cloud, timestamp=1650015032132, value=92   
 jie column=course:math, timestamp=1650014925177, value=86
 jie column=grade:, timestamp=1650014896056, value=146cloud   
 shi column=course:cloud, timestamp=1650015240873, value=96   
 shi column=course:math, timestamp=1650015183521, value=87
2 row(s) in 0.0130 seconds

1.3.3.18 步驟十八:增加新的列簇

hbase(main):005:0> alter 'scores',NAME=>'age'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.0110 seconds

1.3.3.19 步驟十九:查看錶結構

hbase(main):006:0> describe 'scores'
Table scores is ENABLED   
scores
COLUMN FAMILIES DESCRIPTION   
{NAME => 'age', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', C
OMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}  
{NAME => 'course', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}   
{NAME => 'grade', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER',
 COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
3 row(s) in 0.0230 seconds

1.3.3.20 步驟二十:刪除列簇

hbase(main):007:0> alter 'scores',NAME=>'age',METHOD=>'delete'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.1990 seconds

1.3.3.21 步驟二十一:刪除表

hbase(main):008:0> disable 'scores'
0 row(s) in 2.3190 seconds

1.3.3.22 步驟二十二:退出

hbase(main):009:0> quit

1.3.3.23 步驟二十三:關閉 HBase

[hadoop@master ~]$ stop-hbase.sh
stopping hbase.................
master: stopping zookeeper.
node2: stopping zookeeper.
node1: stopping zookeeper.

在 master 節點關閉 Hadoop。

[hadoop@master ~]$ stop-all.sh
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [master]
master: stopping namenode
10.10.10.130: stopping datanode
10.10.10.129: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
stopping yarn daemons
stopping resourcemanager
10.10.10.129: stopping nodemanager
10.10.10.130: stopping nodemanager
no proxyserver to stop

[hadoop@master ~]$ jps
3820 Jps

[hadoop@slave1 ~]$ jps 
2220 Jps

[root@slave2 ~]# jps 
2082 Jps

完結,撒花

附件: