成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

主流NoSQL數(shù)據(jù)庫評(píng)測之HBase

數(shù)據(jù)庫 其他數(shù)據(jù)庫
本篇要評(píng)測的NoSQL產(chǎn)品是HBase,和其他簡單的Key-Value結(jié)構(gòu)不同,HBase主要面向處理海量數(shù)據(jù)的應(yīng)用,可以認(rèn)為是Google BigTable的一個(gè)開源版本。

本篇要評(píng)測的NoSQL產(chǎn)品是HBase,和其他簡單的Key-Value結(jié)構(gòu)不同,HBase主要面向處理海量數(shù)據(jù)的應(yīng)用,可以認(rèn)為是Google BigTable的一個(gè)開源版本。由于Facebook使用HBase來存儲(chǔ)消息內(nèi)容和大數(shù)據(jù)量的實(shí)時(shí)分析而使得這一產(chǎn)品備受關(guān)注。

一、HBase簡介

HBase是用Java開發(fā)的,是一個(gè)開源的、分布式的、面向列的數(shù)據(jù)庫,其存儲(chǔ)的每個(gè)值都有一個(gè)時(shí)間戳,可以根據(jù)定義好的規(guī)則保存多個(gè)版本(默認(rèn)是3個(gè)),這樣就可以記錄數(shù)據(jù)的變動(dòng)情況。

HBase和Hadoop無縫集成,可以利用HDFS實(shí)現(xiàn)數(shù)據(jù)的底層分布式存儲(chǔ),保證冗余和可靠性,通過ZooKeeper來實(shí)現(xiàn)一致性和高可用性。

HBase有兩種部署方式:一種是比較簡單的單實(shí)例方式,它已經(jīng)內(nèi)置了0.20版本的Hadoop包和一個(gè)本地ZooKeeper,它們運(yùn)行在同一個(gè) JVM之下,可以用本地文件系統(tǒng)而不用HDFS。另外一種比較復(fù)雜的分布式部署,需要在每一個(gè)節(jié)點(diǎn)替換自帶的Hadoop包以免有版本問題,而且必須有一個(gè)HDFS實(shí)例,同時(shí)需要獨(dú)立的ZooKeeper集群,這也是處理海量數(shù)據(jù)時(shí)的推薦的部署方式。本文為測試方便,使用簡單的單實(shí)例部署方式。

二、安裝和使用

首先從鏡像下載最新版的HBase,目前最新的版本是0.90.3:

  1. [root@localhost hbase]# wget http://mirror.bjtu.edu.cn/apache/hbase/stable/hbase-0.90.3.tar.gz 

先檢查下本地的JDK版本是否在1.6以上:

  1. [root@localhost hbase]# java -version 
  2. java version "1.6.0_24" 

解壓并配置數(shù)據(jù)文件的路徑:

  1. [root@localhost hbase]# tar zxvf hbase-0.90.3.tar.gz 
  2. [root@localhost hbase]# cd hbase-0.90.3/conf 
  3. [root@localhost conf]# vi hbase-site.xml 
  4. </configuration> 
  5. <configuration> 
  6. <property> 
  7. <name>hbase.rootdir</name
  8. <value>/home/banping/hbase/data</value> 
  9. </property> 

啟動(dòng)Hbase進(jìn)程:

  1. [root@localhost hbase-0.90.3]# bin/start-hbase.sh 
  2. starting master, logging to /home/banping/hbase/hbase-0.90.3/bin/../logs/hbase-root-master-localhost.localdomain.out 

可以通過自帶的shell命令來進(jìn)行基本的操作:

  1. [root@localhost hbase-0.90.3]# bin/hbase shell 
  2. hbase(main):002:0> create 'test','cf' 
  3. 0 row(s) in 0.9940 seconds 
  4. hbase(main):019:0> list 
  5. TABLE 
  6. test 
  7. 1 row(s) in 0.0290 seconds 
  8. hbase(main):022:0> put 'test''row1''cf:a''value1' 
  9. 0 row(s) in 0.2130 seconds 
  10. hbase(main):023:0> put 'test''row2''cf:b''value2' 
  11. 0 row(s) in 0.0120 seconds 
  12. hbase(main):024:0> put 'test''row3''cf:c''value3' 
  13. 0 row(s) in 0.0130 seconds 
  14. hbase(main):025:0> scan 'test' 
  15. ROW COLUMN+CELL 
  16. row1 column=cf:a, timestamp=1310027460885, value=value1 
  17. row2 column=cf:b, timestamp=1310027469458, value=value2 
  18. row3 column=cf:c, timestamp=1310027476262, value=value3 
  19. 3 row(s) in 0.0870 seconds 
  20.  
  21. hbase(main):026:0> get 'test''row1' 
  22. COLUMN CELL 
  23. cf:a timestamp=1310027460885, value=value1 
  24. 1 row(s) in 0.0250 seconds 
  25. hbase(main):027:0> disable 'test' 
  26. 0 row(s) in 2.0920 seconds 
  27. hbase(main):029:0> drop 'test' 
  28. 0 row(s) in 1.1440 seconds 
  29. hbase(main):030:0> exit 

