Apache spark Spark工作目录

Apache spark Spark工作目录,apache-spark,emr,amazon-emr,Apache Spark,Emr,Amazon Emr,我在一个有4个磁盘(/mnt1、/mnt2、/mnt3、/mnt4)的节点上运行Spark。我想将执行器的临时输出写入本地目录。有没有办法将这些磁盘统一分配给执行器,以便所有磁盘都得到统一使用?目前,它从“foreachPartition”操作写入/mnt1的所有数据。请包括配置和您在foreachPartition中所做的操作无需任何内容,我只需要在转换后本地写入分区数据,然后将其上载到S3。由于一些遗留原因,我无法使用spark的saveAsTextFile等。目前,我正在指定安装在/mnt

我在一个有4个磁盘(/mnt1、/mnt2、/mnt3、/mnt4)的节点上运行Spark。我想将执行器的临时输出写入本地目录。有没有办法将这些磁盘统一分配给执行器,以便所有磁盘都得到统一使用?目前,它从“foreachPartition”操作写入/mnt1的所有数据。

请包括配置和您在
foreachPartition中所做的操作
无需任何内容,我只需要在转换后本地写入分区数据,然后将其上载到S3。由于一些遗留原因,我无法使用spark的saveAsTextFile等。目前,我正在指定安装在/mnt1上的/tmp,并想知道是否有每个执行器的工作目录的概念(平衡跨所有磁盘,例如,executor 1->/mnt1/workdirectory1、executor 2->/mnt2/workdirectory2等)。否则,我将不得不在代码中统一随机地选择一个磁盘。这并不能直接回答您的问题,但您是否可以写入HDFS而不是本地文件系统?HDFS在EMR上自动配置为在所有/mnt*磁盘上条带化。@JonathanKelly在我的用例中,我需要选择一个特定的位置来写入数据,我无法使用saveAsTextFile保存整个RDD。你知道如何使用HDFS来实现这一点吗?例如,如果我选择/tmp,它将安装到/mnt。最好是这样,我可以写入工作目录,但我不确定这是否可能。Arn容器工作目录也在所有/mnt*磁盘上分条,所以可以直接写入执行器的当前工作目录。不过我还没有尝试过。请包括配置和您在
foreachPartition
中所做的操作。什么都没有,我只需要在转换后本地写入分区数据,然后将其上载到S3。由于一些遗留原因,我无法使用spark的saveAsTextFile等。目前,我正在指定安装在/mnt1上的/tmp,并想知道是否有每个执行器的工作目录的概念(平衡跨所有磁盘,例如,executor 1->/mnt1/workdirectory1、executor 2->/mnt2/workdirectory2等)。否则,我将不得不在代码中统一随机地选择一个磁盘。这并不能直接回答您的问题,但您是否可以写入HDFS而不是本地文件系统?HDFS在EMR上自动配置为在所有/mnt*磁盘上条带化。@JonathanKelly在我的用例中,我需要选择一个特定的位置来写入数据,我无法使用saveAsTextFile保存整个RDD。你知道如何使用HDFS来实现这一点吗?例如,如果我选择/tmp,它将安装到/mnt。最好是这样,我可以写入工作目录,但我不确定这是否可能。Arn容器工作目录也在所有/mnt*磁盘上分条,所以可以直接写入执行器的当前工作目录。不过我还没有试过。