![](/img/trans.png)
[英]Hive on Spark and Spark as hive execution engine: What's the difference
[英]What is the difference between Map Reduce and Spark about engine in Hive?
我有不同的理解。
通常,除非您使用IMPALA,否則Hive將MR用作執行引擎,但並非所有發行版都具有此功能。
但是一段時間以來,Spark可以用作Spark的執行引擎。
https://blog.cloudera.com/blog/2014/07/apache-hive-on-apache-spark-motivations-and-design-principles/對此進行了更詳細的討論。
Apache Spark構建DAG(有向無環圖),而Mapreduce與本機Map和Reduce一起使用。 在Spark中執行時,邏輯依賴性形成物理依賴性。
現在什么是DAG ?
DAG在執行之前先構建邏輯依賴項(以可視化圖的形式考慮)。當我們有多個映射並且reduce或一個reduce的輸出是另一張映射的輸入時,DAG將幫助加速作業。 DAG是在Tez(照片的右側)中構建的,而不是在MapReduce(左側)中構建的。
注意: Apache Spark可在DAG上運行,但具有代替Map / Reduce的階段。 Tez有DAG,可以在Map / Reduce上工作。 為了簡化起見,我使用了Map / Reduce上下文,但請記住Apache Spark有階段。 但是DAG的概念保持不變。
原因2: Map會將其輸出持久保存到磁盤。(也有緩沖區,但是當90%的緩沖區被填充時,輸出將進入磁盤)從那里開始數據合並。 但是在Apache Spark中,中間數據會保留在內存中,從而使其速度更快。 檢查此鏈接以獲取詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.