最近在做Spark的性能优化,测试使用不同CPU核数和内存对计算性能的影响,由于是在测试集群进行测试的,硬件配置比生产上面的要少和低,遇到了不少的问题,其中一个值得说一下的就是org.apache.spark.shuffle.FetchFailedException:Failed to connect to /xxx:43301
1. 运行环境
1.1 硬件
2.1 测试1
2.1.1 测试参数
spark.driver.cores 没有配置,默认使用1
spark.driver.maxResultSize 配置2g,默认是1g
spark.driver.memory 配置3g,默认是1g
spark.executor.memory 配置8g,默认是1g
spark.executor.cores 没有配置,默认使用Worker全部核数,这里是4
2.1.2 测试结果
1. 运行环境
1.1 硬件
- 3台测试服务器,分别为A,B,C,每台4核,16GB内存
- 每台部署HDFS的DataNode和Spark的Worker
- 其中A同时部署了HDFS的NameNode
- 其中B同时部署了Spark的Master
- 其中C是Spark的Driver
- HDFS 2.7.3,集群
- Spark 2.1.0,标准集群模式
- Java 1.8.0_131
2.1 测试1
2.1.1 测试参数
spark.driver.cores 没有配置,默认使用1
spark.driver.maxResultSize 配置2g,默认是1g
spark.driver.memory 配置3g,默认是1g
spark.executor.memory 配置8g,默认是1g
spark.executor.cores 没有配置,默认使用Worker全部核数,这里是4
2.1.2 测试结果