簡體   English   中英

spark下載頁面上預建和用戶提供的hadoop有什么區別?

[英]What are the differences between pre-built and user-provided hadoop on spark download page?

這些問題困擾了我很久:

當第一個選擇器選擇版本 2.4.4 時,第二個選擇器中有五種包類型。我對其中的 3 種感到困惑: Pre-built for Apache Hadoop 2.7Pre-built with user-provided Apache HadoopPre-built with scala 2.12 and user-provided Apache Hadoop 。讓我一一列出我的問題。

  1. Pre-built for Apache Hadoop 2.7Pre-built with user-provided Apache Hadoop什么區別? 這是否意味着有兩種不同的情況,我已經有一個hadoop集群,而我沒有一個hadoop集群。 如果是前者,我應該選擇Pre-built with user-provided Apache Hadoop ,如果是后者,這個包會為我安裝一個 hadoop 集群嗎?
  2. Pre-built with user-provided Apache HadoopPre-built with scala 2.12 and user-provided Apache Hadoop什么區別? 據我所知,當我按照教程運行spark-shell時,spark 已經安裝了 Scala,其軟件包似乎不是Pre-built with scala 2.12 and user-provided Apache Hadoop Pre-built with user-provided Apache Hadoop ,而是Pre-built with user-provided Apache Hadoop .(我說得對嗎?)因為我認為命令行使用 scala 顯示了一些東西:

    標量> val a = 1;

那么為什么還有另一個包強調它是用scala 2.12預先構建的呢?

沒有選項會為您安裝 Hadoop。 在所有情況下,Hadoop 必須預先存在或捆綁在 Spark 下載中,如果您想以這種方式運行,您必須首先為 Spark 創建一個 HDFS 和 YARN 環境來運行它

如果您已經有一個正在運行的集群並想要添加或升級 Spark,或者您正在使用 Spark Standalone、Mesos 或 Kubernetes,則可以選擇用戶提供的 Hadoop,在這種情況下,下載中不包含 Hadoop 腳本,盡管 Spark 在內部仍然依賴於核心 Hadoop 庫來運行

Spark 也不會為您安裝 Scala(或 Java)。 它只是針對 Scala 2.12 編譯,因此嘗試針對任何其他 Scala 版本運行將導致類路徑問題

概括,

  • 如果我們想支持 HDFS 和 YARN,我們將需要在所有三種情況下(1.、2. 和 3.)分別安裝 Hadoop
  • 如果我們不想安裝 Hadoop,我們可以使用帶有 hadoop 的預構建 Spark 並在 Standalone 模式下運行 Spark
  • 如果我們想在 Spark 中使用任何版本的 Hadoop,那么 3. 應該與單獨安裝的 Hadoop 一起使用

對於 Spark 3.1.1,存在以下包類型可供下載:

  1. 為 Apache Hadoop 2.7 預構建

這個版本的 spark 運行在 Hadoop 2.7

  1. 為 Apache Hadoop 3.2 及更高版本預構建

此版本的 spark 與 Hadoop 3.2 及更高版本一起運行

  1. 使用用戶提供的 Apache Hadoop 預先構建

這個版本的 spark 可以與任何用戶提供的 Hadoop 版本一起運行。

從上一個版本的名稱(spark-3.1.1-bin-without-hadoop.tgz)來看,我們似乎需要這個 spark 版本(即 3.)而不是其他版本(即 1. 和2.)。 然而,命名是模棱兩可的。 只有當我們想要支持 HDFS 和 YARN 時,我們才需要 Hadoop。 在獨立模式下,Spark 可以在沒有 Hadoop 的情況下在真正的分布式環境中運行(或在單台機器上運行守護進程)。

對於 1. 和 2.,您可以在不安裝 Hadoop 的情況下運行 Spark,因為一些核心 Hadoop 庫與 spark 預構建二進制文件捆綁在一起,因此spark-shell可以正常工作而不會spark-shell任何異常); 對於 3.,除非提供 HADOOP 安裝,否則 spark 將無法工作(因為 3. 沒有 Hadoop 運行時)。

欲了解更多信息,請參閱從文檔

您可以下載兩種 Spark 二進制發行版的變體。 一種是使用特定版本的 Apache Hadoop 預先構建的; 這個 Spark 發行版包含內置的 Hadoop 運行時,所以我們稱之為 with-hadoop Spark 發行版。 另一個是使用用戶提供的 Hadoop 預先構建的; 由於這個 Spark 發行版不包含內置的 Hadoop 運行時,所以它更小,但用戶必須單獨提供 Hadoop 安裝。 我們稱這種變體為 no-hadoop Spark 發行版。 對於 with-hadoop Spark 發行版,由於它已經包含一個內置的 Hadoop 運行時,默認情況下,當一個作業提交到 Hadoop Yarn 集群時,為了防止 jar 沖突,它不會將 Yarn 的類路徑填充到 Spark ...

希望這能消除一些困惑!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM