Я запускаю работу Spark в локальном режиме на 8-ядерном компьютере. Он имеет локальный SSD и 64 ГБ оперативной памяти. HDFS запускается в псевдораспределенном режиме на одном компьютере. При выполнении нижеуказанного задания я не могу получить загрузку процессора, чтобы получить максимальную отдачу от одного ядра. Объем использования ОЗУ составляет менее 10 ГБ. Интерфейс loopback достигает около 333 МБ/с. Обычно диск IO составляет менее 30 МБ/с. Как я могу написать это, чтобы лучше использовать мои аппаратные ресурсы?Низкое использование ЦП в Spark
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()
}
}
Удивительно, что дает мне до 90% общего использования. Благодарю. – Kevin