停止Hbase實(shí)例:

  1. [root@localhost hbase-0.90.3]# ./bin/stop-hbase.sh 
  2. stopping hbase...... 

如果使用PHP操作Hbase,可以使用Facebook開源出來的thrift,官網(wǎng)是:http://thrift.apache.org/ ,它是一個(gè)類似ice的中間件,用于不同系統(tǒng)語言間信息交換。首先下載最新的版本0.6.1:

  1. [root@localhost hbase]# wget http://mirror.bjtu.edu.cn/apache//thrift/0.6.1/thrift-0.6.1.tar.gz 

安裝需要的依賴包:

  1. [root@localhost thrift-0.6.1]# sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel 

編譯安裝:

  1. [root@localhost thrift-0.6.1]# ./configure --prefix=/home/banping/hbase/thrift --with-php-config=/usr/local/php/bin/ 
  2. [root@localhost thrift-0.6.1]# make 
  3. [root@localhost thrift-0.6.1]# make install 

生成php和hbase的接口文件:

  1. [root@localhost hbase]# thrift/bin/thrift --gen php /home/banping/hbase/hbase-0.90.3/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift 
  2. [root@localhost hbase]# cd gen-php/Hbase 
  3. [root@localhost Hbase]# ll 
  4. total 320 
  5. -rw-r--r-- 1 root root 285433 Jul 7 19:22 Hbase.php 
  6. -rw-r--r-- 1 root root 27426 Jul 7 19:22 Hbase_types.php 

把PHP客戶端需要的包及剛才生成的接口文件復(fù)制出來供php程序調(diào)用:

  1. [root@localhost Hbase]# cp -a /home/banping/hbase/thrift-0.6.1/lib/php /home/webtest/thrift/ 
  2. [root@localhost Hbase]# cd /home/webtest/thrift/ 
  3. [root@localhost thrift]# mkdir packages 
  4. [root@localhost thrift]# cp -a /home/banping/hbase/gen-php/Hbase /home/webtest/thrift/packages 

啟動(dòng)hbase和thrift進(jìn)程:

  1. [root@localhost hbase-0.90.3]# ./bin/start-hbase.sh 
  2. [root@localhost hbase-0.90.3]# ./bin/hbase-daemon.sh start thrift 
  3. starting thrift, logging to /home/banping/hbase/hbase-0.90.3/bin/../logs/hbase-root-thrift-localhost.localdomain.out 

thrift服務(wù)默認(rèn)監(jiān)聽的端口是9090。至此測試環(huán)境搭建完畢。

#p#

三、測試說明

1、測試環(huán)境

HBase部署在一臺(tái)PC 服務(wù)器上,配置如下:

CPU為Xeon 2.80GHz *4

內(nèi)存為4G

硬盤為一塊400G SATA盤

操作系統(tǒng)為64位CentOS 5.3版本

2、測試方法

采用PHP客戶端進(jìn)行測試,在安裝過程中我們已經(jīng)獲取了PHP客戶端訪問HBase需要的包含文件。

為了不對(duì)測試服務(wù)器產(chǎn)生額外的影響,測試客戶端部署在另外一臺(tái)獨(dú)立的服務(wù)器上,運(yùn)行的PHP的版本是5.3.5,web server是Nginx 0.8.54,通過fastcgi的方式調(diào)用PHP服務(wù)。使用apache ab工具實(shí)現(xiàn)多個(gè)請(qǐng)求和并發(fā)操作。

測試過程首先是進(jìn)行寫操作,通過500個(gè)請(qǐng)求,每個(gè)請(qǐng)求寫入10000條記錄,并發(fā)度為1來共寫入500萬條數(shù)據(jù),每個(gè)行(row)定義為數(shù)字1到 5000000,列(column)標(biāo)記為id:對(duì)應(yīng)的行id,列value為100個(gè)字節(jié)大小的數(shù)據(jù),版本默認(rèn)為記錄3個(gè)。然后是讀操作,發(fā)起5000 個(gè)請(qǐng)求,每個(gè)請(qǐng)求隨機(jī)根據(jù)row id值讀出1000條記錄,并發(fā)度為10共讀出500萬條記錄,評(píng)測的重點(diǎn)是寫入和讀出數(shù)據(jù)的時(shí)間,以及在此過程中服務(wù)器的資源使用情況。

四、測試結(jié)果

1、寫操作

