![](/img/trans.png)
[英]Apache Spark 3.1.2 can't read from S3 via documented spark-hadoop-cloud
[英]Can apache spark run without hadoop?
Spark和Hadoop之間是否存在依賴關系?
如果沒有,當我在沒有Hadoop的情況下運行Spark時,我會錯過任何功能嗎?
Spark是一種內存分布式計算引擎。
Hadoop是分布式存儲 ( HDFS ) 和分布式處理 ( YARN ) 的框架。
Spark 可以使用或不使用 Hadoop 組件(HDFS/YARN)運行
由於Spark沒有自己的分布式存儲系統,所以它必須依賴這些存儲系統之一進行分布式計算。
S3 – 非緊急批處理作業。 當數據局部性不重要時,S3 適合非常特定的用例。
Cassandra – 非常適合流式數據分析和批處理作業的過度殺傷。
HDFS – 非常適合批處理作業,而不會影響數據局部性。
你可以在三種不同的模式下運行 Spark: Standalone、YARN 和 Mesos
查看下面的 SE 問題,詳細了解分布式存儲和分布式處理。
Spark 可以在沒有 Hadoop 的情況下運行,但它的一些功能依賴於 Hadoop 的代碼(例如處理 Parquet 文件)。 我們在 Mesos 和 S3 上運行 Spark,設置起來有點棘手,但一旦完成就可以很好地運行(您可以在此處閱讀正確設置所需內容的摘要)。
(編輯)注意:自 2.3.0 版以來,Spark 還添加了對 Kubernetes 的本機支持
默認情況下,Spark 沒有存儲機制。
為了存儲數據,它需要快速且可擴展的文件系統。 您可以使用 S3 或 HDFS 或任何其他文件系統。 由於成本低,Hadoop 是經濟的選擇。
此外,如果您使用 Tachyon,它將通過 Hadoop 提高性能。 強烈推薦使用 Hadoop 進行apache spark處理。
是的,spark 可以在沒有 hadoop 的情況下運行。 所有核心 spark 功能都將繼續工作,但您會錯過諸如通過 hdfs 輕松將所有文件(代碼和數據)分發到集群中的所有節點等功能。
根據 Spark 文檔,Spark 可以在沒有 Hadoop 的情況下運行。
您可以在沒有任何資源管理器的情況下以獨立模式運行它。
但是如果你想在多節點設置中運行,你需要一個像 YARN或 Mesos這樣的資源管理器和一個像 HDFS、S3 等的分布式文件系統。
是的,您可以在沒有 Hadoop 的情況下安裝 Spark。 這有點棘手您可以參考 arnon link 使用 parquet 在 S3 上將其配置為數據存儲。 http://arnon.me/2015/08/spark-parquet-s3/
Spark 只是做處理,它使用動態內存來執行任務,但是為了存儲數據,你需要一些數據存儲系統。 這里 hadoop 與 Spark 一起發揮作用,它為 Spark 提供存儲。 將 Hadoop 與 Spark 一起使用的另一個原因是它們是開源的,與其他數據存儲系統相比,兩者都可以輕松地相互集成。 對於 S3 等其他存儲,您應該很難像上面鏈接中提到的那樣配置它。
但是 Hadoop 也有它的處理單元,稱為 Mapreduce。
想知道兩者的區別嗎?
查看這篇文章: https : //www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83
我想這篇文章會幫助你理解
用什么,
何時使用和
如何使用 !!!
是的當然。 Spark 是一個獨立的計算框架。 Hadoop 是一個分布式存儲系統(HDFS),帶有 MapReduce 計算框架。 Spark 可以從 HDFS 中獲取數據,也可以從傳統數據庫(JDBC)、kafka 甚至本地磁盤等任何其他數據源獲取數據。
是的,Spark 可以在安裝或不安裝 Hadoop 的情況下運行,有關更多詳細信息,您可以訪問 - https://spark.apache.org/docs/latest/
是的,spark 可以在沒有 Hadoop 的情況下運行。 您可以在沒有 Hadoop 的本地機器上安裝 spark。 但是 Spark lib 帶有預 Haddop 庫,即在本地機器上安裝時使用。
您可以在沒有 hadoop 的情況下運行 spark,但 spark 依賴於 hadoop win-utils。 所以有些功能可能不起作用,如果你想從 spark 讀取配置單元表,那么你需要 hadoop。
英語不好,見諒!
使用本地(單節點)或獨立(集群)運行沒有 Hadoop 的 spark,但仍然需要 hadoop 依賴項來進行日志記錄和一些文件處理。
Windows強烈不推薦運行 spark!
spark 有很多運行模式,其中一種稱為本地運行,無需 hadoop 依賴項。
那么,這是第一個問題:如何告訴 spark 我們要在本地模式下運行?
看完這個官方文檔后,我就在我的 linux 操作系統上試一試:
# as same as ./bin/spark-shell --master local[*]
./bin/spark-shell
與吹一樣,但與步驟3不同。
# Starup cluster
# if you want run on frontend
# export SPARK_NO_DAEMONIZE=true
./sbin/start-master.sh
# run this on your every worker
./sbin/start-worker.sh spark://VMS110109:7077
# Submit job or just shell
./bin/spark-shell spark://VMS110109:7077
我知道很多人在 windows 上運行 spark 只是為了學習,但這里在 windows 上非常不同,真的強烈不建議使用 windows。
最重要的是從這里下載winutils.exe
並配置系統變量 HADOOP_HOME 指向winutils
所在的位置。
目前3.2.1是spark最新的release版本,但是存在bug,運行時會出現
Illegal character in path at index 32: spark://xxxxxx:63293/D:\classe
./bin/spark-shell.cmd
,只啟動獨立集群然后使用./bin/sparkshell.cmd
或使用較低版本可以臨時解決這個問題。 有關更多詳細信息和解決方案,您可以參考此處
不。它需要完整的 Hadoop 安裝才能開始工作 - https://issues.apache.org/jira/browse/SPARK-10944
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.