當前位置:首頁 » 操作系統 » hbase資料庫

hbase資料庫

發布時間: 2022-01-09 17:42:10

A. 為什麼說hbase是一個面向列的資料庫

在說HBase之前,我想再嘮叨幾句。做互聯網應用的哥們兒應該都清楚,互聯網應用這東西,你沒辦法預測你的系統什麼時候會被多少人訪問,你面臨的用戶到底有多少,說不定今天你的用戶還少,明天系統用戶就變多了,結果您的系統應付不過來了了,不幹了,這豈不是咱哥幾個的悲哀,說時髦點就叫「杯具啊」。

其實說白了,這些就是事先沒有認清楚互聯網應用什麼才是最重要的。從系統架構的角度來說,互聯網應用更加看重系統性能以及伸縮性,而傳統企業級應用都是比較看重數據完整性和數據安全性。那麼我們就來說說互聯網應用伸縮性這事兒.對於伸縮性這事兒,哥們兒我也寫了幾篇博文,想看的兄弟可以參考我以前的博文,對於web server,app server的伸縮性,我在這里先不說了,因為這部分的伸縮性相對來說比較容易一點,我主要來回顧一些一個慢慢變大的互聯網應用如何應對資料庫這一層的伸縮。

首先剛開始,人不多,壓力也不大,搞一台資料庫伺服器就搞定了,此時所有的東東都塞進一個Server里,包括web server,app server,db server,但是隨著人越來越多,系統壓力越來越多,這個時候可能你把web server,app server和db server分離了,好歹這樣可以應付一陣子,但是隨著用戶量的不斷增加,你會發現,資料庫這哥們不行了,速度老慢了,有時候還會宕掉,所以這個時候,你得給資料庫這哥們找幾個伴,這個時候Master-Salve就出現了,這個時候有一個Master Server專門負責接收寫操作,另外的幾個Salve Server專門進行讀取,這樣Master這哥們終於不抱怨了,總算讀寫分離了,壓力總算輕點了,這個時候其實主要是對讀取操作進行了水平擴張,通過增加多個Salve來克服查詢時CPU瓶頸。一般這樣下來,你的系統可以應付一定的壓力,但是隨著用戶數量的增多,壓力的不斷增加,你會發現Master server這哥們的寫壓力還是變的太大,沒辦法,這個時候怎麼辦呢?你就得切分啊,俗話說「只有切分了,才會有伸縮性嘛」,所以啊,這個時候只能分庫了,這也是我們常說的資料庫「垂直切分」,比如將一些不關聯的數據存放到不同的庫中,分開部署,這樣終於可以帶走一部分的讀取和寫入壓力了,Master又可以輕松一點了,但是隨著數據的不斷增多,你的資料庫表中的數據又變的非常的大,這樣查詢效率非常低,這個時候就需要進行「水平分區」了,比如通過將User表中的數據按照10W來劃分,這樣每張表不會超過10W了。

綜上所述,一般一個流行的web站點都會經歷一個從單台DB,到主從復制,到垂直分區再到水平分區的痛苦的過程。其實資料庫切分這事兒,看起來原理貌似很簡單,如果真正做起來,我想凡是sharding過資料庫的哥們兒都深受其苦啊。對於資料庫伸縮的文章,哥們兒可以看看後面的參考資料介紹。

好了,從上面的那一堆廢話中,我們也發現資料庫存儲水平擴張scale out是多麼痛苦的一件事情,不過幸好技術在進步,業界的其它弟兄也在努力,09年這一年出現了非常多的Nosql資料庫,更准確的應該說是No relation資料庫,這些資料庫多數都會對非結構化的數據提供透明的水平擴張能力,大大減輕了哥們兒設計時候的壓力。下面我就拿Hbase這分布式列存儲系統來說說。

