使用单机时Spark RDD联合OOM错误

时间:2016-07-29 19:46:37

标签: hadoop apache-spark

我有以下代码,它获取不同的电话号码,并创建所有呼叫的联合。

//Get all the calls for the last 24 hours for each MSISDN in the hour
val sCallsPlaced = (grouped24HourCallsPlaS).join(distinctMSISDNs)
val oCallsPlaced = (grouped24HourCallsPlaO).join(distinctMSISDNs)
val sCallsReceived = grouped24HourCallsRecS.join(distinctMSISDNs)
val oCallsReceived = grouped24HourCallsRecO.join(distinctMSISDNs)

val callsToProcess = sCallsPlaced.union(oCallsPlaced)
                                 .union(sCallsReceived)
                                 .union(oCallsReceived)

spark-defaults.conf文件包含以下内容:

spark.driver.memory=16g
spark.driver.cores=1
spark.driver.maxResultSize=2g

spark.executor.memory=24g
spark.executor.cores=10

spark.default.parallelism=256

问题是,Spark能否使用256G机器处理50G数据,并在同一台机器上运行Hadoop服务(namenode,datanode,secondaryname node),yarn和HBase。

Hbase(HMaster,HQuorumPeer和HRegionServers)每个大约需要20G。

此外,是否有比使用" Union"更快的方式?在Spark。

1 个答案:

答案 0 :(得分:0)

每个RDD有多少个分区? Serde如何查找记录?

对于关系代数,可以先执行联合,然后再执行联接。