成功寫入500萬條記錄,共耗時(shí)5418秒,平均每秒寫入數(shù)據(jù)923筆。磁盤上的數(shù)據(jù)文件大小620M。寫入過程中,服務(wù)器內(nèi)存、CPU和磁盤等資源使用情況如下圖所示:

可見,內(nèi)存使用平穩(wěn)上升,最后占用1G左右,主要用來緩存數(shù)據(jù),中間有偶爾的內(nèi)存使用高峰,猜測是JAVA 的垃圾回收后會(huì)釋放內(nèi)存。CPU使用非常平穩(wěn),idle穩(wěn)定在79左右,幾乎沒有wait發(fā)生。磁盤IO非常低,但是寫入速度較慢。總體來說占用資源很少,表現(xiàn)也很平穩(wěn)。

2、讀操作

成功讀出500萬條記錄,共耗時(shí)8521秒,平均每秒讀出數(shù)據(jù)587筆。

讀數(shù)據(jù)過程中磁盤IO很低,幾乎沒有波動(dòng)。CPU消耗較多,Idle值穩(wěn)定在13左右,等待CPU資源的進(jìn)程一直有3到14個(gè)。內(nèi)存表現(xiàn)平穩(wěn)沒有波動(dòng)。

五、總結(jié)

通過以上測試結(jié)果可以看出,HBase讀寫效率并不高,因?yàn)樗轻槍?duì)海量數(shù)據(jù)處理來設(shè)計(jì)的,側(cè)重的是海量存儲(chǔ)下的性能而非Key-Value存儲(chǔ)的效率,因此這也是正常的,另外由于寫入速度慢,因此磁盤IO占用非常低,這和其他幾款NoSQL有明顯的區(qū)別。隨著淘寶等國內(nèi)互聯(lián)網(wǎng)巨頭不斷加大使用 HBase的規(guī)模,相信在國內(nèi)會(huì)有越來越多的成功案例。

【編輯推薦】

  1. 主流NoSQL數(shù)據(jù)庫全方位評(píng)測之MongoDB
  2. 主流NoSQL數(shù)據(jù)庫評(píng)測之Tokyo Cabinet
  3. 主流NoSQL數(shù)據(jù)庫評(píng)測之HandlerSocket

 

 

 

責(zé)任編輯:艾婧 來源: IT168
相關(guān)推薦

2011-05-16 10:29:44

HandlerSockNoSQL

2011-07-06 16:36:40

Redis

2011-05-30 09:27:35

NoSQL評(píng)測

2011-06-14 09:09:13

NoSQLMongoDB

2011-09-21 11:21:00

NoSQL

2019-03-20 15:59:11

NoSQLRedis數(shù)據(jù)庫

2024-02-02 10:51:53

2015-05-07 14:25:40

谷歌NoSQL數(shù)據(jù)庫HBase

2015-06-30 12:49:27

HBaseNoSQL分布式

2021-09-28 09:25:05

NoSQL數(shù)據(jù)庫列式數(shù)據(jù)庫

2011-10-09 09:38:03

OracleNoSQL

2011-07-19 09:08:50

JavaNoSQL

2010-04-01 09:45:38

NoSQL

2019-07-08 10:36:34

數(shù)據(jù)庫WebNoSQL

2024-03-28 09:00:00

NoSQL數(shù)據(jù)庫

2011-03-01 09:10:19

開源數(shù)據(jù)庫

2011-04-14 11:14:21

OracleNoSQLMySQL

2014-02-27 10:08:33

NoSQL

2019-07-23 11:41:45

數(shù)據(jù)庫SQLDocker

2011-03-25 14:40:29

Trinity數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 免费簧片视频 | 国产在线第一页 | 在线国产中文字幕 | 亚洲网站在线观看 | 亚洲欧美日韩精品久久亚洲区 | 99久久婷婷 | 91麻豆久久久 | 色影视| 成人免费淫片aa视频免费 | 亚洲精选久久 | 91视频三区 | av在线一区二区三区 | 国产日韩精品久久 | 亚洲性网 | 亚洲成年人免费网站 | 久久99精品久久久 | 成人免费视频网站在线看 | 色资源在线观看 | 久久国产日韩 | 成人精品鲁一区一区二区 | 精品一区二区三区91 | 美女黄频| 嫩草视频入口 | 91文字幕巨乱亚洲香蕉 | 日韩精品免费视频 | 毛片免费看 | 亚洲精品免费在线观看 | 国产精品日日做人人爱 | 日本亚洲欧美 | 精品国产91乱码一区二区三区 | 91视频进入| 一区二区三区成人 | www.狠狠操 | 一区二区在线 | 亚洲精品在线视频 | 久久久精品 | 国产伦精品 | 精品在线观看入口 | 欧美自拍日韩 | 亚洲综合婷婷 | 欧美片网站免费 |