Tôi đã gặp phải nhiều sự cố trong một số mô hình chủ đề Spark LDA (chủ yếu là các lỗi phân tách trong các khoảng thời gian dường như ngẫu nhiên). . Điều này có vẻ liên quan đến cấu hình cụm tự động có vấn đề. Nỗ lực mới nhất của tôi sử dụng các máy n1-standard-8 (8 lõi, 30GB RAM) cho cả nút chủ và nút công nhân (6 công nhân, do đó tổng cộng 48 lõi).Các sự cố cấu hình Google Cloud Dataproc
Nhưng khi tôi nhìn vào /etc/spark/conf/spark-defaults.conf
Tôi thấy điều này:
spark.master yarn-client
spark.eventLog.enabled true
spark.eventLog.dir hdfs://cluster-3-m/user/spark/eventlog
# Dynamic allocation on YARN
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.minExecutors 1
spark.dynamicAllocation.initialExecutors 100000
spark.dynamicAllocation.maxExecutors 100000
spark.shuffle.service.enabled true
spark.scheduler.minRegisteredResourcesRatio 0.0
spark.yarn.historyServer.address cluster-3-m:18080
spark.history.fs.logDirectory hdfs://cluster-3-m/user/spark/eventlog
spark.executor.cores 4
spark.executor.memory 9310m
spark.yarn.executor.memoryOverhead 930
# Overkill
spark.yarn.am.memory 9310m
spark.yarn.am.memoryOverhead 930
spark.driver.memory 7556m
spark.driver.maxResultSize 3778m
spark.akka.frameSize 512
# Add ALPN for Bigtable
spark.driver.extraJavaOptions -Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
spark.executor.extraJavaOptions -Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
Nhưng những giá trị này không có ý nghĩa nhiều. Tại sao chỉ sử dụng 4/8 lõi thực thi? Và chỉ có 9,3/30GB RAM? Ấn tượng của tôi là tất cả cấu hình này được cho là được xử lý tự động, nhưng ngay cả những nỗ lực của tôi trong việc tinh chỉnh thủ công cũng không khiến tôi ở bất cứ đâu.
Ví dụ, tôi đã cố gắng tung ra vỏ với:
spark-shell --conf spark.executor.cores=8 --conf spark.executor.memory=24g
Nhưng sau đó này thất bại với
java.lang.IllegalArgumentException: Required executor memory (24576+930 MB) is above the max threshold (22528 MB) of this cluster! Please increase the value of 'yarn.scheduler.maximum-allocation-mb'.
tôi đã cố gắng thay đổi giá trị liên quan trong /etc/hadoop/conf/yarn-site.xml
, để không ảnh hưởng gì. Ngay cả khi tôi thử thiết lập cụm khác (ví dụ: sử dụng các trình thực thi có RAM trên 60 GB), tôi cũng gặp phải vấn đề tương tự. Vì lý do nào đó, ngưỡng tối đa vẫn ở mức 22528MB.
Có điều gì đó tôi đang làm sai ở đây hay đây là vấn đề với cấu hình tự động của Google?
Ahhh, điều này thực sự hữu ích. Cần phải làm một số xác nhận rằng điều này thực sự là vấn đề, và sẽ chấp nhận câu trả lời nếu có. Không nhận ra rằng bạn có thể có nhiều người thực hiện trên cùng một nút, vì vậy điều này có ý nghĩa hơn nhiều bây giờ. – moustachio
Và tôi khá chắc chắn rằng vấn đề bộ nhớ là vấn đề ở đây, nhưng lỗi ngăn xếp Spark thường ít rõ ràng hơn. Tôi về cơ bản đã chạy một loạt các mô hình chủ đề LDA, với số lượng ngày càng tăng của các chủ đề (nhiều chủ đề -> thất bại nhiều hơn), do đó, bộ nhớ có vẻ như thủ phạm có khả năng. – moustachio
Vâng, kích thước của người thi hành là một trong những điểm gây nhầm lẫn được biết đến của Spark, và thật không may là rất khó để có các cấu hình một kích thước phù hợp; [bài đăng trên blog Cloudera này] (http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/) có thêm chi tiết về các tác động của việc định kích thước của người thi hành . –