真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

   隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,對數(shù)據(jù)存儲的要求越來越高,在容量、安全性、備份、高可用性等方面都有很高的需求,很受歡迎的關(guān)系型數(shù)據(jù)庫有SQLServer、MySQL、Orcale等,非關(guān)系型數(shù)據(jù)庫有key、value型的redis,Memcached,文檔型數(shù)據(jù)庫有MongoDB、CouchDB,還有列簇類型的Hbase、Cassandra。種類繁多,要學(xué)習(xí)的知識點越來越多,我們在技術(shù)選型時,必須遵循“沒有最好的技術(shù),只有最適合的技術(shù)”。因為業(yè)務(wù)的需要有的折騰新的技術(shù),接下來將初步研究Cassandra的過程做一下筆記,以便后期查閱。

從事鄭州服務(wù)器托管,服務(wù)器租用,云主機,網(wǎng)絡(luò)空間,空間域名,CDN,網(wǎng)絡(luò)代維等服務(wù)。

  1、初識Cassandra

  Apache Cassandra是高度可擴展的,高性能的分布式NoSql數(shù)據(jù)庫。 Cassandra旨在處理許多服務(wù)器上的大量數(shù)據(jù),提供高可用性而無需擔心單點故障。

  Cassandra具有能夠處理大量數(shù)據(jù)的分布式架構(gòu)。 數(shù)據(jù)放置在具有多個復(fù)制因子的不同機器上,以獲得高可用性,而無需擔心單點故障。

官網(wǎng):http://cassandra.apache.org/     幫助文檔:http://cassandra.apache.org/doc/latest/contactus.html 

目前主流的版本:Apache Cassandra 3.11  Apache Cassandra 3.0  

                              Apache Cassandra 2.2    Apache Cassandra 2.1

 目前沒發(fā)現(xiàn)Cassandra比較新書籍,網(wǎng)上能搜到的Cassandra 實戰(zhàn)  Cassandra 權(quán)威指南是基于0.6與0.7,相對目前常用的版本已經(jīng)很陳舊,所以當我們學(xué)習(xí)Cassandra 時,最好的方式是研究官方文檔。

1.1  Cassandra與關(guān)系數(shù)據(jù)庫比較

Cassandra關(guān)系數(shù)據(jù)庫
Cassandra用于處理非結(jié)構(gòu)化數(shù)據(jù)。RDBMS用于處理結(jié)構(gòu)化數(shù)據(jù)。
Cassandra具有靈活的模式。RDBMS具有固定的模式。
在Cassandra中,表是“嵌套鍵值對”列表(行x列鍵x列值)。在RDBMS中,表是數(shù)組的數(shù)組(一行x列)
在Cassandra中,keyspace是包含與應(yīng)用對應(yīng)的數(shù)據(jù)的最外層的容器。在RDBMS中,數(shù)據(jù)庫是包含與應(yīng)用程序?qū)?yīng)的數(shù)據(jù)的最外層的容器。
在Cassandra中,表或列族是鍵空間的實體。在RDBMS中,表是數(shù)據(jù)庫的實體。
在Cassandra中,行是一個復(fù)制單元。在RDBMS中,行是單條記錄。
在Cassandra中,列是一個存儲單元。在RDBMS中,列是表示關(guān)系的屬性。
在Cassandra中,使用集合來表示關(guān)系。在RDBMS中,有外鍵,連接等的概念。

  在MySQL等關(guān)系型數(shù)據(jù)庫中,都有表和庫的概念,不同類型的數(shù)據(jù)庫中庫的創(chuàng)建等方式都是不一樣的,MySQL等關(guān)系型數(shù)據(jù)庫必須先用CREATE語句創(chuàng)建數(shù)據(jù)庫和表結(jié)構(gòu)才能插入數(shù)據(jù),而Redis中根據(jù)配置文件中數(shù)據(jù)庫的個數(shù),已經(jīng)生成若干個數(shù)據(jù)庫,只需要用SELECT切換即可。MongoDB又是特殊的一種特殊的數(shù)據(jù)庫,里面沒有表的概念是庫和集合,在一定的情形下,不用自己創(chuàng)建,可以直接插入數(shù)據(jù)非常的便捷。Cassandra里面沒有庫的概念,里面是keyspace和表的實體。有些使用方法和MySQL等關(guān)系型數(shù)據(jù)庫相似,有些地方兩者又有很大的差距。

1.2  Cassandra與HBase比較

