HBase學習

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HBase學習(一)

前言:

? ? ?畢業(yè)這幾年 一直從事java 工作,接觸的數(shù)據(jù)存儲 SQL產(chǎn)品類似于Oracle,Mysql,Oracle是付費級的產(chǎn)品 既而接觸的就少了 ?大部分工作時間都是和MySql和打交道,存儲數(shù)據(jù)和良好的設計表 優(yōu)化慢sql 不能說很足的經(jīng)驗,基本的問題都是ok的吧,接觸的NoSql產(chǎn)品 Redis,為了給數(shù)據(jù)庫做保護,業(yè)務數(shù)據(jù)大部分都緩存在了redis中,但是隨著公司sdk的業(yè)務越來越龐大,傳統(tǒng)的關系型數(shù)據(jù)庫已經(jīng)滿足不了sdk存儲數(shù)據(jù)需求,此時就需要找替代的存儲方案,由于公司sdk級別的數(shù)據(jù),每天達到了幾個G,此時CTO 開始著手搭建公司級別的大數(shù)據(jù)平臺 。技術選型也就選擇了開源社區(qū)比較成熟的大數(shù)據(jù)技術,Hadoop Hbase,Hive,從0到1是一個緩慢的過程。我們也就慢慢開始搭建自己公司級別的數(shù)據(jù)平臺,這個過程雖然很辛苦,我負責的是研究Hbase,但是研究新技術這個過程是個開心的事情。前面說了點啰嗦,開始咱們的正題吧。

簡單的先介紹一下HBase:

HBase不同于一般的關系數(shù)據(jù)庫,它是一個適合于非結構化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。類似于redis中的散列存儲數(shù)據(jù)。

Hbase中有幾個術語 大家理解了 基本操作就不是什么問題了。

行鍵Row Key:主鍵是用來檢索記錄的主鍵,訪問hbasetable中的行。

列族Column Family:Table在水平方向有一個或者多個ColumnFamily組成,一個ColumnFamily中可以由任意多個Column組成,即ColumnFamily支持動態(tài)擴展,無需預先定義Column的數(shù)量以及類型,所有Column均以二進制格式存儲,用戶需要自行進行類型轉換。

列column:由Hbase中的列族ColumnFamily +列的名稱(cell)組成列。

單元格cell:HBase中通過row和columns確定的為一個存貯單元稱為cell。

版本version:每個cell都保存著同一份數(shù)據(jù)的多個版本。版本通過時間戳來索引。

Hbase的表結構組成:

1)每行都有row key。

2)每條記錄分隔成列族集合。

3)每個列族由若干列組成

Hbase在linux下安裝請見網(wǎng)址:http://www.yiibai.com/hbase/hbase_installation.html

下面我通過shell 命令 來簡單的演示一下HBase的基本操作吧

進入hbase的安裝目錄:

執(zhí)行 ./bin/hbase shell 命令 進入操作界面 ?

list 命令:列出hbase下存儲的表

創(chuàng)建數(shù)據(jù)庫表:create ‘table_name’,'column family' ?

添加數(shù)據(jù):put‘table name’,’row’,'Column family:column name',’value’

獲取某個行鍵的數(shù)據(jù):

get ‘table_name’,'row_key'

獲取表下所有的數(shù)據(jù):

scan 'table_name'

刪除表下某列的數(shù)據(jù):

delete ‘table_name’, ‘row_key’, ‘column_name’;

刪除表下的某行數(shù)據(jù):

deleteall ?‘table_name’,‘row_key’

更新數(shù)據(jù):

put‘table name’,’row’,'Column family:column name',’new_value’

? ? ? 說到這 基本的操作命令已經(jīng)講完了? 是不是很簡單? 其實HBase基本的操作還是很簡單的,大家裝一下體驗一下 一下子就明白了,后續(xù)我還會給大家介紹用java-Client 操作Hbase? 以及spirng-hadoop asynchbase 等開源的框架二次封裝成獨立的共有的jar包來操作基本的hbase。 這些都是很好的開源東西 大家有時間可以去學習一下。

? ? 寫的有點粗糙,望大家見諒,后面我還會繼續(xù)出hbase個人學習記錄,也是激勵自己 同樣也給大家分享 有什么不對的地方 希望大家提出來。?

? 我是小志碼字,一個簡單碼代碼的小人物。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容