Spark 101:它是什么,它做什么以及为什么起作用
最近,許多大數據的討論都使用了新名稱。 有人將流行的新來者Apache Spark ?視為Hadoop的更易用,功能更強大的替代品, Hadoop是大數據的首選原始技術。 其他人認為Spark是Hadoop和其他技術的有力補充,它具有自己的優點,怪癖和局限性。
與其他大數據工具一樣,Spark功能強大,功能強大且設備齊全,可應對各種數據挑戰。 對于每個數據處理任務,它也不一定是最佳選擇。 您可以在電子書“ Spark入門:從開始到生產”中了解有關Spark的更多信息。 在此博客文章中,我將詳細介紹Spark是什么,誰使用Spark以及它與其他數據處理引擎的區別。
什么是星火?
Spark是通用數據處理引擎,適用于多種情況。 應用程序開發人員和數據科學家將Spark集成到他們的應用程序中,以快速地大規模查詢,分析和轉換數據。 與Spark最頻繁相關的任務包括跨大型數據集的交互式查詢,來自傳感器或金融系統的流數據處理以及機器學習任務。
Spark于2009年開始運作,最初是加州大學伯克利分校AMPLab內部的一個項目。 更具體地說,它是出于證明Mesos概念的需要而誕生的,Mesos概念也是在AMPLab中創建的。 在Mesos白皮書《 Mesos:數據中心中細粒度資源共享的平臺》中首次討論了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。
Spark在2013年成為Apache Software Foundation的孵化項目,并在2014年初被提升為Foundation的頂級項目之一。 Spark是基金會管理的最活躍的項目之一,圍繞該項目成長的社區包括多產的個人貢獻者和資金雄厚的企業支持者,例如Databricks,IBM和中國的華為。
從一開始,Spark就被優化為在內存中運行。 它比Hadoop的MapReduce等替代方法更快地處理數據,后者傾向于在處理的每個階段之間向計算機硬盤寫入數據或從計算機硬盤寫入數據。 Spark的支持者聲稱,Spark在內存中的運行速度可以比Hadoop MapReduce快100倍,并且在以類似于Hadoop MapReduce本身的方式處理基于磁盤的數據時也可以快10倍。 這種比較并不完全公平,這不僅是因為原始速度對于Spark的典型用例而言比對批處理更為重要,在這種情況下,類似于MapReduce的解決方案仍然很出色。
Spark會做什么?
Spark能夠一次處理數PB的數據,分布在成千上萬個協作的物理或虛擬服務器的群集中。 它具有廣泛的開發人員庫和API,并支持Java,Python,R和Scala等語言。 它的靈活性使其非常適合各種用例 。 Spark通常與Hadoop的數據存儲模塊HDFS一起使用,但它可以與HBase ,Cassandra, MapR-DB ,MongoDB和Amazon的S3等其他流行的數據存儲子系統很好地集成。
典型的用例包括:
- 流處理 :從日志文件到傳感器數據,應用程序開發人員越來越需要處理數據的“流”。 此數據經常從多個源同時穩定地到達。 盡管將這些數據流存儲在磁盤上并進行回顧性分析當然是可行的,但有時在數據到達時對其進行處理并采取行動是明智或重要的。 例如,可以實時處理與金融交易有關的數據流,以識別并拒絕潛在的欺詐性交易。
- 機器學習 :隨著數據量的增長,機器學習方法變得越來越可行并且越來越準確。 在對新的和未知的數據應用相同的解決方案之前,可以對軟件進行培訓,以識別出易于理解的數據集中的觸發器并對其采取行動。 Spark能夠將數據存儲在內存中并能夠快速運行重復查詢,這使其成為訓練機器學習算法的理想選擇。 一次又一次地大規模運行廣泛相似的查詢,可顯著減少通過一組可能的解決方案以找到最有效的算法所需的時間。
- 交互式分析 :業務分析師和數據科學家不是通過運行預定義的查詢來創建銷售,生產線生產率或股票價格的靜態儀表板,而是希望通過提出問題,查看結果然后更改結果來探索其數據。初步提出問題或深入研究結果。 這種交互式查詢過程要求諸如Spark之類的系統能夠快速響應和適應。
- 數據集成 :整個企業中不同系統生成的數據很少是干凈的或一致的,以至于不能簡單,輕松地組合起來進行報告或分析。 提取,轉換和加載(ETL)流程通常用于從不同系統中提取數據,對其進行清理和標準化,然后將其加載到單獨的系統中進行分析。 越來越多地使用Spark(和Hadoop)來減少此ETL流程所需的成本和時間。
誰使用Spark?
許多技術供應商已Swift支持Spark,并意識到有機會將現有的大數據產品擴展到Spark提供真正價值的領域,例如交互式查詢和機器學習。 IBM和華為等知名公司已經在這項技術上投入了大量資金,并且越來越多的初創公司正在建立完全或部分依賴Spark的業務。 例如,在2013年,負責創建Spark的伯克利團隊創建了Databricks,該公司提供了一個由Spark支持的托管端到端數據平臺。 該公司資金雄厚,在2013年和2014年的兩輪投資中獲得了4,700萬美元,Databricks的員工在改善和擴展Apache Spark項目的開源代碼方面繼續發揮著重要作用。
大型Hadoop供應商都已轉移到支持Spark及其現有產品,并且每個供應商都在努力為其客戶增加價值。 在其他地方,IBM,華為和其他公司都對Apache Spark進行了大量投資,將其集成到自己的產品中,并對Apache項目進行了改進和擴展。 中國搜索引擎百度,電子商務運營商阿里巴巴淘寶和社交網絡公司等基于Web的公司都大規模運行基于Spark的業務,據報道,騰訊的8億活躍用戶每天生成700 TB以上的數據,以便在計算機上進行處理。超過8,000個計算節點的集群。
除了這些網絡巨頭之外, 諾華制藥公司還依賴Spark來減少將模型數據交付研究人員的時間,同時確保遵守道德和合同保障。
什么使Spark脫穎而出?
選擇Spark的原因很多,但三個是關鍵:
- 簡便性 :可通過一組豐富的API訪問Spark的功能,所有這些API都是專門為快速,輕松地與大規模數據進行交互而設計的。 這些API都有很好的文檔記錄和結構化,使數據科學家和應用程序開發人員可以直接將Spark快速投入工作。
- 速度 :Spark專為提高速度而設計,可在內存和磁盤上運行。 使用Spark,來自Databricks的團隊與來自加利福尼亞大學圣地亞哥分校的團隊并列 2014年Daytona Gray Sort 100TB Benchmark挑戰賽的第一名 。 挑戰涉及處理靜態數據集。 Databricks團隊僅用23分鐘即可處理存儲在固態驅動器上的100 TB數據,而上一個獲勝者則使用Hadoop和其他集群配置花費了72分鐘。 當支持對存儲在內存中的數據進行交互式查詢時,Spark的性能甚至更好。 在這種情況下,有人聲稱Spark可以比Hadoop的MapReduce快100倍。
- 支持 :Spark支持多種編程語言,包括Java,Python,R和Scala。 盡管通常與HDFS緊密相關,但Spark包括對與Hadoop生態系統及更多生態系統中許多領先存儲解決方案的緊密集成的本機支持。 此外,Apache Spark社區龐大,活躍且國際化。 越來越多的商業提供商(包括Databricks,IBM和所有主要的Hadoop供應商)為基于Spark的解決方案提供全面的支持。
摘要
在此博客文章中,您了解了Spark,它的作用以及與其他數據處理引擎的不同之處。
如果您有關于Spark的其他問題,請在下面的評論部分中提問。
翻譯自: https://www.javacodegeeks.com/2015/09/spark-101-what-is-it-what-it-does-and-why-it-matters.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Spark 101:它是什么,它做什么以及为什么起作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (usb的linux驱动)
- 下一篇: 安卓运行java程序(安卓运行java)