HBaseCassandra
HBase是基于Bigtable(Google)Cassandra基于DynamoDB(亞馬遜)。 它最初是由前亞馬遜工程師在Facebook開發(fā)的。 這是Cassandra支持多數(shù)據(jù)中心的原因之一。
HBase使用Hadoop基礎(chǔ)架構(gòu)(Zookeeper,NameNode,HDFS)。 部署Hadoop的組織必須具備Hadoop和HBase的知識。Cassandra與Hadoop分開開發(fā),其基礎(chǔ)工具和操作知識的要求與Hadoop不同。 然而,對于分析,許多Cassandra部署使用Cassandra + Storm(使用zookeeper)和/或Cassandra + Hadoop。
HBase-Hadoop基礎(chǔ)工具有幾個由Zookeeper,Name Node,HBase master和數(shù)據(jù)節(jié)點組成的“移動部件”,Zookeeper是集群的,自然是容錯的。名稱節(jié)點需要集群為容錯。Cassandra使用單個節(jié)點類型。 所有節(jié)點相等并執(zhí)行所有功能。 任何節(jié)點都可以作為協(xié)調(diào)器,確保沒有Spof。 添加Storm或Hadoop當然會增加基礎(chǔ)設(shè)施的復(fù)雜性。
HBase非常適合進行基于范圍的掃描。Cassandra不支持基于范圍的行掃描,這可能在某些用例中是有限制的。
HBase提供跨越一個HBase集群的異步復(fù)制。Cassandra隨機分區(qū)提供了跨越單行的行復(fù)制。
HBase僅支持有序分區(qū)。Cassandra正式支持有序分區(qū),但Cassandra沒有生產(chǎn)用戶使用有序分配,由于“熱點”創(chuàng)建并操作困難等熱點引起。
由于有序分區(qū),HBase可以輕松地水平放置,同時還支持Rowkey范圍掃描。如果數(shù)據(jù)存儲在Cassandra的列中以支持范圍掃描,Cassandra中行大小的實際限制是10兆字節(jié)。
HBase支持原子比較和設(shè)置,HBase支持一行內(nèi)的事務(wù)。Cassandra不支持原子比較和設(shè)置。
HBase不支持單行讀取負載平衡,一行只有一個區(qū)域服務(wù)器一次提供。Cassandra將支持單行讀取負載平衡。
Bloom過濾器可用于HBase作為另一種形式的索引。Cassandra使用bloom過濾器進行鍵查找。
觸發(fā)器由HBase中的協(xié)處理器功能支持。Cassandra不支持協(xié)處理器功能

  近年來隨著大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)鏈的發(fā)展,Hadoop、Spark、Storm等技術(shù)發(fā)展迅速,同時,好多做大數(shù)據(jù)相關(guān)的技術(shù)人員供不應(yīng)求,身價翻了好多,讓我這種屌絲好生羨慕。而HBase是大數(shù)據(jù)存儲領(lǐng)域里的先鋒和基石。扮演著非常重要的角色。但是整體架構(gòu)的體量確實不小,整體的架構(gòu)比Cassandra復(fù)雜很多,無形中加大了系統(tǒng)的復(fù)雜度和可維護性。

1.3  使用Cassandra的互聯(lián)網(wǎng)公司

國外:

  • eBay:200+TB,400+M寫,100+M讀,應(yīng)用場景:商品詳情頁上的Social Signals,如Like,Want,Own,Favorites等;用戶和商品的hunch taste graph;時間序列如移動通知,反作弊,soa,監(jiān)控,日志服務(wù)等;

  • Netflix:包含288+96+60個實例的大規(guī)模集群,每秒110萬的寫操作,3個AWS EC2 美國東部region的zone自動復(fù)制副本,總計330萬寫操作/秒;

  • Apple:75000+ nodes, 10s  of PBs,Millions ops/s, largest cluster 1000+ nodes

國內(nèi):

  • 360  從公開的資料看,應(yīng)該有至少1500臺服務(wù)器的集群。360選用cassandra的原因如下:團隊人員少,需求緊,選擇開源項目;無單點,無中心,適合在線業(yè)務(wù);代碼易懂,團隊成員有代碼基礎(chǔ);社區(qū)比較活躍。

  • 杭州同盾科技  具體使用量暫不清楚,只知道底層的數(shù)據(jù)存儲等架構(gòu)主要基于Cassandra,是一家大數(shù)據(jù)風控、反欺詐公司,發(fā)展非常迅速。

2、安裝與實踐 

1、環(huán)境需求

Installing Cassandra


Prerequisites
The latest version of Java 8, either the Oracle Java Standard Edition 8 or OpenJDK 8. To
verify that you have the correct version of java installed, type java -version.
For using cqlsh, the latest version of Python 2.7. To verify that you have
the correct version of Python installed, type python --version
根據(jù)官網(wǎng)知道文檔需要java8以及python2.7的支持  現(xiàn)在好多生產(chǎn)環(huán)境已經(jīng)都在使用CentOS7.X操作系
統(tǒng)了,而CentOS7.X是自帶python2.7,我們自行檢查一下,缺少python2.7和java8的情況,請自己安裝
即可。

2、常見安裝方式

  • 二進制安裝 

  • 源碼安裝

  • yum 等包管理器安裝

    安裝指導(dǎo)網(wǎng)頁:http://cassandra.apache.org/download/ 

二進制安裝方式簡答快捷,不需要編譯,安裝包下載后,對網(wǎng)絡(luò)依賴比較低。

3、單機安裝測試

操作系統(tǒng):CentOS  7.1

Cassandra:Cassandra 3.11.1 

安裝方式:yum安裝  能夠上網(wǎng),

yum源信息:

/etc/yum.repos.d/cassandra.repo
[cassandra]
name=Apache Cassandra
baseurl=
gpgcheck=1
repo_gpgcheck=1
gpgkey=
安裝
sudo yum install cassandra

啟動服務(wù)
service cassandra start

服務(wù)開機啟動
chkconfig cassandra on

Cassandra的相關(guān)內(nèi)容比較多,后續(xù)再介紹常見的對keyspace的操作,以及對表操作,增刪改查,日常監(jiān)控、安全與備份、高可用性集群等相關(guān)知識。


文章名稱:NoSQL數(shù)據(jù)庫Cassandra(一)
鏈接URL:http://weahome.cn/article/gjghhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部