Apache spark 连接到Spark中具有不同用户名的两个不同HDFS服务器

Apache spark 连接到Spark中具有不同用户名的两个不同HDFS服务器,apache-spark,hdfs,Apache Spark,Hdfs,有没有办法在同一个Spark作业中使用两个单独的用户名从HDFS(例如使用sc.textFile)获取数据?例如,如果我在hdfs-server-1.com上有一个文件,alice用户有权查看该文件,我在hdfs-server-2.com上有一个文件,bob用户有权查看该文件,我希望能够执行以下操作: val rdd1 = sc.textFile("hdfs://hdfs-server-1.com:9000/file.txt", user="alice") val rdd2 = sc.textF

有没有办法在同一个Spark作业中使用两个单独的用户名从HDFS(例如使用sc.textFile)获取数据?例如,如果我在hdfs-server-1.com上有一个文件,alice用户有权查看该文件,我在hdfs-server-2.com上有一个文件,bob用户有权查看该文件,我希望能够执行以下操作:

val rdd1 = sc.textFile("hdfs://hdfs-server-1.com:9000/file.txt", user="alice")
val rdd2 = sc.textFile("hdfs://hdfs-server-2.com:9000/file.txt", user="bob")
有没有办法做这样的事?或者Spark只能使用与运行它的用户名相同的用户名连接到HDFS?

据我所知(我以前在Spark 1.4.0中尝试过),这是不可能的:默认情况下,Spark使用运行驱动程序进程的用户访问HDFS。运行驱动程序应用程序时,可以使用
HADOOP\u User\u NAME
VM选项覆盖用户(例如
-DHADOOP\u User\u NAME=alice
)。此选项在构建SparkContext时读取,因此以后不能更改

据我所知(我在过去的Spark 1.4.0中也尝试过),这是不可能的:默认情况下,Spark使用运行驱动程序进程的用户访问HDFS。运行驱动程序应用程序时,可以使用
HADOOP\u User\u NAME
VM选项覆盖用户(例如
-DHADOOP\u User\u NAME=alice
)。此选项在构建SparkContext时读取,因此以后不能更改