目前我正在學習apache spark和apache ignite框架。它們之間的一些原則差異在本文中描述ignite vs spark 但是我意識到我仍然不明白他們的目的。我的意思是,哪些問題比點燃更容易出現問題,反之亦然?Apache Spark vs Apache Ignite
回答
我會說Spark是一款用於交互式分析的好產品,而Ignite更適合實時分析和高性能事務處理。 Ignite通過提供高效且可擴展的內存中鍵值存儲以及索引,查詢數據和運行計算的豐富功能來實現這一點。
Ignite的另一個常見用途是分佈式緩存,它通常用於提高與關係數據庫或任何其他數據源交互的應用程序的性能。
Apache Ignite是一款高性能,集成和分佈式內存平臺,用於實時計算和處理大規模數據集.Ignite是一個與數據源無關的平臺,可跨數據分發和緩存數據RAM中的多個服務器提供前所未有的處理速度和巨大的應用程序可擴展性。
Apache的火花(集羣計算架構)是一種快速,內存數據處理引擎與表現力的開發API,允許數據工作者有效地執行流,機器學習或需要對數據集快速迭代訪問SQL工作負載。 通過允許用戶程序將數據加載到羣集內存並反覆查詢,Spark非常適合高性能計算和機器學習算法。
某些概念上的差異:
火花不存儲數據時,它從其它存儲器加載用於處理數據,通常是基於磁盤的,然後當完成了加工丟棄該數據。另一方面,Ignite通過ACID事務和SQL查詢功能提供分佈式內存鍵值存儲(分佈式緩存或數據網格)。
Spark是對非事務,只讀數據(RDDS不支持就地突變),而點燃支持非事務性的(OLAP)有效載荷,以及完全符合ACID事務(OLTP)
Ignite完全支持可以「無數據」的純計算有效載荷(HPC/MPP)。 Spark基於RDD,僅適用於數據驅動的有效載荷。
結論:
點燃和火花都在內存計算解決方案,但它們針對不同的使用情況。
在許多情況下,它們被一起使用,以實現優異的結果:
的Ignite可以提供共享存儲,所以狀態可以從一個火花應用程序或作業到另一個傳遞。
的Ignite可以爲用戶提供索引SQL使SQL星火可以在1000倍,加速(火花不會索引數據)
當文件,而不是RDDS,Apache的點燃內存中的文件系統工作(胰島素樣生長因子)也可以共享Spark作業和應用程序之間的狀態
謝謝你的回答。我仍然有點困惑。除了「數據網格」之外,apache ignite還提供了「計算網格」,它看起來與集羣計算框架非常相似。如果我已經使用apache ignite作爲數據存儲,我是否真的需要實時處理的火花? – Normal
Ignite更適合構建聯機事務處理(OLTP)解決方案,而不適用於聯機分析處理(OLAP).Spark適用於Ignite將更好地用於數據管理和查詢的分析。 –
雖然Apache Spark和Apache Ignite利用內存計算的功能,但它們解決了不同的使用案例。 Spark進程但不存儲數據。它加載數據,處理它,然後丟棄它。另一方面,Ignite可用於處理數據,同時它還提供分佈式內存鍵值存儲和ACID兼容事務和SQL支持。 Spark也適用於非事務性只讀數據,而Ignite支持非事務性和事務性工作負載。最後,Apache Ignite還支持HPC和MPP用例的純粹計算有效負載,而Spark僅適用於數據驅動的有效負載。
Spark和Ignite可以很好地相互補充。 Ignite可以爲Spark提供共享存儲,以便狀態可以從一個Spark應用程序或作業傳遞到另一個。 Ignite也可用於提供分佈式SQL索引,可將Spark SQL加速至1,000倍。
雖然這兩個Apache的星火和Apache點燃利用內存計算的力量,他們的地址有所不同的使用情況,也很少「競爭」爲同一任務。某些概念上的差異:
Spark doesn’t store data, it loads data for processing from other storages, usually disk-based, and then discards the data when the processing is finished. Ignite, on the other hand, provides a distributed in-memory key-value store (distributed cache or data grid) with ACID transactions and SQL querying capabilities.
Spark is for non-transactional, read-only data (RDDs don’t support in-place mutation), while Ignite supports both non-transactional (OLAP) payloads as well as fully ACID compliant transactions (OLTP)
Ignite fully supports pure computational payloads (HPC/MPP) that can be 「dataless」. Spark is based on RDDs and works only on data-driven payloads.
- 1. Apache Spark vs Apache Spark 2
- 2. Apache Phoenix vs Hive-Spark
- 3. Apache Ignite與Apache Drill for SQL的性能
- 4. Apache Spark所有權與Ignite所有權
- 5. 使用Apache Cassandra的Apache Ignite
- 6. Apache Ignite和SASL
- 7. Apache Ignite和Infiniband
- 8. Apache Ignite升級
- 9. Apache Ignite:連續SQLFieldQuery
- 10. Apache Ignite和Cassandra - NoClassDefFoundError
- 11. Apache Ignite Cassandra驅逐
- 12. Apache Spark與Apache Storm
- 13. Apache Ignite和Tachyon有什麼區別
- 14. Apache Ignite計算羣集
- 15. Apache Ignite中的Flink Streamer
- 16. 何時使用Apache Ignite?
- 17. Apache Ignite有哪些好書?
- 18. 緩存 - JCS與Apache Ignite
- 19. Apache Ignite Kafka連接問題
- 20. apache中的觸發器Ignite
- 21. Apache Ignite SqlFieldsQuery遊標問題
- 22. 在EC2上安裝Apache Ignite
- 23. 將CSV導入到Apache Ignite
- 24. Apache Ignite C++,共享內存
- 25. Apache Ignite默認CacheStore配置
- 26. Apache Ignite配置錯誤
- 27. Apache Ignite .Net - Log4Net集成
- 28. 更新Apache Ignite WebSession屬性
- 29. Apache Ignite - 連續查詢
- 30. Apache Ignite節點分段
的[點燃提案(https://wiki.apache.org/incubator/IgniteProposal)給出的它VS火花&Hadoop的一個很好的概述。 –