HBase集羣部署與基礎命令

HBase 集羣部署

安裝 hbase 之前需要先搭建好 hadoop 集羣和 zookeeper 集羣。hadoop 集羣搭建可以參考:https://www.cnblogs.com/javammc/p/16545146.html

  1. 下載安裝包 http://archive.apache.org/dist/hbase/1.3.1/
  1. 解壓到安裝目錄
tar -zxvf hbase-1.3.1-bin.tar.gz

我解壓到了/opt/lagou/servers/hbase-1.3.1 目錄。

  1. 修改配置文件
  • 把 hadoop 中配置的 core-site.xml、hdfs-site.xml 拷貝到 hbase 下的 conf 目錄下
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/lagou/servers/hbase-1.3.1/conf/core-site.xml
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/lagou/servers/hbase-1.3.1/conf/hdfs-site.xml
  • 修改 hbase-env.sh
#添加java環境變量
export JAVA_HOME=/opt/module/jdk1.8.0_231
#指定使用外部的zk集羣
export HBASE_MANAGES_ZK=FALSE
  • 修改 hbase-site.xml
<configuration>
 <!-- 指定hbase在HDFS上存儲的路徑 -->
   <property>
       <name>hbase.rootdir</name>
       <value>hdfs://linux2:9000/hbase</value>
   </property>
       <!-- 指定hbase是分佈式的 -->
   <property>
       <name>hbase.cluster.distributed</name>
       <value>true</value>
   </property>
       <!-- 指定zk的地址,多個用“,”分割 -->
   <property>
       <name>hbase.zookeeper.quorum</name>
       <value>linux2:2181,linux3:2181,linux4:2181</value>
   </property>
</configuration>
  • 修改 regionservers
linux2
linux3
linux4
  • 在 hbase 的 conf 目錄下創建文件 backup-masters

內容如下:

linux2
  • 在每個節點上配置環境變量,vi /etc/profile
export HBASE_HOME=/opt/lagou/servers/hbase-1.3.1
export PATH=$PATH:$HBASE_HOME/bin

執行命令使配置生效

source /etc/profile
  • 將 hbase-1.3.1 目錄分發到其他 2 個節點
scp -r hbase-1.3.1 linux3:/opt/lagou/servers/
scp -r hbase-1.3.1 linux4:/opt/lagou/servers/
  1. 啓動集羣
#啓動命令
start-hbase.sh
#停止命令
stop-hbase.sh
  1. 啓動完成後,可以訪問地址:

    HMaster 的 ip:16010

HBase shell 基本操作

  1. 進入 HBase 客戶端命令操作界面
hbase shell

shell 命令行裏如果輸錯了命令,刪除需要使用 Ctrl+Backspace

  1. 查看幫助命令
help
  1. 查看當前數據庫裏有哪些表
list
  1. 創建一個 user 表,包含 user_info、extra_info 兩個列族
create 'user','base_info','extra_info'
#或者指定版本
create 'user2',{NAME => 'base_info',VERSIONS => '3'},{NAME => 'extra_info',VERSIONS => '3'}
  1. 添加數據
  • 向 user 表中 row key 爲 rk1,列族 base_info 的 name 列上插入值'xiaowang'
put 'user','rk1','base_info:name','xiaowang'
  • 向 user 表中 row key 爲 rk1,列族爲 base_info 的 age 列插入值 30
 put 'user','rk1','base_info:age',30
  • 向 user 表中 row key 爲 rk1,列族爲 extra_info 的 address 列插入值'shanghai'
put 'user','rk1','extra_info:address','shanghai'
  1. 查詢數據
  • 查詢 user 表中 row key 爲 rk1 的所有信息
get 'user','rk1'
  • 查詢 user 表中 row key 爲 rk1 的 base_info 列族的所有信息
get 'user','rk1','base_info'
  • 查詢 user 表中指定列族,指定字段的值
get 'user','rk1','base_info:name','base_info:age'
  • 查詢 user 表中多個列族的信息
get 'user','rk1','base_info','extra_info'

  • 根據 rowkey 和列值進行查詢
get 'user','rk1',{FILTER => "ValueFilter (=,'binary:shanghai')"}
  • 根據 row key 和列名進行模糊查詢

查詢出列名:address

get 'user','rk1',{FILTER => "QualifierFilter (=,'substring:add')"}
  • 查詢表中所有數據
scan 'user'
  • 查詢表中列族爲 base_info 的信息
scan 'user',{COLUMNS => 'base_info'}

# Scan時可以設置是否開啓Raw模式,開啓Raw模式會返回包括已添加刪除標記但是未實際刪除的數據
# VERSIONS指定查詢的最大版本數
scan 'user',{COLUMNS => 'base_info',RAW => true, VERSIONS=> 3}
  • 查詢 user 表中列族爲 base_info、extra_info,且列名中含 add 字符的數據
 scan 'user',{COLUMNS => ['base_info','extra_info'],FILTER => "(QualifierFilter(=,'substring:add'))"}
  • rowkey 的範圍值查詢
scan 'user',{COLUMNS => 'base_info',STARTROW => 'rk1',ENDROW => 'rk3'}
  • 指定 rowkey 模糊查詢

查詢 user 表中 row key 以 rk 開頭的數據

scan 'user' ,{FILTER =>"PrefixFilter('rk')"}
  1. 更新數據

更新操作同插入操作一模一樣,只不過有數據就更新,沒數據就添加

  • 更新數據值

將 user 表中 rowkey 爲 rk1 的 base_info 列族下的 name 修改爲 xiaoliao

put 'user','rk1','base_info:name','xiaoliao'
  1. 刪除數據和表
  • 指定 rowkey 以及列名進行刪除
delete 'user','rk2','base_info:name'
  • 指定 rowkey 以及列名、時間戳進行刪除
delete 'user','rk2','base_info:age',1662245345710
  • 刪除列族
alter 'user','delete' => 'extra_info'
  • 清空表數據
truncate 'user'
  • 刪除表
#先disable,再drop,否則會報錯
disable 'user'
drop 'user'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章