เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Spark เปƒเบ™ YARN

Habr, เบชเบฐเบšเบฒเบเบ”เบต! เบกเบทเป‰เบงเบฒเบ™เบ™เบตเป‰ เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบญเบธเบ—เบดเบ”เบ•เบปเบ™เป€เบžเบทเปˆเบญ Apache Spark, เบˆเบฒเบ guys เบˆเบฒเบ Rambler & Co, เบกเบตเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบผเบฒเบเบ„เปเบฒเบ–เบฒเบกเบˆเบฒเบเบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ”เบตเบ™โ€‹เบ•เบฒเบกโ€‹เบฎเบญเบโ€‹เบ•เบตเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบฃเบฐโ€‹เบญเบปเบ‡โ€‹เปเบฅเบฐโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เบชเบปเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒ. เบซเบปเบงเบ‚เปเป‰เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบ - เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบตเบ™เบ—เปˆเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™, เบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบฅเบฐเปƒเบŠเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”.

เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Spark. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเป€เบ”เบทเบญเบ™ "เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบเปˆ", เปเบฅเบฐเบ•เบฐเบซเบผเบญเบ”เป‚เบกเบ”เบนเบ™เบ—เบตเบชเบญเบ‡เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปƒเบ™เบ–เบฒเบ™เบฐเบœเบนเป‰เบˆเบฑเบ”เบ•เบฑเป‰เบ‡, เปเบกเปˆเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

peculiarity เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ›เบฐเบŠเบฒเบŠเบปเบ™เบžเป‰เบญเบกเป†เบเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบš Spark เบชเบฒเบกเบฒเบ”เป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบธเปˆเบกเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเปเบฒเบกเบฐเบ™เบฒ, เป€เบกเบทเปˆเบญเบ—เบธเบเบ„เบปเบ™เบžเบฐเบเบฒเบเบฒเบกเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบนเบชเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปเบฅเบฐเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบซเบผเบฒเบ - เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบ–เบดเบ‡ 40 เบ„เบปเบ™. เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบšเปเบฅเบดเบชเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเปƒเบ™เป‚เบฅเบเบ—เบตเปˆเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบ•เปเปˆเป„เบ›, เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเปเบ™เบงเปƒเบ”เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. Spark เบกเบต 3 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เบเบธเปˆเบกโ€‹: standaloneโ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ Mesosโ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ YARNโ€‹. เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบฒเบกเป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบธเปˆเบก hadoop เปเบฅเป‰เบง. เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบฎเบนเป‰เบˆเบฑเบเบ”เบตเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบกเบฑเบ™. เปƒเบซเป‰เปƒเบŠเป‰ YARN.

spark.master=yarn

เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ. เปเบ•เปˆเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ 3 เบญเบฑเบ™เบ™เบตเป‰เบกเบต 2 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰: เบฅเบนเบเบ„เป‰เบฒ เปเบฅเบฐเบเบธเปˆเบก. เบญเบตเบ‡ เป€เบญเบเบฐเบชเบฒเบ™ เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เปˆเบฒเบ‡เป†เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบผเบธเบšเป„เบ”เป‰เบงเปˆเบฒเบฅเบนเบเบ„เป‰เบฒเปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเป‚เบ•เป‰เบ•เบญเบš - เบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ”เบเบœเปˆเบฒเบ™เบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡ jupyter, เปเบฅเบฐ cluster เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเป‚เบ•เป‰เบ•เบญเบš, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™:

spark.deploy-mode=client

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบˆเบฒเบเบ™เบตเป‰ Spark เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ YARN, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบซเบเปˆ, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบšเปเปˆเบกเบตเบžเบฝเบ‡เบžเปเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบเบญเบšเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ•เบฑเบ”เบเบฑเบ™. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ - dynamic resource allocation . เปƒเบ™เบชเบฑเป‰เบ™, เบˆเบธเบ”เบ™เบตเป‰เปเบกเปˆเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบงเบฝเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปเบฅเบฐเบเบธเปˆเบกเปเบกเปˆเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒ), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ Spark เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เบ•เบฒเบกเบชเบนเบ”เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ” - เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบต.

