大資料三種處理方式

weixin_34236497發表於2018-01-16

大資料線上分析處理

大資料離線處理

OLAP 和 OLTP 處理

1.實時流式處理

(1)問題的特點

--》資料來源源不斷的到來;

--》資料需要儘快的得到處理,不能產生積壓;

--》處理之後的資料量依然巨大,仍然後TB級甚至PB級的資料量;

--》處理的結果能夠儘快的展現;

以上四個特點可以總結為

資料的收集->資料的傳輸->資料的處理->資料的展現

其中資料的處理一般涉及資料的聚合,資料的處理和展現能夠在秒級或者毫秒級得到響應。

針對這些問題目前形成了 **Flume  +  kafka  +  Storm / Spark  +  Hbase / Redis **的技術架構

(2)Flume

Flume 專注於大資料的收集和傳輸,用來解決線上分析處理特點,資料來源源不斷的到來的問題。類似的大資料開源系統有 Logstash  和 Fluentd 。

2061490-3fe817947d788b09.png

Paste_Image.png

          flume的架構圖

架構圖中 Source  用來連線輸出源,Sink 用來連線輸出源,Channel 是 Flume 內部資料傳輸通道(主要包括 Memory Channel 和 File Channel)。

其中 Source 連線的輸入源可以但不限於:

Avro Thrift  Exec(unixcommandoutput)JMS (Java Message Service)Kafka NetCat (可以使用 nc –lk port 測試)SyslogCustom

其中 Sink 連線的輸出源可以但不限於:

Hdfs

Hive 

Avro

Thrift

File Roll

Hbase

ElasticSearch (提供的功能和 Logstash 一樣,但是不如Logstash 豐富,大多數時候需要自己構造 ElasticSearch  文件和索引)

Kafka

Custom

(2)**kafka **負責資料的緩衝,和解耦作用

(3)spark 負責實時處理計算

(4)Hbase和redis負責儲存處理後的資料供外部查詢。

2.大資料離線處理(批處理)和常用工具

特點

--》資料量巨大且儲存時間長;

--》在大量資料上進行復雜的批量運算;

--》資料在計算之前已經完全到位,不會發生變化;

--》能夠方便的查詢批量計算的結果;

離線處理目前技術上已經成熟,大家使用的均是:  使用 Hdfs  儲存資料,使用 MapReduce  做批量計算,計算完成的資料如需資料倉儲的儲存,直接存入 Hive , 然後從Hive 進行展現。

3.互動式處理(hive,spark sql)

OLAP (聯機分析處理)  和 OLTP (聯機事務處理)

三個主要的工具

Elasticsearch  介紹

Impala 介紹

Kylin 介紹

OLTP  單次查詢返回資料量小,但是經常會涉及伺服器端簡單的聚合操作,要求查詢響應速度快,一般應用於線上處理;

OLAP(hive大批量) 單次查詢返回資料量巨大,伺服器端進行的處理複雜,經常包含上卷(從細粒度資料向高層的聚合)、下鑽(將彙總資料拆分到更細節的資料)類似的操作;

(1)Elasticsearch  lucence查詢工具

是一種基於 文件 的 底層使用 Lucene  進行檢索的分散式NoSql 叢集。Elasticsearch  檢索大量文件類資料響應速度很快,更夠為 線上 OLTP 提供支援。類似的大資料開源系統有 Solr。

兩者的區別如下

--》Elasticsearch是分散式的。不需要其他元件,分發是實時的,被叫做”Push replication” 並且完全支援 Apache Lucene 的接近實時的搜尋;

--》建立索引時,搜尋效率下降,實時索引搜尋效率不高;

--》隨著資料量的增加,Solr的搜尋效率會變得更低,而Elasticsearch卻不會有明顯變化

所以, Solr的架構不適合實時搜尋的應用,也就不適合 OLTP 處理

(2)Impala

Impala 是 Cloudera 公司主導開發的新型查詢系統,它提供 SQL 語義,能查詢儲存在** Hadoop 的 Hdfs 和 Hbase 中的 PB 級大資料**。已有 的 Hive 系統雖然也提供了 SQL 語義,但由於 Hive 底層執行使用的是 MapReduce 引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之 下,Impala 的最大特點就是它的快速。

所以, Impala 使得在 TB 甚至 PB 級資料上進行  OLTP  分析成為可能。

(3)Kylin

Kylin 是由國人作為主要貢獻者的一個旨在對 Hadoop 環境下分析流程進行加速、且能夠與 SQL 相容性工具順利協作的解決方案,目前 Kylin 已經成功將SQL介面與多維分析機制(OLAP)引入** Hadoop,**旨在對規模極為龐大的資料集加以支援。

Kylin 能夠在大資料分析領域實現以下各項特性:

--》規模化環境下的極速 OLAP 引擎: 削減 Hadoop 環境中處理超過百億行資料時的查詢延遲時間;

--》Hadoop上的 ANSI SQL 介面:  Kylin 能夠在 Hadoop 之上提供 ANSI SQL 並支援大部分 ANSI SQL查詢功能;

--》利用 OLAP cube(立方體)對數百億行資料進行查詢;

作者:CB

來源:簡書

著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關文章