Spark的API newHadoopRDD真正做什么?
我知道它在内部使用MapReduce从Hadoop获取输入,但是谁能用更多的细节来解释呢?Spark的API newHadoopRDD真正做什么?,hadoop,apache-spark,mapreduce,Hadoop,Apache Spark,Mapreduce,我知道它在内部使用MapReduce从Hadoop获取输入,但是谁能用更多的细节来解释呢? 谢谢。您的想法是正确的。Hadoop RDD RDD提供读取Hadoop中存储的数据的核心功能,例如HDFS中的文件, *HBase或S3中的源。 它使用Hadoop分区。 计算HadoopRDD时,您可以看到日志输入拆分: 示例:INFO HadoopRDD:Input split:file:/Users/jacek/dev/oss/spark/README.md:0+1784 在分区执行时设置属性:
谢谢。您的想法是正确的。Hadoop RDD RDD提供读取Hadoop中存储的数据的核心功能,例如HDFS中的文件, *HBase或S3中的源。 它使用Hadoop分区。 计算HadoopRDD时,您可以看到日志输入拆分: 示例:INFO HadoopRDD:Input split:file:/Users/jacek/dev/oss/spark/README.md:0+1784 在分区执行时设置属性: 此任务尝试的任务id mapred.tip.id 任务尝试的id映射为mapred.task.id mapred.task.is.map true mapred.task.partition分割id mapred.job.id 当调用checkpoint时,这个HadoopRDD不能做任何事情
您可以在每个属性中看到注释部分,每个属性都有很好的解释性 新的Hadoop RDD提供了使用新的MapReduce API org.apache.Hadoop.MapReduce读取Hadoop中存储的数据的核心功能,例如HDFS中的文件、HBase或S3中的源 它还提供了各种其他方法来查找有关分区、输入拆分等的配置详细信息 您可以访问文档以了解更详细的概述
希望这将解决您的查询好的,关于此API的一些好信息,谢谢。在阅读您提供的源代码时,我发现了另一个问题:中间结果保存在哪里?中间结果是,当它做一个hadoop分区的过程时,它首先运行一个mapreduce,然后调用一些函数来生成分区,那么mapreduce中间结果的结果存储在哪里呢?在记忆中?在磁盘中?谢谢。中间洗牌输出会写入磁盘,但它经常会命中操作系统缓冲区缓存,因为它没有显式fsync'ed,所以在许多情况下,它会完全保留在内存中。洗牌的行为与基本RDD是在缓存中还是在磁盘中无关。HadoopRDD也使用基本的RDD原理。检查API,您可以在下面找到它的实现位置。