spark.dynamicAllocation.enabled=true

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰, เปเบฅเบฐเป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ Spark crashed เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบญเปˆเบฒเบ™เบกเบฑเบ™ เป€เบญเบเบฐเบชเบฒเบ™ เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบกเบฑเบ™เบฅเบฐเบšเบธเบงเปˆเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบšเปเปˆเป€เบ›เบฑเบ™เบซเบเบฑเบ‡, เบ—เปˆเบฒเบ™เบเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

spark.shuffle.service.enabled=true

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™? เป€เบกเบทเปˆเบญเบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบ, Spark เบ„เบงเบ™เบชเบปเปˆเบ‡เบžเบงเบเบกเบฑเบ™เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบชเบฐเบ™เบธเบเป€เบเบตเบ—เบปเปˆเบงเป„เบ›. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป€เบเบทเบญเบšเบ—เบธเบเบซเบ™เป‰เบฒเบงเบฝเบ MapReduce เปเบกเปˆเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡ Shuffle. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เปเบฅเบฐเบ›เปˆเบญเบเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก. เปเบฅเบฐเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™. เบกเบฑเบ™เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เปเบเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.

เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก. เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบ. เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเป„เบ”เป‰เบฎเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เปเบ•เปˆเบšเบฑเบ™เบซเบฒเบญเบทเปˆเบ™เบเปเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™ - เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบญเบทเปˆเบ™เป†เบ•เบทเปˆเบ™เบ‚เบถเป‰เบ™เปเบฅเบฐเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Spark, เปเบ•เปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบเปเปˆเบซเบเบธเป‰เบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบžเปเปƒเบˆ. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰. เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™. เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบชเบฐเปเบ•เบ™เบšเบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเปƒเบ”เบ—เบตเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบกเบฑเบ™เป„เบ”เป‰?

spark.dynamicAllocation.executorIdleTimeout=120s

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบœเบนเป‰โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบซเบเบฑเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบญเบ‡โ€‹เบ™เบฒโ€‹เบ—เบตโ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฐโ€‹เบฅเบธโ€‹เบ™เบฒโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹เบชเบฐโ€‹เบ™เบธเบโ€‹เป€เบเบตโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹. เปเบ•เปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เบžเปเบชเบฐเป€เบซเบกเบต. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบ. เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒเบเบฑเบ‡เบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบžเบดเป€เบชเบ” - เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”! เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบกเบฑเบ™.

spark.dynamicAllocation.cachedExecutorIdleTimeout=600s

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ–เป‰เบฒเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป€เบ›เบฑเบ™เป€เบงเบฅเบฒ 5 เบ™เบฒเบ—เบต, เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™เบชเบฐเบฅเบญเบเบ™เป‰เปเบฒเบ—เบปเปˆเบงเป„เบ›. เปƒเบ™เป‚เบซเบกเบ”เบ™เบตเป‰, เบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบเปเบฅเบฐเบญเบญเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เบˆเปเบฒเบ™เบงเบ™เบ„เบงเบฒเบกเบšเปเปˆเบžเปเปƒเบˆเป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเป„เบ›เบ•เบทเปˆเบกเบญเบตเบเปเบฅเบฐเบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบนเบ‡เบชเบธเบ”เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ - เบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเป‚เบ„เบ‡เบเบฒเบ™.

spark.dynamicAllocation.maxExecutors=19

เบ”เบฝเบงเบ™เบตเป‰, เปเบ™เปˆเบ™เบญเบ™, เบกเบตเบ„เบปเบ™เบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆเปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™ เปœเบถเปˆเบ‡ - "เบเบธเปˆเบกเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบฅเบฐเบ‚เป‰เบญเบเบกเบตเบžเบฝเบ‡เปเบ•เปˆ 19 เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™," เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป„เบ”เป‰? เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบชเบปเบกเบ”เบธเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบเบ„เบปเบ™เบกเบตเบ„เบงเบฒเบกเบชเบธเบ.

