Hadoop創(chuàng)建Hbase表方法指導(dǎo)
在學(xué)習(xí)Hadoop的過程中,你可能會遇到在Hadoop創(chuàng)建Hbase表的問題,本節(jié)和大家介紹一下,歡迎大家一起來學(xué)習(xí)在Hadoop創(chuàng)建Hbase表的方法。
在Hadoop創(chuàng)建Hbase表
之前項目組曾經(jīng)嘗試過Hadoop來進(jìn)行DFS存儲,但是因為當(dāng)時Hadoop版本不穩(wěn)定,或者是我們使用的不深入,感覺Hadoop不是太穩(wěn)定,有些文件掃描時會出錯,因此就放棄了Hadoop的方案。最近在尋找大容量樣本數(shù)據(jù)庫的方案,又想起Hadoop來了,而且最近新出的HBase構(gòu)建在Hadoop之上,實現(xiàn)了一個類似Bigtable的存儲結(jié)構(gòu),恰好能滿足要求。拿來嘗試下。
安裝很簡單,下載HBase的文件,解壓,修改下conf/hbase-site.xml,測試時簡單的用本機(jī):
hbase.rootdir
file:///tmp/hbase-${user.home}/hbase
修改conf/hbase-env.sh,把JAVA_HOME路徑寫進(jìn)去。ok了
執(zhí)行hbase/bin/start-hbase.sh啟動一個hbase服務(wù)器。
運行hbase/bin/hbaseshell進(jìn)入HQL的shell。
進(jìn)入HQLshell有種熟悉的感覺,如同mysql或者sqlite的shell,試著創(chuàng)建了一個表:
createtableuser(name,age);~運行ok,很簡單。
在Hadoop創(chuàng)建Hbase表時插入條數(shù)據(jù):
hql>insertintouser(name,age)values("AlbertLee",26);
Syntaxerror:Type'help;'forusage.
Message:Encountered";"atline1,column56.
hql>
oh,出錯了,看help,原來需要一個row的key,之前看過Google的Bigtable的論文,大概知道這個rowkey是定位一行數(shù)據(jù)的
hql>insertintouser(name,age)values("AlbertLee",26)whererow='al';
1rowinsertedsuccessfully.(0.12sec)
ok,查詢:
hql>select*fromuser;
+-------------------------+-------------------------+-------------------------+
|Row|Column|Cell|
+-------------------------+-------------------------+-------------------------+
|al|age:|26|
+-------------------------+-------------------------+-------------------------+
|al|name:|AlbertLee|
+-------------------------+-------------------------+-------------------------+
恩,看到Rowal這個行,有兩個Column,一個age,一個name。沒有發(fā)現(xiàn)Update語句而是直接用Insert,改下數(shù)據(jù)覆蓋掉就可以了,應(yīng)該會記錄不同的版本的數(shù)據(jù)的,具體再試驗。本節(jié)關(guān)于在Hadoop創(chuàng)建Hbase表內(nèi)容介紹到這里,謝謝關(guān)注。
【編輯推薦】
- Hbase和Hadoop操作文件性能測試
- 深入剖析Hadoop HBase
- Hadoop集群與Hadoop性能優(yōu)化
- Hadoop 從Yahoo向Google的技術(shù)轉(zhuǎn)折
- Hadoop初探