一 Hbase是個啥東東?
在說Hase是個啥傢伙之前,首先我們來看看兩個概念,面向行存儲和面向列存儲。面向行存儲,我相信大夥兒應該都清楚,我們熟悉的RDBMS就是此種類型的,面向行存儲的資料庫主要適合於事務性要求嚴格場合,或者說面向行存儲的存儲系統適合OLTP,但是根據CAP理論,傳統的RDBMS,為了實現強一致性,通過嚴格的ACID事務來進行同步,這就造成了系統的可用性和伸縮性方面大大折扣,而目前的很多NoSQL產品,包括Hbase,它們都是一種最終一致性的系統,它們為了高的可用性犧牲了一部分的一致性。好像,我上面說了面向列存儲,那麼到底什麼是面向列存儲呢?Hbase,Casandra,Bigtable都屬於面向列存儲的分布式存儲系統。看到這里,如果您不明白Hbase是個啥東東,不要緊,我再總結一下下:

Hbase是一個面向列存儲的分布式存儲系統,它的優點在於可以實現高性能的並發讀寫操作,同時Hbase還會對數據進行透明的切分,這樣就使得存儲本身具有了水平伸縮性。

二 Hbase數據模型
HBase,Cassandra的數據模型非常類似,他們的思想都是來源於Google的Bigtable,因此這三者的數據模型非常類似,唯一不同的就是Cassandra具有Super cloumn family的概念,而Hbase目前我沒發現。好了,廢話少說,我們來看看Hbase的數據模型到底是個啥東東。

在Hbase裡面有以下兩個主要的概念,Row key,Column Family,我們首先來看看Column family,Column family中文又名「列族」,Column family是在系統啟動之前預先定義好的,每一個Column Family都可以根據「限定符」有多個column.下面我們來舉個例子就會非常的清晰了。

假如系統中有一個User表,如果按照傳統的RDBMS的話,User表中的列是固定的,比如schema 定義了name,age,sex等屬性,User的屬性是不能動態增加的。但是如果採用列存儲系統,比如Hbase,那麼我們可以定義User表,然後定義info 列族,User的數據可以分為:info:name = zhangsan,info:age=30,info:sex=male等,如果後來你又想增加另外的屬性,這樣很方便只需要info:newProperty就可以了。

也許前面的這個例子還不夠清晰,我們再舉個例子來解釋一下,熟悉SNS的朋友,應該都知道有好友Feed,一般設計Feed,我們都是按照「某人在某時做了標題為某某的事情」,但是同時一般我們也會預留一下關鍵字,比如有時候feed也許需要url,feed需要image屬性等,這樣來說,feed本身的屬性是不確定的,因此如果採用傳統的關系資料庫將非常麻煩,況且關系資料庫會造成一些為null的單元浪費,而列存儲就不會出現這個問題,在Hbase里,如果每一個column 單元沒有值,那麼是佔用空間的。下面我們通過兩張圖來形象的表示這種關系:

上圖是傳統的RDBMS設計的Feed表,我們可以看出feed有多少列是固定的,不能增加,並且為null的列浪費了空間。但是我們再看看下圖,下圖為Hbase,Cassandra,Bigtable的數據模型圖,從下圖可以看出,Feed表的列可以動態的增加,並且為空的列是不存儲的,這就大大節約了空間,關鍵是Feed這東西隨著系統的運行,各種各樣的Feed會出現,我們事先沒辦法預測有多少種Feed,那麼我們也就沒有辦法確定Feed表有多少列,因此Hbase,Cassandra,Bigtable的基於列存儲的數據模型就非常適合此場景。說到這里,採用Hbase的這種方式,還有一個非常重要的好處就是Feed會自動切分,當Feed表中的數據超過某一個閥值以後,Hbase會自動為我們切分數據,這樣的話,查詢就具有了伸縮性,而再加上Hbase的弱事務性的特性,對Hbase的寫入操作也將變得非常快。