เปเบฅเบฐเป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเป†เบ™เป‰เบญเบเป†เบญเบตเบเป€เบฅเบทเปˆเบญเบ‡เปœเบถเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบซเบผเบฒเบเป†เบ„เบปเบ™เป„เบ”เป‰เบกเบฒเบŠเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบฎเบฝเบ™เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡ Spark เบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒ - เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. Spark เบ„เบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป‚เบŠเบเบ”เบต, เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เป€เบญเบเบฐเบชเบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ subcortex เบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเป„เบ”เป‰เบงเปˆเบฒเป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบง, Spark เบŠเบญเบเบซเบฒเบžเบญเบ”เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบžเบญเบ”เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบšเปเปˆเบซเบงเปˆเบฒเบ‡, เบกเบฑเบ™เบˆเบฐเบเป‰เบฒเบเป„เบ›เบšเปˆเบญเบ™เบ•เปเปˆเป„เบ›เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ, เบกเบฑเบ™เบˆเบฑเบš. เปเบฅเบฐเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 16. เบ•เบปเบงเป€เบฅเบเปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ™เปƒเบ™เบเบธเปˆเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบ 16 เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก, Spark เป„เบ”เป‰เบเบญเบกเปเบžเป‰เปเบฅเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เปเบฅเป‰เบง.

spark.port.maxRetries=50

เบ•เปเปˆเป„เบ›เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ Spark เป„เบ”เป‰เป„เบงเบ‚เบถเป‰เบ™, เปเบ™เบฐเบ™เบณเปƒเบซเป‰เป€เบเบฑเบšเป‚เบŸเบ™เป€เบ”เบต jars เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ SPARK_HOME home directory เปเบฅเป‰เบงเปƒเบชเปˆเปƒเบ™ HDFS. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฒเบงเบˆเบฐเบšเปเปˆเป€เบชเบเป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบเบฐเบ›เป‹เบญเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป‚เบ”เบเบ„เบปเบ™เบ‡เบฒเบ™.

spark.yarn.archive=hdfs:///tmp/spark-archive.zip

เบกเบฑเบ™เบเบฑเบ‡เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ kryo เป€เบ›เบฑเบ™ serializer เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป„เบงเบ‚เบถเป‰เบ™. เบกเบฑเบ™เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบเปˆเบงเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

spark.serializer=org.apache.spark.serializer.KryoSerializer

เปเบฅเบฐเบเบฑเบ‡เบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เบเบฑเบš Spark เบ—เบตเปˆเบกเบฑเบ™เบกเบฑเบเบˆเบฐเบ‚เบฑเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เป€เบฅเบทเป‰เบญเบเป†เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบปเบ™เบ‡เบฒเบ™เป„เบ”เป‰เบ„เบดเบ”เป„เบฅเปˆเบ—เบธเบเบขเปˆเบฒเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบœเบนเป‰เบ‚เบฑเบšเบ‚เบตเปˆ. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เปƒเบซเบเปˆเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบกเบฑเบ™เปเบกเปˆเบ™ 1GB, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™ 3.

spark.driver.maxResultSize=3072

เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เป€เบ›เบฑเบ™ dessert. เบงเบดเบ—เบตเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ” Spark เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเบ™ 2.1 เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ HortonWorks - HDP 2.5.3.0. เบชเบฐเบšเบฑเบšเบ™เบตเป‰เบ‚เบญเบ‡ HDP เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป€เบงเบตเบŠเบฑเบ™ 2.0 เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบงเป‰เบเปˆเบญเบ™, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡เบงเปˆเบฒ Spark เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™, เปเบฅเบฐเปเบ•เปˆเบฅเบฐเบฎเบธเปˆเบ™เปƒเบซเบกเปˆเปเบเป‰เป„เบ‚เบšเบฒเบ‡เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบšเบงเบเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบฅเบงเบกเบ—เบฑเบ‡เบชเปเบฒเบฅเบฑเบš python API, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ, เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

