java - 在同一节点上进行分区处理?

标签 java apache-spark

Spark 在 RDD 中创建逻辑分区。我有两个问题:-

1) Google 上到处都说分区有助于并行处理,其中每个分区可以在单独的节点上处理。我的问题是我是否有多核 机器,我不能在同一节点处理分区吗?

2) 假设我从文件系统读取文件,并且 Spark 创建了一个具有四个分区的 RDD。现在每个分区可以进一步划分为RDD吗?例如:-

 firstRDD=sc.textFile("hdfs://...")
 //firstRDD contains four partition which are processed on four diff nodes
 secondRDD=firstRDD.filter(someFunction);
// Now will each node create separate secondRDD  which will have further paritions ?

最佳答案

分割为 4 个分区(可能位于单个节点或最多 4 个节点)的输入文本文件将不会被分割为更多分区,因此将由读取它们的同一执行器进行评估最初。 但是,您可以对 RDD/数据帧进行重新分区以提高并行度(例如为 64 个执行器分配 64 个分区)。这将强制进行洗牌,这可能成本高昂,但值得,特别是在计算量大的工作中。出现此问题的常见情况是读取不可分割的文件(例如 GZIP 文件)。无论文件大小如何,单个执行程序都必须读入文件(并进行处理!!)。因此,重新分区对于许多 GZIP 工作负载非常有益,因为它有利于并行计算。

关于java - 在同一节点上进行分区处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44350657/

相关文章:

python - 使用 groupby 或 aggregate 合并 RDD 或 DataFrame 中每个事务中的项目来做 FP-growth

apache-spark - 在spark中,如何快速估计数据帧中的元素数量

java - Hadoop 0.21.0 中打开文件描述符的预期消耗

java - 如何根据标签文本对标签数组列表进行排序? JavaFX

java - 如何将分钟变成年和天?

java - Grappa Graphviz 点可视化问题和问题

java - 如何将ajax中的值设置到jsp中的表中

apache-spark - spark parquet 读写中的类型更改支持

hadoop - Oozie pyspark 工作

apache-spark - Spark 流检查点恢复非常非常慢