在官方火花documentation它解釋的是,術語應用罐子對應於:什麼特定的Spark庫「提供」?
甲包含用戶的火花應用罐子。在某些情況下,用戶需要創建一個包含應用程序及其依賴關係的「超級jar」。用戶的罐子不應該包括Hadoop的或Spark庫,但是,這些將在運行時添加
這可以通過使用很容易照顧「提供」的行家或SBT範圍:
"org.apache.spark" % "spark-core_2.10" % sparkVersion % Provided
不過,我可能會在這裏忽略一些明顯的東西,但是我找不到直接的答案,在運行時會添加哪些特定的庫?它會僅僅是核心內容(例如spark-core,hadoop-core)還是其他一些內容(例如:spark-streaming,hadoop-hdfs)?
有沒有辦法來檢查這個並獲得實際的Spark依賴項列表,這些依賴項將在運行時添加,因此可以標記爲提供?
此答案很明確,並且重點突出。在我的情況下,解釋三種模式特別有用。順便說一句,當我們處於供應商特定的世界時,情況會變得更加複雜,並且jar不一定是標準的,但即使在這種情況下,這個答案也提供了必要的提示以獲得正確的信息 – djsecilla