上面說了Column family,那麼我之前說的Row key是啥東東,其實你可以理解row key為RDBMS中的某一個行的主鍵,但是因為Hbase不支持條件查詢以及Order by等查詢,因此Row key的設計就要根據你系統的查詢需求來設計了額。我還拿剛才那個Feed的列子來說,我們一般是查詢某個人最新的一些Feed,因此我們Feed的Row key可以有以下三個部分構成<userId><timestamp><feedId>,這樣以來當我們要查詢某個人的最進的Feed就可以指定Start Rowkey為<userId><0><0>,End Rowkey為<userId><Long.MAX_VALUE><Long.MAX_VALUE>來查詢了,同時因為Hbase中的記錄是按照rowkey來排序的,這樣就使得查詢變得非常快。

三 Hbase的優缺點
1 列的可以動態增加,並且列為空就不存儲數據,節省存儲空間.

2 Hbase自動切分數據,使得數據存儲自動具有水平scalability.

3 Hbase可以提供高並發讀寫操作的支持

Hbase的缺點:

1 不能支持條件查詢,只支持按照Row key來查詢.

2 暫時不能支持Master server的故障切換,當Master宕機後,整個存儲系統就會掛掉.

四.補充
1.數據類型,HBase只有簡單的字元類型,所有的類型都是交由用戶自己處理,它只保存字元串。而關系資料庫有豐富的類型和存儲方式。
2.數據操作:HBase只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有復雜的表和表之間的關系,而傳統資料庫通常有各式各樣的函數和連接操作。
3.存儲模式:HBase是基於列存儲的,每個列族都由幾個文件保存,不同的列族的文件時分離的。而傳統的關系型資料庫是基於表格結構和行模式保存的
4.數據維護,HBase的更新操作不應該叫更新,它實際上是插入了新的數據,而傳統資料庫是替換修改
5.可伸縮性,Hbase這類分布式資料庫就是為了這個目的而開發出來的,所以它能夠輕松增加或減少硬體的數量,並且對錯誤的兼容性比較高。而傳統資料庫通常需要增加中間層才能實現類似的功能

B. Hbase和傳統資料庫的區別

HBase與傳統關系資料庫的區別?
答:主要體現在以下幾個方面:1.數據類型。關系資料庫採用關系模型,具有豐富的數據類型和儲存方式。HBase則採用了更加簡單的數據模型,它把數據儲存為未經解釋的字元串,用戶可以把不同格式的結構化數據和非結構化數據都序列化成字元串保存到HBase中,用戶需要自己編寫程序把字元串解析成不同的數據類型。
2.數據操作。關系資料庫中包含了豐富的操作,如插入、刪除、更新、查詢等,其中會涉及復雜的多表連接,通常是藉助多個表之間的主外鍵關聯來實現的。HBase操作則不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等,因為HBase在設計上就避免了復雜的表與表之間的關系,通常只採用單表的主鍵查詢,所以它無法實現像關系資料庫中那樣的表與表之間的連接操作。
3.存儲模式。關系資料庫是基於行模式存儲的,元祖或行會被連續地存儲在磁碟頁中。在讀取數據時,需要順序掃描每個元組,然後從中篩選出查詢所需要的屬性。如果每個元組只有少量屬性的值對於查詢是有用的,那麼基於行模式存儲就會浪費許多磁碟空間和內存帶寬。HBase是基於列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的,它的優點是:可以降低I/O開銷,支持大量並發用戶查詢,因為僅需要處理可以回答這些查詢的列,而不是處理與查詢無關的大量數據行;同一個列族中的數據會被一起進行壓縮,由於同一列族內的數據相似度較高,因此可以獲得較高的數據壓縮比。
4.數據索引。關系資料庫通常可以針對不同列構建復雜的多個索引,以提高數據訪問性能。與關系資料庫不同的是,HBase只有一個索引——行鍵,通過巧妙的設計,HBase中所有訪問方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使整個系統不會慢下來。由於HBase位於Hadoop框架之上,因此可以使用Hadoop MapRece來快速、高效地生成索引表。
6.數據維護。在關系資料庫中,更新操作會用最新的當前值去替換記錄中原來的舊值,舊值被覆蓋後就不會存在。而在HBase中執行更新操作時,並不會刪除數據舊的版本,而是生成一個新的版本,舊有的版本仍舊保留。
7.可伸縮性。關系資料庫很難實現橫向擴展,縱向擴展的空間也比較有限。相反,HBase和BigTable這些分布式資料庫就是為了實現靈活的水平擴展而開發的,因此能夠輕易地通過在集群中增加或者減少硬體數量來實現性能的伸縮。
但是,相對於關系資料庫來說,HBase也有自身的局限性,如HBase不支持事務,因此無法實現跨行的原子性。
註:本來也想來問這個問題,然後復制一下的。結果找不到,只好自己手打了,麻煩復制拿去用的同學點下贊唄。

