資料計算(大資料):MapReduce、Spark、Storm概述、特點、原理
MapReduce
MapReduce將複雜的、運行於大規模叢集上的平行計算過程高度地抽象到了兩個函式:Map和Reduce。
特點:程式設計容易;分而治之策略(大規模資料集,會被切成許多獨立分片,分片由多個Map任務);計算向資料靠攏(設計理念)
函式 | 輸入 | 輸出 | 說明 |
Map | <k1,v1>如: <行號,”a b c”> | List(<k2,v2>) 如: <“a”,1> <“b”,1> <“c”,1> | 1.將小資料集進一步解析成一批<key,value>對,輸入Map函式中進行處理 2.每一個輸入的<k1,v1>會輸出一批<k2,v2>。<k2,v2>是計算的中間結果 |
Reduce | <k2,List(v2)>如:<“a”,<1,1,1>> | <k3,v3> <“a”,3> | 輸入的中間結果<k2,List(v2)>中的List(v2)表示是一批屬於同一個k2的value |
MapReduce可以很好的應用各類計算問題:關係代數運算(選擇、投影、並、交、差、連線);分組與聚合運算;矩陣-向量乘法;矩陣乘法。
Spark
spark是基於記憶體計算的大資料平行計算框架,可用於構建大型的、低延遲的資料分析應用程式。支援批處理(MapReduce)、互動式查詢(Impala)和流資料處理(Storm)。Spark
主要特點:
執行速度快:使用DAG執行引擎以支援迴圈資料流與記憶體計算。
易使用:支援使用Scala、Java、Python和R語言程式設計,通過Spark Shell進行互動式程式設計 。
通用性:Spark提供完整而強大的技術棧,包括SQL查詢、流式計算、機器學習和圖演算法元件。
執行模式多樣:可運行於獨立的叢集模式中,可運行於Hadoop中,也可運行於Amazon EC2等雲環境中,並且可以訪問HDFS、Cassandra、HBase、Hive等多種資料來源 。
備註:Spark處理中間過程結果儲存在記憶體,而
Spark執行架構包括叢集資源管理器(Cluster Manager)、執行作業任務的工作節點(Worker Node)、每個應用的任務控制節點(Driver)和每個工作節點上負責具體任務的執行程序(Executor)。
資源管理器可以自帶或Mesos或YARN。
Spark中map與flatmap區別:
(1)map():對rdd之中的元素進行逐一進行函式操作對映為另外一個rdd。
map函式會對每一條輸入進行指定的操作,然後為每一條輸入返回一個物件;
(2)Flatmap():將函式應用於rdd之中的每一個元素,將返回的迭代器的所有內容構成新的rdd。返回的型別為可迭代的型別(例如list)而flatMap函式則是兩個操作的集合——正是“先對映後扁平化”:操作1:同map函式一樣:對每一條輸入進行指定的操作,然後為每一條輸入返回一個物件操作2:最後將所有物件合併為一個物件。
Storm
對靜態資料和流資料的處理,對應著兩種截然不同的計算模式:批量計算和流式計算。
流計算(實時計算):實時獲取來自不同資料來源的海量資料,經過實時分析處理,獲得有價值的資訊。流計算秉承一個基本理念,即資料的價值隨著時間的流逝而降低。
應用場景:Web服務、機器翻譯、廣告投放、自然語言處理、氣候模擬預測等。
原理:Storm叢集採用“Master—Worker”的節點方式,Master節點負責在叢集範圍內分發程式碼、為Worker分配任務和監測故障。Worker節點,負責監聽分配給它所在機器的工作,即Master決定啟動或停止Worker程序,一個Worker節點上同時執行若干個Worker程序。
相關推薦
資料計算(大資料):MapReduce、Spark、Storm概述、特點、原理
MapReduceMapReduce將複雜的、運行於大規模叢集上的平行計算過程高度地抽象到了兩個函式:Map和Reduce。特點:程式設計容易;分而治之策略(大規模資料集,會被切成許多獨立分片,分片由多個Map任務);計算向資料靠攏(設計理念)函式輸入輸出說明Map<k
資料的計算(大資料)
Hadoop的背景起源二:MapReduce 一、什麼是大資料,本質? (1)資料的儲存:分散式檔案系統(分散式儲存)-----> HDFS: Hadoop Distributed File Syst
無鎖資料結構(基礎篇):原子性、原子性原語
無鎖資料結構基於兩方面——原子性操作以及記憶體訪問控制方法。本文中我話題主要涉及原子性和原子性原語。 在開始之前,我對大家表示感謝,謝謝你們對初識無鎖資料結構的熱愛。看到大家對無鎖話題很感興趣,我感到很開心。我計劃依據學術概念將此做成一個系列,從基礎到演算法,同時以
hadoop學習筆記(十一):MapReduce數據類型
筆記 ash all 記錄 write 一個 操作 png bool 一、序列化 1 hadoop自定義了數據類型,在hadoop中,所有的key/value類型必須實現Writable接口。有兩個方法,一個是write,一個是readFileds。分別用於讀(反序列化操
資源管理(大資料):Zookeeper、 Yarn簡介、原理
https://blog.csdn.net/wzk646795873/article/details/79583218 Zookeeper Zookeeper是一個分散式協調服務,一個leader,多個follower組成的叢集,就是為使用者的分散式應用程式提供協調服務。 Zookeep
中國旅遊研究院:2018中日韓旅遊大資料報告(附下載)
報告下載:新增199IT官方微信【i199it】,回覆關鍵詞【2018中日韓旅遊大資料報告】即可! 報告下載:新增199IT官方微信【i199it】,回覆關鍵詞【20
大資料(十五):Hadoop資料壓縮與壓縮/解壓縮例項
一、資料壓縮 1.概論 壓縮技術能夠有效減少低層儲存系統(HDFS)讀寫位元組。壓縮提高了網路頻寬和磁碟空間的效率。在Hadoop下,尤其是資料規模很大和工作負載密集的情況下。使用資料壓縮閒的非常重要。在這種情況下,I/O操作
大資料(十四):多job串聯與ReduceTask工作機制
一、多job串聯例項(倒索引排序) 1.需求 查詢每個單詞分別在每個檔案中出現的個數 預期第一次輸出(表示單詞分別在個個檔案中出現的次數) apple--a.txt 3 apple--b.txt 1 apple--c.txt 1 grape--a.txt
大資料(十二):自定義OutputFormat與ReduceJoin合併(資料傾斜)
一、OutputFormat介面 OutputFormat是MapReduce輸出的基類,所有實現MapReduce輸出都實現了OutputFormat介面。 1.文字輸出TextOutPutFormat &n
大資料(十八):Hive元資料配置、常見屬性配置、資料型別與資料轉換
一、Hive元資料配置到MySQL當中 為什麼要把Hive的元資料配置到MySql中?我們可以使用多個客戶端連線linux系統並且都嘗試啟動Hive,可以發現在啟動第二個Hive客戶端的時候發生報錯了。  
大資料(十七):Hive簡介、安裝與基本操作
一、簡介 Hive由Facebook開源用於解決海量結構化日誌的資料統計。Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張表,並提供類Sql查詢的功能。 hive本質是將HQL轉化為MapRedu
大資料(十六):Yarn的工作機制、資源排程器、任務的推測執行機制
一、Yarn概述 Yarn是一個資源排程平臺,負責為運算程式提供伺服器運算資源,相當於一個分散式的作業系統平臺,而MapReduce等運算程式則相當於運行於操作程式上的應用程式。 二、Yarn基本架
大資料(二十):hive分割槽表、修改表語句與資料的匯入匯出
一、分割槽表 分割槽表實際上就是對應一個HDFS檔案系統上的一個獨立的資料夾,該資料夾下是該分割槽所有的資料檔案,hive中的分割槽就是分目錄,把一個大的資料集更具業務需求分割成小的資料集。在查詢時通過where子句中的
大資料(二十三):hive優化、表優化
一、Fetch抓取 Fetch抓取是指,Hive中對某些情況的查詢可以不必使用MapReduce計算。例如,select * from employees;在這種情況下,Hive可以簡單讀取employee對應的儲存目錄
CBNData:2018年輕人租房大資料報告(附下載)
報告下載:新增199IT官方微信【i199it】,回覆關鍵詞【2018年輕人租房大資料報告】即可! 房子一直是安全感與歸屬感的象徵,但這屆年輕人對於“租房”與“穩定”的觀念,已於往屆產生了巨大的差異,他們提倡“房子是租來的,但生活不是”。 第一財經商業資料中心(CBNData
天巡:2018十一黃金週出境自由行大資料報告(附下載)
報告下載:新增199IT官方微信【i199it】,回覆關鍵詞【2018十一黃金週出境自由行大資料】即可! Skyscanner天巡聯合攜程、飛常準釋出了《2018十一黃金週出境自由行大資料報告》。該資料報告基於Skyscanner天巡的國際機票預訂資料、攜程對於國內使用者行為的洞察
大資料教程(8.1)mapreduce核心思想
上一章介紹了hadoop的HDFS檔案系統的原理及API使用。本章博主將繼續對hadoop的mapreduce程式設計框架進行分享。 mapreduce原理篇
大資料教程(8.5)mapreduce原理之並行度
上一篇部落格介紹了mapreduce的移動流量分析的實戰案例,本篇將繼續分享mapreduce的並行度原理。 一、mapTask並行度的決定機制  
海量資料處理:十道面試題與十個海量資料處理方法總結(大資料演算法面試題)
第一部分、十道海量資料處理面試題 1、海量日誌資料,提取出某日訪問百度次數最多的那個IP。 首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大檔案中。注意到IP是32位的,最多有個2^32個IP。同樣可以採用對映的方法
大資料(十九):hive資料庫基本操作與表分類
一、建立資料庫 1.建立一個數據,資料庫在HDFS上的預設儲存路徑是/user/hive/warehouse/*.db create database db_hive; 2.避免建立的資料庫已經存在,增加if not exists create database