Hadoop系列-HBase數(shù)據(jù)庫

前面寫了Hadoop的Hive,咱們再來看看另一個HBase數(shù)據(jù)庫,這個是NoSQL數(shù)據(jù)庫,非關(guān)系數(shù)據(jù)庫,下面有和普通數(shù)據(jù)庫的比較部分。

一、HBase數(shù)據(jù)庫基礎(chǔ)知識

1.HBase是縱表,存儲形式如下

Id Column Value
1 Name zhangsan
1 Birthday 1987-01-01
2 Name lisi
2 Birthday 1988-01-01

2.相比傳統(tǒng)關(guān)系數(shù)據(jù)庫,方便擴展,節(jié)省空間,如果需要新增字段,Gender,只需要再增加一行或者多行數(shù)據(jù),不需要為每一個Id的人都增加該字段,而傳統(tǒng)數(shù)據(jù)庫必須為所有數(shù)據(jù)都增加該字段。具體如下,只需要給Id為1的人增加一條數(shù)據(jù)即可。

Id Column Value
1 Name zhangsan
1 Birthday 1987-01-01
1 Gender
2 Name lisi
2 Birthday 1988-01-01

3.由于在大數(shù)據(jù)集群中,存儲比較便宜,縱表把很多不同的信息都存儲到同一張表中,例如用戶的班級信息,教師是哪位,都可以同時存儲在同一張表中,每一次查詢都可以把用戶的所有信息都查詢出來,效率很高。

4.HBase不支持SQL,只允許增刪改查,表上沒有索引,只有行鍵可以標識記錄,沒有其他二級索引,沒有約束檢查字段是否有效,沒有辦法說明該字段是否允許為null,沒有辦法指定外鍵等等。

5.總結(jié)下HBase和傳統(tǒng)數(shù)據(jù)庫的區(qū)別:

傳統(tǒng)數(shù)據(jù)庫 HBase
按照行和列存儲 按照列存儲
支持SQL NoSQL
支持復(fù)雜查詢,group by join等操作 只支持增刪改查
存儲規(guī)范化,最大程度減少冗余并確保更新簡單,例如增加字段,每條數(shù)據(jù)都增加該字段 最小化磁盤查找,把所有數(shù)據(jù)集中到一個表中,取消存儲標準化,增加字段,不必處理所有數(shù)據(jù),只針對需要增加的Id,增加一行數(shù)據(jù)即可。
兼容ACID 只在行級別兼容ACID,跨行或者多個表無法保證數(shù)據(jù)的完整性

二、安裝HBase

到阿帕奇官網(wǎng)下載https://hbase.apache.org/downloads.html

由于我的是hadoop,不兼容最新版的hbase,因此下載了2021年的hbase-1.7.1-bin.tar.gz

#將下載好的文件cp到docker中
docker cp Downloads/hbase-1.7.1-bin.tar.gz master:/usr/local
#解壓
tar -xvzf hbase-1.7.1-bin.tar.gz
#編輯配置文件hbase-site.xml
cd /usr/local/hbase-1.7.1/conf
vi hbase-site.xml
<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>
#編輯配置文件hbase-env.sh
vi hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
#配置hbase環(huán)境變量
vi ~/.bash_profile
export HBASE_HOME=/usr/local/hbase-1.7.1
PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$JAVA_HOME/bin:$HBASE_HOME/bin
source ~/.bash_profile
#啟動hbase
./start-hbase.sh

最后通過執(zhí)行jps查看到HQuorumPeer,HRegionServer表明啟動成功,下一篇咱們看看HBase的基礎(chǔ)命令如何

jps
138 NameNode
432 SecondaryNameNode
5512 HQuorumPeer
265 DataNode
708 NodeManager
5718 HRegionServer
5990 Jps
606 ResourceManager

謝各位的閱讀,謝謝您動動手指點贊,萬分感謝各位。另外以下是我之前寫過的文章,感興趣的可以點進去繼續(xù)閱讀。

歷史文章

Hadoop系列-入門安裝
Hadoop系列-HDFS命令
Hadoop系列-Hive安裝
Hadoop系列-Hive數(shù)據(jù)庫常見SQL命令
Hadoop系列-HBase數(shù)據(jù)庫
Hadoop系列-HBase數(shù)據(jù)庫(二)
Hadoop系列-HBase數(shù)據(jù)庫JAVA篇
Hadoop系列-Spark安裝以及HelloWorld
JAVA面試匯總(五)數(shù)據(jù)庫(一)
JAVA面試匯總(五)數(shù)據(jù)庫(二)
JAVA面試匯總(五)數(shù)據(jù)庫(三)
JAVA面試匯總(四)JVM(一)
JAVA面試匯總(四)JVM(二)
JAVA面試匯總(四)JVM(三)
JAVA面試匯總(三)集合(一)
JAVA面試匯總(三)集合(二)
JAVA面試匯總(三)集合(三)
JAVA面試匯總(三)集合(四)
JAVA面試匯總(二)多線程(一)
JAVA面試匯總(二)多線程(二)
JAVA面試匯總(二)多線程(三)
JAVA面試匯總(二)多線程(四)
JAVA面試匯總(二)多線程(五)
JAVA面試匯總(二)多線程(六)
JAVA面試匯總(二)多線程(七)
JAVA面試匯總(一)Java基礎(chǔ)知識

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容