1. 程式人生 > >大資料架構簡述(三):流處理、批處理、互動式查詢

大資料架構簡述(三):流處理、批處理、互動式查詢

我們將大資料處理按處理時間的跨度要求分為以下幾類

    基於實時資料流的處理,通常的時間跨度在數百毫秒到數秒之間

    基於歷史資料的互動式查詢,通常時間跨度在數十秒到數分鐘之間

    複雜的批量資料處理,通常的時間跨度在幾分鐘到數小時之間

1.流處理

流是一種資料傳送技術,它把客戶端資料變成一個穩定的流。正是由於資料傳送呈現連續不停的形態,所以流引擎需要連續不斷處理資料

流處理的主要應用場景:金融領域和電信領域

1.1 Stom

Storm是一個免費開源、分散式、高容錯的實時計算系統。

Storm主要分為兩種元件Nimbus和Supervisor。這兩種元件都是快速失敗的,沒有狀態。任務狀態和心跳資訊等都儲存在Zookeeper上的,提交的程式碼資源都在本地機器的硬碟上。
1)Nimbus負責在叢集裡面傳送程式碼,分配工作給機器,並且監控狀態。全域性只有一個。
2)Supervisor會監聽分配給它那臺機器的工作,根據需要啟動/關閉工作程序Worker。每一個要執行Storm的機器上都要部署一個,並且,按照機器的配置設定上面分配的槽位數。
3)Zookeeper是Storm重點依賴的外部資源。Nimbus和Supervisor甚至實際執行的Worker都是把心跳儲存在Zookeeper上的。Nimbus也是根據Zookeerper上的心跳和任務執行狀況,進行排程和任務分配的。
4)Storm提交執行的程式稱為Topology。
5)Topology處理的最小的訊息單位是一個Tuple,也就是一個任意物件的陣列。
Topology由Spout和Bolt構成。Spout是發出Tuple的結點。Bolt可以隨意訂閱某個Spout或者Bolt發出的Tuple。Spout和Bolt都統稱為component。


1.2 Spark Streaming

Spark Streaming是一種構建在Spark上的實時計算框架,它擴充套件了Spark處理大規模流式資料的能力。

Spark Streaming的基本原理是將輸入資料流以時間片(秒級)為單位進行拆分,然後以類似批處理的方式處理每個時間片資料


2.互動式查詢(Adhoc Query)

在商業智慧領域少量更新和大量掃描分析場景,目前是Impala+Kudu/Hive/Spark SQL/Greenplum Mpp資料庫在混戰。

3.批處理技術

3.1 MapReduce(Hadoop)

MapReduce模式的主要思想是自動將一個大的計算拆解成Map和Reduce



3.2 Spark

Spark的中間資料放到記憶體中,對於迭代運算效率更高。
Spark更適合於迭代運算比較多的ML和DM運算。因為在Spark裡面,有RDD的抽象概念。
Spark比Hadoop更通用
Spark提供的資料集操作型別有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多種操作型別,Spark把這些操作稱為Transformations。同時還提供Count, collect, reduce, lookup, save等多種actions操作。

相關推薦

資料架構簡述處理處理互動式查詢

我們將大資料處理按處理時間的跨度要求分為以下幾類     基於實時資料流的處理,通常的時間跨度在數百毫秒到數秒之間     基於歷史資料的互動式查詢,通常時間跨度在數十秒到數分鐘之間     複雜的批

資料架構簡述資料的本質

1.大資料是什麼 大資料由SCI的首席科學家JohmR.Masey於1998年在USENIX大會上首次提出。他在其發表的一篇名為Big Dara and the Next Wave of Infras

資料架構簡述資料獲取

1.資料分類 按資料形態,我們把資料分為結構化資料和非結構化資料兩種。 結構化資料如傳統的Data Warehouse資料,欄位有固定的長度和語義,計算機程式可以直接處理 非結構化資料有文字資料、影象

微服務架構下的資料一致性保證補償模式

在微服務架構下,一個典型的業務操作往往由一系列自治的微服務步驟組成,如果某個步驟發生了業務異常(比如支付時賬戶餘額不足等)時就出現了資料不一致。我們採用補償模式來撤銷已經完成的步驟,從而實現最終一致性。 今天分享的還是關於微服務架構下的資料一致性保證的話題,是資料一

架構漫談如何做好架構之識別問題

答案 跟著 發生 做了 解決 長時間 一閃而過 開發 問題解決 按照之前架構的定義,做好架構首先需要做的就是識別出需要解決的問題。一般來說,如果把真正的問題找到,那麽問題就已經解決了80%了。這個能力基本上就決定了架構師的水平。 那麽面對問題有哪些困難呢? 我們先看一

