【发布时间】:2015-05-07 05:08:34
【问题描述】:
我在 8 核机器上以本地模式运行 Spark 作业。它有一个本地 SSD 和 64GB 的 RAM。 HDFS 在同一台机器上以伪分布式模式运行。运行以下作业时,我无法获得 CPU 利用率以超过单个核心的最大化。 RAM 使用率保持在 10GB 以下。环回接口最大速度约为 333MB/s。无论哪种方式,磁盘 IO 通常都低于 30MB/s。如何编写此代码以更好地利用我的硬件资源?
object FilterProperty {
def main(args:Array[String]) {
val conf = new SparkConf()
.setAppName("Filter Claims Data for Property")
.setMaster("local")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.set("spark.cores.max", "16")
conf.registerKryoClasses(Array(classOf[JsObject]))
val sc = new SparkContext(conf)
val filtered = sc.textFile("hdfs://localhost:9000/user/kevin/intermediate/claims.json", 48)
.filter(s => s != "")
.map(s => Json.parse(s).as[JsObject])
.filter(Util.property_filter)
filtered.saveAsTextFile("hdfs://localhost:9000/user/kevin/intermediate/property_claims.json" + fn)
sc.stop()
}
}
【问题讨论】:
标签: scala hadoop apache-spark