Tôi đang chạy ứng dụng Spark Streaming trên YARN ở chế độ cụm và tôi đang cố gắng thực hiện tắt máy một cách duyên dáng để khi ứng dụng bị giết, nó sẽ hoàn thành việc thực thi lô vi mô trước khi dừng.Làm cách nào để dừng ứng dụng Spark Streaming trên YARN một cách duyên dáng?
Tiếp theo một số hướng dẫn Tôi đã cấu hình spark.streaming.stopGracefullyOnShutdown
để true
và tôi đã thêm đoạn mã sau vào ứng dụng của tôi:
sys.ShutdownHookThread {
log.info("Gracefully stopping Spark Streaming Application")
ssc.stop(true, true)
log.info("Application stopped")
}
Tuy nhiên khi tôi giết các ứng dụng với
yarn application -kill application_1454432703118_3558
vi lô thực hiện tại thời điểm đó không được hoàn thành.
Trong trình điều khiển Tôi thấy dòng đầu tiên của nhật ký được in ("Gracefully stop Spark Streaming Application") nhưng không phải dòng cuối cùng ("Ứng dụng đã dừng").
ERROR yarn.ApplicationMaster: RECEIVED SIGNAL 15: SIGTERM
INFO streaming.MySparkJob: Gracefully stopping Spark Streaming Application
INFO scheduler.JobGenerator: Stopping JobGenerator gracefully
INFO scheduler.JobGenerator: Waiting for all received blocks to be consumed for job generation
INFO scheduler.JobGenerator: Waited for all received blocks to be consumed for job generation
INFO streaming.StreamingContext: Invoking stop(stopGracefully=true) from shutdown hook
Trong Chấp hành viên log Tôi thấy các lỗi sau:
ERROR executor.CoarseGrainedExecutorBackend: Driver 192.168.6.21:49767 disassociated! Shutting down.
INFO storage.DiskBlockManager: Shutdown hook called
WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://[email protected]:49767] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
INFO util.ShutdownHookManager: Shutdown hook called
Tôi nghĩ vấn đề có liên quan đến cách SỢI gửi tín hiệu kill ứng dụng. Bất kỳ ý tưởng về làm thế nào tôi có thể làm cho các ứng dụng dừng lại một cách duyên dáng?
bạn có thể giải quyết được không? –
Không, tiếc là không. – nicola