資料之Spark--- Spark核心API,Spark術語,Spark三級排程流程原始碼分析

一、Spark核心API ----------------------------------------------- [SparkContext] 連線到spark叢集,入口點. [HadoopRDD] extends RDD 讀取hadoop

資料之scala --- 類的檢查轉換繼承,檔案,特質trait,操作符,apply,update,unapply,高階函式,柯里化,控制抽象,集合

一、類的檢查和轉換 -------------------------------------------------------- 1.類的檢查 isInstanceOf -- 包括子類 if( p.isInstanceOf[Employee]) {

資料結構實現陣列佇列C++版

資料結構實現(三):陣列佇列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析 3.1 入

MySQL效能管理及架構設計SQL查詢優化分庫分表 - 完結篇

一、SQL查詢優化(重要) 1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow

電商資料分析平臺nginx配置及flume讀取日誌資訊

一、nginx配置 在本專案中nginx的作用只是接收客戶端傳送的事件,並將相應的session寫入日誌檔案中,所以配置較為簡單,只需要配置寫入的日誌檔案和寫入的格式 1.地址配置 server { listen

資料進階22個免費的資料視覺化和分析工具推薦

22個免費的資料視覺化和分析工具推薦   本文總結推薦22個免費的資料視覺化和分析工具。列表如下: 資料清理(Data cleaning)   當你分析和視覺化資料前,常需要“清理”工作。比如一些輸入性列表“New York City” ,同時其他人會

java程式設計師的資料之路5HDFS壓縮與解壓縮

背景 好久沒有更新了,原因是公司專案上線,差點被祭天。在這種驚心動魄的時候還是要抽時間做一點自己喜歡做的事情的,然而進度比預期慢了許多。 正式開始 接下來就開始記錄最近的學習成果啦! 在Hadoop叢集中,網路資源是非常珍貴的。因此對檔案進行壓縮是非

java程式設計師的資料之路7基於檔案的資料結構

SequenceFile 介紹 由於日誌檔案中每一條日誌記錄是一行文字。如果想記錄二進位制型別,純文字是不合適的。這種情況下,Hadoop的SequenceFile類非常合適。SequenceFile可以作為小檔案容器。而HDFS和MapReduce是針

ZStack雲端計算架構探祕 超強靈活性和可擴充套件性

在前面探祕一和探祕二中,我們已經分享了ZStack的拓撲結構和如何實現超高可伸縮性的能力。還記得我們在Why ZStack中說的,穩定性和靈活性是IaaS需要解決的兩大問題。今天我們就來揭開ZStack超強靈活性的奧祕。 今天的內容非常的豐富,我們先來看一下什麼是靈活性。所

從五篇paper入門資料與HadoopGFS

一.GFS設計概覽 1.1目標預想 • 架設在多臺便宜的的裝置而不是大型伺服器上,因此要強調容錯性 • 相容large streaming read和small random reads • 主要支

高效能容量SOCKET併發接收傳送快取

接收 完成埠是結合重疊埠一起使用的,在接收資料之前,我們需要投遞一個接收請求,使用function WSARecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;  var lpNumberOfBytesRec

矩陣論矩陣分解—從Schur分解特徵值分解EVD到奇異值分解SVD

本篇部落格針對三種聯絡十分緊密的矩陣分解(Schur分解、特徵值分解、奇異值分解)依次介紹,它們的關係是Schur→EVD→SVDSchur\rightarrow{}EVD\rightarrow{}SVDSchur→EVD→SVD,也就是說由Schur分解可以推

Android-json解析原生JSONObject+JSONArray的解析遍歷及生成等

一、JSONObject和JSONArray的資料表示形式 JSONObject的資料是用 { } 來表示的, 例如: { "id":"1", "courseID":"化學", "title":"滴定實驗",

縮放系列一個可以手勢縮放拖拽旋轉的layout

弄了一個下午,終於搞出來了,PowerfulLayout 下面是一個功能強大的改造的例子: 可以實現以下需求: 1.兩個手指進行縮放佈局 2.所有子控制元件也隨著縮放, 3.子控制元件該有的功能不能丟失(像button有可被點選的功能,縮放後不能丟失該功能)

DockerDocker映象匯入與匯出恢復與載入與在Docker容器中安裝軟體

一、映象的匯入與匯出:import 與export 命令通常用於Docker映象的匯入匯出。1、將映象匯出到檔案:(1)命令格式:docker export  已經存在的映象id或者映象名稱 >