C. 為什麼說HBase是列式資料庫

Hbase是一個面向列存儲的分布式存儲系統,它的優點在於可以實現高性能的並發讀寫操作,同時Hbase還會對數據進行透明的切分,這樣就使得存儲本身具有了水平伸縮性。

通常,順序讀取數據要比隨機訪問更快。而且,硬碟定址時間的提升比起CPU速度的進步要慢得多 (參看摩爾定律),在使用硬碟作為存儲媒介的系統上這種情況很可能還會持續一段時間。

下面簡單羅列了一些選擇行資料庫還是列資料庫的權衡依據。當然,如果能夠把數據全放在內存中,那麼使用內存資料庫性能會更好。

特點:

因為硬碟定址時間相較於計算機上其他部件的運行速度來說不是一般的慢,所以常用相同工作負載下的硬碟訪問性能來比較行資料庫和列資料庫。

在只需要根據某幾列來聚合數據的時候按列的數據組織方式更有效。因為這樣只需要讀取一部分數據,要比讀取全部數據更快。

當只需要修改某一列值的時候按列的數據組織方式更有效。因為可以直接找到某列數據並改,而與行中的其他列無關。

D. hbase資料庫是關系型資料庫嗎

Hive 存儲格式和關系型資料庫之間進行導入導出

最近更新時間:2020-09-29 15:54:18

