我在试着给你的客户做spark的工作。我有两个节点,每个节点都有以下配置。
我得到“executorlostfailure(executor 1 lost)”。
我已经尝试了大多数的Spark调谐配置。我已经减少到一个执行失败,因为最初我有6个执行失败。
以下是我的配置(我的spark提交):
hadoop\u user\u name=hdfs spark submit--class genkvs.createfieldmappings--master yarn client--driver memory 11g--executor memory 11g--total executor cores 16--num executors 15--conf“spark.executor.extrajavaoptions=-xx:+usecompressedoops-xx:+printgcdealts-xx:+printgtimestamps”--conf spark.akka.framesize=1000--spark.shuffle.memoryfraction=1--conf spark.rdd.compress=true--conf spark.core.connection.ack.wait.timeout=800 my data/lookup\u cache\u spark-assembly-1.0-snapshot.jar-hhdfs://hdp-node-1.zone24x7.lk:8020-800页
我的数据大小是6gb,我的工作是分组。
def process(in: RDD[(String, String, Int, String)]) = {
in.groupBy(_._4)
}
我是新来的Spark,请帮我找出我的错误。我已经挣扎了至少一个星期了。
事先非常感谢。
1条答案
按热度按时间ki0zmccv1#
出现两个问题:
spark.shuffle.memoryfraction设置为1。为什么选择了0.2而不是默认值?这可能会导致其他非无序操作的匮乏
您只有11g可供16核使用。如果只有11g,我会把你工作中的员工数量设置为不超过3人——最初(为了克服“执行人丢失”的问题)只需尝试1人。由于有16个执行器,每个执行器都有大约700mb的空间,所以它们会丢失oome/executor也就不足为奇了。