更多課程 選擇中心
        Java培訓

        400-111-8989

        大數據學習:Hadoop、Storm有什么區別?

        • 發布:Java培訓
        • 來源:大數據培訓
        • 時間:2019-07-31 16:48

        Storm, Spark, Hadoop三個都是大數據處理工具。今天我們就來看一下storm和Hadoop的區別。

        一、首先整體認識:Hadoop是磁盤級計算,進行計算時,數據在磁盤上,需要讀寫磁盤;Storm是內存級計算,數據直接通過網絡導入內存。讀寫內存比讀寫磁盤速度快n個數量級。

        根據Harvard CS61課件,磁盤訪問延遲約為內存訪問延遲的75000倍。所以Storm更快。

        注釋:

        1. 延時 , 指數據從產生到運算產生結果的時間,“快”應該主要指這個。

        2. 吞吐, 指系統單位時間處理的數據量。

        storm的網絡直傳、內存計算,其時延必然比hadoop的通過hdfs傳輸低得多;當計算模型比較適合流式時,storm的流式處理,省去了批處理的收集數據的時間;因為storm是服務型的作業,也省去了作業調度的時延。所以從時延上來看,storm要快于hadoop。

        二、從原理角度來講:

        Hadoop M/R基于HDFS,需要切分輸入數據、產生中間數據文件、排序、數據壓縮、多份復制等,效率較低。

        Storm 基于ZeroMQ這個高性能的消息通訊庫,不持久化數據。

        為什么storm比hadoop快,下面舉一個應用場景

        說一個典型的場景,幾千個日志生產方產生日志文件,需要進行一些ETL操作存入一個數據庫。

        假設利用hadoop,則需要先存入hdfs,按每一分鐘切一個文件的粒度來算(這個粒度已經極端的細了,再小的話hdfs上會一堆小文件),hadoop 開始計算時,1分鐘已經過去了,然后再開始調度任務又花了一分鐘,然后作業運行起來,假設機器特別多,幾鈔鐘就算完了,然后寫數據庫假設也花了很少的時間,這樣,從數據產生到最后可以使用已經過去了至少兩分多鐘。

        而流式計算則是數據產生時,則有一個程序去一直監控日志的產生,產生一行就通過一個傳輸系統發給流式計算系統,然后流式計算系統直接處理,處理完之后直接寫入數據庫,每條數據從產生到寫入數據庫,在資源充足時可以在毫秒級別完成。

        三、同時說一下另外一個場景:

        如果一個大文件的wordcount,把它放到storm上進行流式的處理,等所有已有數據處理完才讓storm輸出結果,這時候,你再把它和hadoop比較快慢,這時,其實比較的不是時延,而是比較的吞吐了。

        最主要的方面:Hadoop使用磁盤作為中間交換的介質,而storm的數據是一直在內存中流轉的。

        兩者面向的領域也不完全相同,一個是批量處理,基于任務調度的;另外一個是實時處理,基于流。

        以水為例,Hadoop可以看作是純凈水,一桶桶地搬;而Storm是用水管,預先接好(Topology),然后打開水龍頭,水就源源不斷地流出來了。

        Storm 的主工程師Nathan Marz表示:Storm可以方便地在一個計算機集群中編寫與擴展復雜的實時計算,Storm之于實時處理,就好比Hadoop之于批處理。Storm保證每個消息都會得到處理,而且它很快——在一個小集群中,每秒可以處理數以百萬計的消息。更棒的是你可以使用任意編程語言來做開發。

        Storm的主要特點如下:

        1.簡單的編程模型。類似于MapReduce降低了并行批處理復雜性,Storm降低了進行實時處理的復雜性。

        2.可以使用各種編程語言。你可以在Storm之上使用各種編程語言。默認支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實現一個簡單的Storm通信協議即可。

        3.容錯性。Storm會管理工作進程和節點的故障。

        4.水平擴展。計算是在多個線程、進程和服務器之間并行進行的。

        5.可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。任務失敗時,它會負責從消息源重試消息。

        6.快速。系統的設計保證了消息能得到快速的處理,使用?MQ作為其底層消息隊列。

        7.本地模式。Storm有一個“本地模式”,可以在處理過程中完全模擬Storm集群。這讓你可以快速進行開發和單元測試。

        四、在消耗資源相同的情況下,一般來說storm的延時低于mapreduce。但是吞吐也低于mapreduce。storm是典型的流計算系統,mapreduce是典型的批處理系統。下面對流計算和批處理系統流程

        這個數據處理流程來說大致可以分三個階段:

        1. 數據采集與準備

        2. 數據計算(涉及計算中的中間存儲), 題主中的“那些方面決定”應該主要是指這個階段處理方式。

        3. 數據結果展現(反饋)

        1)數據采集階段,目前典型的處理處理策略:

        數據的產生系統一般出自頁面打點和解析DB的log,流計算將數據采集中消息隊列(比如 kafaka,metaQ,timetunle)等。批處理系統一般將數據采集進分布式文件系統(比如HDFS),當然也有使用消息隊列的。

        我們暫且把消息隊列和文件系統稱為預處理存儲。二者在延時和吞吐上沒太大區別,接下來從這個預處理存儲進入到數據計算階段有很大的區別,流計算一般在實時的讀取消息隊列進入流計算系統(storm)的數據進行運算,批處理一系統一般會攢一大批后批量導入到計算系統(hadoop),這里就有了延時的區別。

        2)數據計算階段,流計算系統(storm)的延時低主要有一下幾個方面(針對題主的問題)

        A:storm 進程是常駐的,有數據就可以進行實時的處理

        mapreduce 數據攢一批后由作業管理系統啟動任務,Jobtracker計算任務分配,tasktacker啟動相關的運算進程

        B:stom每個計算單元之間數據之間通過網絡(zeromq)直接傳輸。

        mapreduce map任務運算的結果要寫入到HDFS,在于reduce任務通過網絡拖過去運算。相對來說多了磁盤讀寫,比較慢

        C:對于復雜運算

        storm的運算模型直接支持DAG(有向無環圖)

        mapreduce 需要肯多個MR過程組成,有些map操作沒有意義的

        3)數據結果展現

        流計算一般運算結果直接反饋到最終結果集中(展示頁面,數據庫,搜索引擎的索引)。而mapreduce一般需要整個運算結束后將結果批量導入到結果集中。

        實際流計算和批處理系統沒有本質的區別,像storm的trident也有批概念,而mapreduce可以將每次運算的數據集縮小(比如幾分鐘啟動一次),facebook的puma就是基于hadoop做的流計算系統

        大數據開發學習有一定難度,零基礎入門首先要學習Java語言打基礎,一般而言,Java學習SE、EE,需要約3個月的時間;然后進入大數據技術體系的學習,主要學習Hadoop、Spark、Storm等。

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:2019薪酬報告:學Java和大數據還有前途嗎?
        下一篇:幾種常用的大數據框架,你都了解嗎?
        零基礎參加大數據培訓機構該如何選擇?

        零基礎參加大數據培訓機構該如何選擇?

        大數據培訓后找到不工作怎么辦?

        大數據培訓后找到不工作怎么辦?

        大數據應用的主要方向

        大數據應用的主要方向

        大數據學什么?怎樣系統學習大數據?

        大數據學什么?怎樣系統學習大數據?

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        貴州省

        福建省

        • 達內廈門軟件園中心
        廣西省

        海南省

        国产高清情侣视频2019年,限制电影福利在线观看,23伊人大香蕉 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>