在官方火花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