เบ”เบฒเบงเป‚เบซเบฅเบ”เป€เบงเบตเบŠเบฑเบ™เบˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบฒเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš Hadoop 2.7. Unzipped เบกเบฑเบ™เปเบฅเบฐเป€เบญเบปเบฒเปƒเบชเปˆเปƒเบ™เป‚เบŸเบ™เป€เบ”เบต HDP. เบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เบฑเป‰เบ‡ symlinks เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™ - เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ‚เบฝเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเปเบ›เบเบ›เบฐเบซเบผเบฒเบ”เบซเบผเบฒเบ.

java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig

เบซเบผเบฑเบ‡เบˆเบฒเบ googling, เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบงเปˆเบฒ Spark เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบšเปเปˆเบฅเปเบ–เป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒ Hadoop เป€เบเบตเบ”, เปเบฅเบฐเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰ jersey เบฎเบธเปˆเบ™เปƒเบซเบกเปˆ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบญเบ‡เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰เปƒเบ™ JIRA. เบเบฒเบ™เปเบเป‰เป„เบ‚เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบฅเบ” jersey เบฅเบธเป‰เบ™ 1.17.1. เบงเบฒเบ‡เบญเบฑเบ™เบ™เบตเป‰เป„เบงเป‰เปƒเบ™เป‚เบŸเบ™เป€เบ”เบต jars เปƒเบ™ SPARK_HOME, เบšเบตเบšเบญเบฑเบ”เบกเบฑเบ™เบญเบตเบเบ„เบฑเป‰เบ‡ เปเบฅเบฐเบญเบฑเบšเป‚เบซเบฅเบ”เปƒเบชเปˆ HDFS.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบกเบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ™เบตเป‰โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบซเบกเปˆโ€‹เปเบฅเบฐโ€‹เบชเบฐโ€‹เบ”เบงเบโ€‹เบชเบฐโ€‹เบšเบฒเบโ€‹เบซเบผเบฒเบโ€‹เป„เบ”เป‰โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹.

org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to launch application master

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเบšเบฑเบš 2.0 - เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบต. เบžเบฐเบเบฒเบเบฒเบกเป€เบ”เบปเบฒเบงเปˆเบฒเบกเบตเบซเบเบฑเบ‡เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบšเบดเปˆเบ‡โ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เป„เบ”เป‰โ€‹เป€เบซเบฑเบ™โ€‹เบšเบฒเบ‡โ€‹เบชเบดเปˆเบ‡โ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบ™เบตเป‰โ€‹:

/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡ hdp.version เบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚. เบซเบผเบฑเบ‡เบˆเบฒเบ google, เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเป€เบซเบฑเบ™เบงเบดเบ—เบตเปเบเป‰เป„เบ‚. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ›เบ—เบตเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ YARN เปƒเบ™ Ambari เปเบฅเบฐเป€เบžเบตเปˆเบกเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบญเบ‡ yarn-site:

hdp.version=2.5.3.0-37

magic เบ™เบตเป‰เบŠเปˆเบงเบเป„เบ”เป‰, เปเบฅเบฐ Spark เป€เบญเบปเบฒเป„เบ›. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ—เบปเบ”เบชเบญเบšเป‚เบ™เบ”เบšเบธเบ jupyter เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบซเบผเบฒเบเปœเปˆเบงเบ. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบžเบงเบเป€เบฎเบปเบฒเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบฎเบฝเบ™ Spark เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบงเบฑเบ™เป€เบชเบปเบฒ (เบกเบทเป‰เบญเบทเปˆเบ™)!

DUP. เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบšเบปเบ”โ€‹เบฎเบฝเบ™โ€‹, เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป„เบ”เป‰โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹. เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, YARN เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบšเบฑเบ™เบˆเบธเบชเปเบฒเบฅเบฑเบš Spark. เปƒเบ™ YARN เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เป€เบŠเบดเปˆเบ‡เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.2:

yarn.scheduler.capacity.maximum-am-resource-percent=0.8

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบตเบžเบฝเบ‡เปเบ•เปˆ 20% เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เบžเบงเบเป€เบฎเบปเบฒเป‚เบซเบผเบ” YARN เบ„เบทเบ™เปƒเปเปˆ. เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเบฐเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ spark context.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster