
現如今大量的中小型公司并沒有大規模的數據,如果一家公司的數據量超過100T,且能通過數據產生新的價值,基本可以說是大數據公司了 。起初,一個創業公司的基本思路就是首先架構一個或者幾個ECS,后面加入MySQL,如果有圖片需求還可加入磁盤,該架構的基本能力包括事務、存儲、索引和計算力。隨著公司的慢慢發展,數據量在不斷地增大,其通過MySQL及磁盤基本無法滿足需求,只有分布式化。 這個時候MySQL變成了HBase,檢索變成了Solr/ES,再ECS提供的計算力變成了Spark。但這也會面臨存儲量大且存儲成本高等問題。
非結構化業務增多

另外一個趨勢就是非結構化的數據越來越多,數據結構的模式不僅僅是SQL,時序、時空、graph模式也越來越多,需要一些新的存儲結構或新的算法去解決這類問題,也意味著所需要做的工程量就會相對較高。
引入更多的數據
對于數據處理大致可歸類為四個方面,分別是復雜性、靈活性、延遲<讀,寫>和分布式,其中分布式肯定是不可少的,一旦缺少分布式就無法解決大規模問題 。靈活性的意思是業務可以任意改變的;復雜性就是運行一條SQL能夠訪問多少數據或者說SQL是否復雜;延遲也可分為讀與寫的延遲。hadoop?& Spark可以解決計算復雜性和靈活性,但是解決不了延遲的問題;HBase&分布式索引、分布式數據庫可以解決靈活性與延遲的問題,但由于它沒有很多計算節點,所以解決不了計算復雜性的問題。Kylin(滿足讀延遲)在計算復雜性與延遲之間找了一個平衡點,這個平衡點就是怎樣快速出報表,但對于這個結果的輸入時間我們并不關心,對于大部分的報表類的需求就是這樣的。每個引擎都是一定的側重,沒有銀彈!
ApsaraDB HBase產品架構及改進
應對的辦法
我們也不能解決所有的問題,我們只是解決其中大部分的問題。如何找到一個在工程上能夠解決大部分問題的方案至關重要,應對辦法:
分布式:提供擴展性
計算力延伸:算子+SQL,從ECS到Spark其本質其實就是一種計算力的延伸
分層設計:降低復雜性,提供多模式的存儲模型
云化:復用資源&彈性,降低成本
基本構架

首先包含了兩個分離
分別是HDFS與分布式Region分布式檢索分離
SQL時空圖時序Cube與分布式Region檢索分離
大致的分層機構如下:
第一層:介質層,熱SSD介質、溫SSD&SATA 混合、冷純SATA(做EC)
第二層:分布式文件系統,也就是盤古。事實上越是底層越容易做封裝優化。
第三層:分布式安全隔離保障層QOS,如果我們做存儲計算分離,就意味著底層的三個集群需要布三套,這樣每個集群就會有幾十臺甚至幾百臺的節點,此時存儲力是由大家來均攤的,這就意味著分布式安全隔離保障層要做好隔離性,引入QOS就意味著會增加延遲,此時會引入一些新的硬件(比如RDMA)去盡可能的減小延遲。
第四層:分布式文件接口:HDFS & API(此層看情況可有可無)
第五層:我們提供了兩個組件,分布式Region-HBase與分布式檢索-Solr,在研究分布索引的時候發現單機索引是相對簡單的,我們提供針對二級索引采取內置的分布式Region的分布式架構,針對全文索引采取外置Solr分布式索引方案
第六層:建設在分布式KV之上,有NewSQL套件、時空套件、時序套件、圖套件及Cube套件
另外,可以引入spark來分析,這個也是社區目前通用的方案
解決成本的方案
對于解決成本的方案簡單介紹如下:
分級存儲:SSD與SATA的價格相差很多,在冷數據上,我們建議直接采取冷存儲的方式 ,可以節約500%的成本
高壓縮比:在分級存儲上有一個較好的壓縮,尤其是在冷數據,我們可以提高壓縮比例,另外分布式文件系統可以采取EC進一步降低存儲成本,節約100%的成本
基礎設施共享:庫存壓力分擔,云平臺可以釋放紅利給客戶
存儲與計算分離:按需計費
優化性能:再把性能提升1倍左右
云數據庫基本部署結構

假設在北京有三個機房可用區A、B和C,我們會在可用區A中部署一個熱的存儲集群,在北京整體區域部一個冷的存儲集群,實際上有幾個可用區就可以有幾個熱集群,主要是保障延遲的;冷集群對延遲相對不敏感,可以地域單獨部署,只要交換機滿足冷集群所需的帶寬即可。這樣的好處是三個區共享一個冷集群,就意味著可以共享庫存。
ApsaraDB HBase產品能力
我們提供兩個版本,一是單節點版,其特點是給開發測試用或者可用性不高,數據量不大的場景。二是集群版本其特點是高至5000w QPS,多達10P存儲與高可靠低延遲等。
? 數據可靠性:99.99999999%:之所以可靠性可以達到如此之高,其核心的原因就是存儲集群是單獨部署的,其會根據機架等進行副本放置優化
服務可用性:單集群99.9% 雙集群99.99%。
服務保障:服務未滿足SLA賠付。
數據備份及恢復。
數據熱冷分離分級存儲。
企業級安全:認證授權及加密。
提供檢索及二級索引及NewSQL能力。
提供時序/圖/時空/Cube相關能力。
與Spark無縫集成,提供AP能力。
數據備份及恢復

備份分為全量備份HFile與 增量量備份HLog;恢復分為HLog轉化為HFile和BulkLoad加載。阿里云集團迄今為止已經有一萬兩千多臺的HBase,大部分都是主備集群的,在云上由于客戶成本的原因,大部分不選擇主備,所以需要對數據進行備份。其難點在于備份需要引入計算資源,我們需要引入彈性的計算資源來處理備份的相關計算任務
Compaction 離線Compaction(研究中)

我們在內部研究如何通FPGA對Compaction進行加速,這會使得集群運行比較平緩,特別是對計算資源少,存儲量大的情況下,可以通過離線的作業處理Compaction。
組件層
我們有5中組件,NewSQL(Phoenix)、時序OpenTSDB、時空GeoMesa、圖JanusGraph及Cube的Kylin,及提供HTAP能力的Spark。這里簡單描述幾個,如下:
NewSQL-Phoenix
客戶還是比較喜歡用SQL的,Phoenix會支持SQL及二級索引,在超過1T的數據量的情況下,對事務的需求就很少(所以我們并沒有支持事務);二級索引是通過再新建一張HBase表來實現的。在命中索引的情況下,萬億級別的訪問基本在毫秒級別,但由于Phoenix聚合點在一個節點,所以不能做Shuffle類似的事情,同時也就不能處理復雜的計算,所以任何說我是HTAP架構的,如果不能做Shuffle,就基本不能做復雜的計算。
HTAP-Spark

在HTAP-Spark這部分主要介紹一下RDD API、 SQL、直接訪問HFile,它們的特點如下:
RDD API具有簡單方便,默認支持的特點,但高并發scan大表會影響穩定性;
SQL支持算子下推、schema映射、各種參數調優,高并發scan大表會影響穩定性;
直接訪問HFile,直接訪問存儲不經過計算,大批量量訪問性能最好,需要snapshot對齊數據。
時序-OpenTSDB & HiTSDB

TSD沒有狀態,可以動態加減節點,并按照時序數據的特點設計表結構,其內置針對浮點的高壓縮比的算法,我們云上專業版的HiTSDB增加倒排等能力,并能夠針對時序增加插值、降精度等優化。
大數據數據庫的實際案例
以下簡單介紹幾個客戶的案例,目前已經在云上ApsaraDB HBase運行,數據量基本在10T以上:
某車聯網公司

這是一個車聯網的客戶,有100萬車,每輛車每10秒上傳一次,每次1KB,這樣一年就有300T數據,六個月以上是數據低頻訪問,所以他要做分級存儲,把冷數據放到低介質上
某大數據控公司

這是一個大數據控公司,它大約有200T+的數據量,將HBase數據 (在線實時大數據存儲)作為主數據庫,先用HBase做算法訓練,再用HBase SQL出報表,另外做了一套ECS進行實時查以便與客戶之間進行數據交換。
某社交公司

社交會有大量的推薦,所以SLA要求高達99.99,并采用雙集群保障,單集群讀寫高峰QPS 可以達到1000w+,數據量在30T左右。
某基金公司

這是一個金融公司,它有10000億以上的交易數據,目前用多個二級索引支持毫秒級別的查詢,數據量在100T左右
某公司報表系統