前往 GitHub 編輯

  • 我的收藏

    本頁目錄:

  • 1. 開發准備

  • 2. 將關系型資料庫導入到 Hive 中

  • 3. 將 Hive 導入到關系型資料庫中

  • 使用 HDFS 中的 Hive 數據

  • 使用 Hcatalog 進行導入

  • 4. 將 orc 格式的 Hive 表格導入到關系型資料庫中

  • 本文介紹了使用騰訊雲 Sqoop 服務將數據在 MySQL 和 Hive 之間相互導入導出的方法。

    1. 開發准備

  • 確認已開通騰訊雲,並且創建了一個 EMR 集群。在創建 EMR 集群的時候需要在軟體配置界面選擇 Sqoop,Hive 組件。

  • Sqoop 等相關軟體安裝在路徑 EMR 雲伺服器的/usr/local/service/路徑下。

  • 2. 將關系型資料庫導入到 Hive 中

    本節將繼續使用上一節的用例。

    進入 EMR 控制台,復制目標集群的實例 ID,即集群的名字。再進入關系型資料庫控制台,使用 Ctrl+F 進行搜索,找到集群對應的 MySQL 資料庫,查看該資料庫的內網地址 $mysqlIP。

    登錄 EMR 集群中的任意機器,最好是登錄到 Master 節點。登錄 EMR 的方式請參考登錄 linux 實例。這里我們可以選擇使用 WebShell 登錄。單擊對應雲伺服器右側的登錄,進入登錄界面,用戶名默認為 root,密碼為創建 EMR 時用戶自己輸入的密碼。輸入正確後,即可進入命令行界面。

    在 EMR 命令行先使用以下指令切換到 Hadoop 用戶,並進入 Hive 文件夾

  • [root@172 ~]# su hadoop[hadoop@172 ~]# cd /usr/local/service/hive

  • 新建一個 Hive 資料庫:

  • [hadoop@172 hive]$ hive

  • hive> create database hive_from_sqoop;

  • OK

  • Time taken: 0.167 seconds

  • 使用 sqoop-import 命令把上一節中創建的 MySQL 資料庫導入到 Hive 中:

  • [hadoop@172 hive]# cd /usr/local/service/sqoop

  • [hadoop@172 sqoop]$ bin/sqoop-import --connect jdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test_back --hive-database hive_from_sqoop --hive-import --hive-table hive_from_sqoop

  • $mysqlIP:騰訊雲關系型資料庫(CDB)的內網地址。

  • test:MySQL 資料庫名稱。

  • --table:要導出的 MySQL 表名。

  • --hive-database:Hive 資料庫名。

  • --hive-table:導入的 Hive 表名。

  • 執行指令需要輸入您的 MySQL 密碼,默認為您創建 EMR 集群時設置的密碼。執行成功後,可以在 Hive 中查看導入的資料庫:

  • hive> select * from hive_from_sqoop;OK1 first 2018-07-03 16:07:46.0 spark2 second 2018-07-03 15:30:57.0 mr3 third 2018-07-03 15:31:07.0 yarn4 forth 2018-07-03 15:39:38.0 hbase5 fifth 2018-07-03 16:02:29.0 hive6 sixth 2018-07-03 16:09:58.0 sqoopTime taken: 1.245 seconds, Fetched: 6 row(s)

  • 3. 將 Hive 導入到關系型資料庫中

    Sqoop 支持將 Hive 表中的數據導入到關系型資料庫中。先在 Hive 中創建新表並導入數據。

    登錄 EMR 集群中的任意機器,最好是登錄到 Master 節點。在 EMR 命令行先使用以下指令切換到 Hadoop 用戶,並進入 Hive 文件夾:

  • [root@172 ~]# su hadoop[hadoop@172 ~]# cd /usr/local/service/hive

  • 新建一個 bash 腳本文件 gen_data.sh,在其中添加以下代碼:

  • #!/bin/bashMAXROW=1000000 #指定生成數據行數for((i = 0; i < $MAXROW; i++))doecho $RANDOM, "$RANDOM"done

  • 並按如下方式執行:

  • [hadoop@172 hive]$ ./gen_data.sh > hive_test.data

  • 這個腳本文件會生成1,000,000個隨機數對,並且保存到文件 hive_test.data 中。

    使用如下指令把生成的測試數據先上傳到 HDFS 中:

  • [hadoop@172 hive]$ hdfs dfs -put ./hive_test.data /$hdfspath

  • 其中 $hdfspath 為 HDFS 上的您存放文件的路徑。

    連接 Hive 並創建測試表:

  • [hadoop@172 hive]$ bin/hivehive> create database hive_to_sqoop; #創建資料庫 hive_to_sqoopOK

  • Time taken: 0.176 secondshive> use hive_to_sqoop; #切換資料庫OK

  • Time taken: 0.176 secondshive> create table hive_test (a int, b string)hive> ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';#創建數據表 hive_test, 並指定列分割符為』,』

  • OK

  • Time taken: 0.204 secondshive> load data inpath "/$hdfspath/hive_test.data" into table hive_test; #導入數據

  • $hdfspath 為 HDFS 上的您存放文件的路徑。

    成功後可使用quit命令退出 Hive 數據倉庫。連接關系型資料庫並創建對應的表格:

  • [hadoop@172 hive]$ mysql -h $mysqlIP –p

  • Enter password:

  • 其中 $mysqlIP 為該資料庫的內網地址,密碼為您創建集群時設置的密碼。

    在 MySQL 中創建一個名為 test 的表格,MySQL 中的表欄位名字和 Hive 中的表欄位名字必須完全一致:

  • mysql> create table table_from_hive (a int,b varchar(255));

  • 成功創建表格後即可退出 MySQL。

    使用 Sqoop 把 Hive 數據倉庫中的數據導入到關系型資料庫中有兩種方法,可以直接使用 HDFS 存儲的 Hive 數據,也可以使用 Hcatalog 來進行數據的導入。

    使用 HDFS 中的 Hive 數據

    切換進入 Sqoop 文件夾,然後使用以下指令把 Hive 資料庫中的數據導出到關系型資料庫中:

  • [hadoop@172 hive]$ cd ../sqoop/bin

  • [hadoop@172 bin]$ ./sqoop-export --connect jdbc:mysql://$mysqlIP/test --username root -P

  • --table table_from_hive --export-dir /usr/hive/warehouse/hive_to_sqoop.db/hive_test

  • 其中 $mysqlIP 為您的關系型資料庫的內網 IP 地址,test 為關系型資料庫中的資料庫名,--table 後跟的參數為您的關系型資料庫的表名,--export-dir 後跟的參數為 Hive 表中的數據在 HDFS 中存儲的位置。

    使用 Hcatalog 進行導入

    切換進入 Sqoop 文件夾,然後使用以下指令把 Hive 資料庫中的數據導出到關系型資料庫中:

  • [hadoop@172 hive]$ cd ../sqoop/bin

  • [hadoop@172 bin]$ ./sqoop-export --connect jdbc:mysql://$mysqlIP/test --username root -P

  • --table table_from_hive --hcatalog-database hive_to_sqoop --hcatalog-table hive_test

  • 其中 $mysqlIP 為您的關系型資料庫的內網 IP 地址,test 為關系型資料庫中的資料庫名,--table 後跟的參數為您的關系型資料庫的表名,--hcatalog-database 後面跟的參數是要導出的 Hive 表所在的資料庫的名稱,--hcatalog-table 後面跟的參數是要 Hive 中要導出的表的名稱。

    操作完成後可以進入關系型資料庫查看是否導入成功:

  • [hadoop@172 hive]$ mysql -h $mysqlIP –p #連接 MySQLEnter password:mysql> use test;

  • Database changed

  • mysql> select count(*) from table_from_hive; #現在表中有1000000條數據+----------+| count(*) |+----------+| 1000000 |+----------+1 row in set (0.03 sec)

  • mysql> select * from table_from_hive limit 10; #查看錶中前10條記錄+-------+----------+| a | b |

  • +-------+----------+

  • | 28523 | "3394" || 31065 | "24583" |

  • | 399 | "23629" || 18779 | "8377" |

  • | 25376 | "30798" || 20234 | "22048" |

  • | 30744 | "32753" || 21423 | "6117" |

  • | 26867 | "16787" || 18526 | "5856" |

  • +-------+----------+

  • 10 rows in set (0.00 sec)

  • 更多關於 sqoop-export 命令的參數可以通過如下命令查看:

  • [hadoop@172 bin]$ ./sqoop-export --help

  • 4. 將 orc 格式的 Hive 表格導入到關系型資料庫中

