Apache spark 将文件副本分发给执行者
我有一堆数据(在S3上),我正在复制到本地HDFS(在AmazonEMR上)。现在我正在使用Apache spark 将文件副本分发给执行者,apache-spark,hadoop,hdfs,amazon-emr,distcp,Apache Spark,Hadoop,Hdfs,Amazon Emr,Distcp,我有一堆数据(在S3上),我正在复制到本地HDFS(在AmazonEMR上)。现在我正在使用org.apache.hadoop.fs.FileUtil.copy,但是不清楚这是否会将文件副本分发给执行者。Spark历史服务器中肯定没有显示任何内容 HadoopDistCp似乎是这样(注意我在S3上,所以实际上它应该是构建在DistCp之上的S3 dist cp),但它是命令行工具。我正在寻找一种从Scala脚本(又名Java)调用它的方法 任何想法/线索?是使用Spark进行复制的一个例子;文件
org.apache.hadoop.fs.FileUtil.copy
,但是不清楚这是否会将文件副本分发给执行者。Spark历史服务器中肯定没有显示任何内容
HadoopDistCp
似乎是这样(注意我在S3上,所以实际上它应该是构建在DistCp
之上的S3 dist cp
),但它是命令行工具。我正在寻找一种从Scala脚本(又名Java)调用它的方法
任何想法/线索?是使用Spark进行复制的一个例子;文件列表转换为RDD,每行==一个副本。该设计针对从HDFS上传进行了优化,因为它试图将上传安排在接近HDFS中文件的位置
要下载,您需要
- 使用listFiles(path,recursive)在列出对象存储时获得最大性能
- 随机化源文件列表,这样您就不会被AWS限制
- 在整个HDFS簇中随机化放置,以便块最终均匀地散布在簇周围