local:/“ spark.yarn.jars”路径的URI方案

时间:2018-09-07 09:49:34

标签: apache-spark filesystems hadoop2

我是刚起步并试图理解项目中的代码并进行工作的新手。创建Spark会话时,我在代码中看到一个配置项--.config(“ spark.yarn.jars”,“ local:/ cloudera / opt / xx / xxjars/*")。

我无法理解URI方案中提到的“ local:/”。这是什么意思,有人可以帮忙吗?

我做了一些Google,找到了一个page,将其提及为方案,但找不到它指的是什么细节?

1 个答案:

答案 0 :(得分:0)

据我了解,“ local:// path / to / file”表示文件路径应该位于每个工作程序节点的本地文件系统上,而不是例如hdfs(hdfs:///路径/到/文件)。

因此,在前一种情况下,文件必须驻留在每个节点的单独文件系统上,在后一种情况下,如果文件位于hdfs中就足够了,并且在启动spark上下文时将下载到节点。

该行为在Spark Documentation中进行了解释:

  

Spark使用以下URL方案来允许不同的策略来传播jar:

     
      
  • 文件:-绝对路径和文件:/ URI由驱动程序的HTTP文件服务器提供,每个执行程序都从驱动程序HTTP服务器提取文件。
  •   
  • hdfs:,http:,https:,ftp:-这些可从URI中按预期下拉文件和JAR
  •   
  • 本地:-以local:/开头的URI应该作为每个工作节点上的本地文件存在。这意味着将不会发生网络IO,并且对于推送到每个工作程序或通过NFS,GlusterFS等共享的大文件/ JAR来说效果很好。
  •   

对于大型文件,最好使用本地模式或将其置于hdfs中,但是复制因子=节点数,因此文件的hdfs-replication-location确实始终与容器在其上运行的节点相同