E. 本地如何連接hbase資料庫

1.使用xshell或者crt等工具連接到hbase所在的伺服器

2.然後通過ls查找到hbase

3.然後cd 切換到hbase目錄下

4.bin/start-hbase.sh

5.bin/hbase shell

6.list 查看該用戶下的所有表格

F. hbase資料庫查詢命令有什麼

您好,對於你的遇到的問題,我很高興能為你提供幫助,我之前也遇到過喲,以下是我的個人看法,希望能幫助到你,若有錯誤,還望見諒!。展開全部

  1. select

  2. *

  3. from

  4. a

  5. where

  6. 列名

  7. <>0

  8. --<>標示不等於

  9. 2.--not

  10. in

  11. select

  12. *

  13. from

  14. a

  15. where

  16. 列名

  17. not

  18. in(0)

  19. --這樣是用索

  20. 不用。

  21. 3.--子

  22. where

  23. select

  24. *

  25. from

  26. a

  27. where

  28. a

  29. not

  30. in

  31. (select

  32. 列名from

  33. a

  34. where

  35. a

  36. ='1')非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!

G. hbase是資料庫還是查詢方式

hadoop上對google bigtable的開源實現,是列式資料庫。

H. hbase的特點,以及和其他nosql資料庫的異同

NoSQL太火,冒出太多產品了,保守估計也成百上千了。