先離線建好Cube再把數據同步到HBase中,實時數據通過Blink對接進行更新,數據量在可達20T左右。
封神:真名曹龍,09年加入阿里,現任阿里云高級技術專家、架構師,專注于大數據分布式計算、數據庫、存儲領域,先后研發上萬臺Hadoop、ODPS集群,負責阿里YARN、Spark及自主研發內存計算引擎,目前為廣大公共云用戶提供專業的云HBase數據庫及計算服務。
(云棲團隊)
]]>
大數據在近些年來越來越火熱,人們在提到大數據遇到了很多相關概念上的問題,比如云計算、Hadoop等等。那么,大數據是什么、Hadoop是什么,Hadoop和大數據有什么關系呢?
大數據概念早在1980年,著名未來學家阿爾文·托夫勒提出的概念。2009年美國互聯網數據中心證實大數據時代的來臨。隨著谷歌MapReduce和GoogleFileSystem(GFS)的發布,大數據不再僅用來描述大量的數據,還涵蓋了處理數據的速度。目前定義:大數據(bigdata),或稱巨量資料,指的是所涉及的資料量規模巨大到無法透過目前主流軟件工具在合理時間內獲取、管理、處理、并整理為幫助企業經營決策。
大數據目前分為四大塊:大數據技術、大數據工程、大數據科學和大數據應用。其中云計算屬于大數據技術的范疇,是一種通過Internet以服務的方式提供動態可伸縮的虛擬化的資源的計算模式。那么這種計算模式如何實現呢,Hadoop的來臨解決了這個問題,Hadoop是Apache(阿帕切)的一個開源項目,它是一個對大量數據進行分布式處理的軟件架構,在這個架構下組織的成員HDFS(Hadoop分布式文件系統),MapReduce、Zookeeper(一個針對大型分布式系統的可靠協調系統)、Hbase、hive(基于Hadoop的一個數據倉庫工具)等。
1.云計算屬于大數據中的大數據技術范疇。
2.云計算包含大數據。
3.云和大數據是兩個領域。
云計算是指利用由大量計算節點構成的可動態調整的虛擬化計算資源,通過并行化和分布式計算技術,實現業務質量的可控的大數據處理的計算技術。而作為云計算技術中的佼佼者,Hadoop以其低成本和高效率的特性贏得了市場的認可。它的項目名稱來源于創立者DoungCutting兒子的一個玩具,一頭黃色的大象。
Hadoop項目的目標是建立一個可擴展開源軟件框架,能夠對大數據進行可靠的分布式處理。
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。HDFS是一個分布式文件系統,具有低成本、高可靠性性、高吞吐量的特點。MapReduce是一個變成模型和軟件框架。
簡單理解,Hadoop是一個開源的大數據分析軟件,或者說編程模式。它是通過分布式的方式處理大數據的,因為開元的原因現在很多的企業在運用hadoop的技術來解決一些大數據的問題,在數據倉庫方面hadoop是非常強大的。但在數據集市以及實時的分析展現層面,hadoop也有著明顯的不足,現在一個比較好的解決方案是架設hadoop的數據倉庫而數據集市以及實時分析展現層面使用永洪科技的大數據產品,能夠很好地解決hadoop的分時間長以及其他的問題。
Hadoop大數據技術案例
讓Hadoop和其他大數據技術如此引人注目的部分原因是,他們讓企業找到問題的答案,而在此之前他們甚至不知道問題是什么。這可能會產生引出新產品的想法,或者幫助確定改善運營效率的方法。不過,也有一些已經明確的大數據用例,無論是互聯網巨頭如谷歌,Facebook和LinkedIn還是更多的傳統企業。它們包括:
情感分析:Hadoop與先進的文本分析工具結合,分析社會化媒體和社交網絡發布的非結構化的文本,包括Tweets和Facebook,以確定用戶對特定公司,品牌或產品的情緒。分析既可以專注于宏觀層面的情緒,也可以細分到個人用戶的情緒。
風險建模:財務公司、銀行等公司使用Hadoop和下一代數據倉庫分析大量交易數據,以確定金融資產的風險,模擬市場行為為潛在的“假設”方案做準備,并根據風險為潛在客戶打分。
欺詐檢測:金融公司、零售商等使用大數據技術將客戶行為與歷史交易數據結合來檢測欺詐行為。例如,信用卡公司使用大數據技術識別可能的被盜卡的交易行為。
客戶流失分析:企業使用Hadoop和大數據技術分析客戶行為數據并確定分析模型,該模型指出哪些客戶最有可能流向存在競爭關系的供應商或服務商。企業就能采取最有效的措施挽留欲流失客戶。
用戶體驗分析:面向消費者的企業使用Hadoop和其他大數據技術將之前單一客戶互動渠道(如呼叫中心,網上聊天,微博等)數據整合在一起,以獲得對客戶體驗的完整視圖。這使企業能夠了解客戶交互渠道之間的相互影響,從而優化整個客戶生命周期的用戶體驗。
當然,上述這些都只是大數據用例的舉例。事實上,在所有企業中大數據最引人注目的用例可能尚未被發現。這就是大數據的希望。(網絡)
]]>