互聯網公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時提供了更加豐富的數據結構和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復,同時支持replication提供讀可擴展和高可用。

2. Disk-Based KV Store: Leveldb
真正基於磁碟的key-value storage, 模型單一簡單,數據量不受限於內存大小,數據落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優化,順序寫盤的方式對於新硬體ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。

3. Document Store: Mongodb
分布式nosql,具備了區別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過於提供了sql介面,是目前nosql里最像mysql的,只是沒有ACID的特性,發展很快,支持了索引等特性,上手容易,對於數據量遠超內存限制的場景來說,還需要慎重。

4. Column Table Store: HBase
這個富二代似乎不用贅述了,最大的優勢是開源,對於普通的scan和基於行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區發展很快,各種基於其上的開源產品不少,來解決諸如join、聚集運算等復雜查詢。

I. 如何查看hbase資料庫當前的狀態

可以訪問以下網站查看hbase服務狀態及master等等信息,
http。//retailvm1d。nam。nsroot。net。60010/zk.jsp
HBase is rooted at /hbase
Active master address: retailvm1d,39706,1377502441684
Backup master addresses:
Region server holding ROOT: retailvm1d,38110,1377502442130
Region servers:
retailvm1d,38110,1377502442130
Quorum Server Statistics:
localhost:2181
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
Clients:
/127.0.0.1:36679[1](queued=0,recved=441,sent=448)
/127.0.0.1:36681[1](queued=0,recved=502,sent=503)
/127.0.0.1:36678[1](queued=0,recved=521,sent=543)
/127.0.0.1:37218[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/159
Received: 1533
Sent: 1562
Connections: 4
Outstanding: 0
Zxid: 0x49
Mode: standalone
Node count: 23

J. 如何用eclipse中java控制linux中虛擬機中的hbase資料庫

一、新建本地java工程
file->new->java project

二、添加jar包和配置文件
1、添加JAR包
右擊Propertie在彈出的快捷菜單中選擇Java Build Path對話框,在該對話框中單擊Libraries選項卡,在該選項卡下單擊
Add External JARs按鈕,定位到$HBASE/lib目錄下,並選取如下JAR包。
hadoop-core-1.0.0.jar
commons-loggings-version.jar
commons-cli-version.jar
commons-lang-version.jar
commons-configuration-version.jar
hbase-0.94.1.jar
zookeeper-3.4.3.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
log4j-1.2.16.jar
protobuf-java-2.4.1.jar
2、添加hbase-site.xml配置文件
在工程根目錄下創建conf文件夾,將$HBASE_HOME/conf/目錄中的hbase-site.xml文件復制到該文件夾中。通過右鍵
選擇Propertie->Java Build Path->Libraries->Add Class Folder。

3、windows下開發HBase應用程序,HBase部署在linux環境中,在運行調試時可能會出現無法找到主機,類似異常信息如下:java.net.UnknownHostException: unknown host: master
解決辦法如下:在C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下信息
192.168.2.34 master

熱點內容
rsa解密演算法c 發布:2024-11-16 22:41:43 瀏覽:26
python3log 發布:2024-11-16 22:41:34 瀏覽:657
手機如何熱點密碼是多少 發布:2024-11-16 22:41:31 瀏覽:349
android上傳多個文件 發布:2024-11-16 22:36:24 瀏覽:312
蘋果微信25區怎麼改為安卓區 發布:2024-11-16 22:32:39 瀏覽:650
數控編程輕松 發布:2024-11-16 22:23:38 瀏覽:813
能緩存老友記的播放器 發布:2024-11-16 22:22:16 瀏覽:479
python寫入文件字典 發布:2024-11-16 22:21:14 瀏覽:15
androidandbase 發布:2024-11-16 22:16:34 瀏覽:417
phpifecho 發布:2024-11-16 21:57:11 瀏覽:724