Spark-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ YARN-แƒ–แƒ”

แƒฐแƒแƒ‘แƒ , แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ! แƒ’แƒฃแƒจแƒ˜แƒœ Apache Spark-แƒ˜แƒกแƒแƒ“แƒ›แƒ˜ แƒ›แƒ˜แƒซแƒฆแƒ•แƒœแƒ˜แƒšแƒ˜ แƒจแƒ”แƒฎแƒ•แƒ”แƒ“แƒ แƒ, Rambler&Co-แƒก แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ˜แƒงแƒ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒแƒ› แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ›แƒ˜แƒก แƒ™แƒ•แƒแƒšแƒก แƒ’แƒแƒ•แƒงแƒแƒšแƒแƒ“แƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ’แƒ•แƒ”แƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒ˜แƒœแƒ. แƒ—แƒ”แƒ›แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก - แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒ”แƒžแƒแƒขแƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ’แƒ•แƒ˜แƒ–แƒ˜แƒแƒ แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ, แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒฉแƒ•แƒ”แƒœแƒช แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“.

แƒ›แƒชแƒ˜แƒ แƒ” แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Spark-แƒก. แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒ—แƒ•แƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ "แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒ˜แƒกแƒขแƒ˜"แƒ“แƒ แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ–แƒ”. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก, แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ›แƒแƒ•แƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒแƒกแƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ”แƒ‘แƒฃแƒ แƒ”แƒ‘แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› Spark-แƒ–แƒ” แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ›แƒแƒ›แƒฃแƒจแƒแƒ•แƒ” แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒขแƒแƒšแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒ”แƒ›แƒ˜แƒœแƒแƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒชแƒ“แƒ˜แƒก แƒ แƒแƒฆแƒแƒชแƒแƒก แƒ“แƒ แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒกแƒฌแƒแƒ•แƒšแƒ”แƒ‘แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ“แƒ แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ - แƒ–แƒแƒ’แƒฏแƒ”แƒ  40-แƒ›แƒ“แƒ” แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜. แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜, แƒแƒšแƒ‘แƒแƒ—, แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ”แƒ›แƒฃแƒฅแƒ แƒ”แƒ‘แƒแƒ—.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ›แƒ” แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ  แƒ“แƒ แƒ แƒแƒขแƒแƒ› แƒจแƒ”แƒ•แƒแƒ แƒฉแƒ˜แƒ”แƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜.

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ”. Spark-แƒก แƒแƒฅแƒ•แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก 3 แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜, Mesos-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ YARN-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ–แƒ แƒ˜แƒแƒœแƒ˜ แƒ˜แƒงแƒ. แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒฐแƒแƒ“แƒแƒž แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ˜แƒชแƒœแƒแƒ‘แƒ”แƒœ แƒ›แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— YARN.

spark.master=yarn

แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ. แƒแƒ› 3 แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก 2 แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜. แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ“แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ‘แƒ›แƒฃแƒšแƒ–แƒ”, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒกแƒ™แƒ•แƒœแƒแƒ—, แƒ แƒแƒ› แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒœแƒแƒฃแƒ—แƒ‘แƒฃแƒฅแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒฎแƒแƒšแƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒฃแƒคแƒ แƒ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ แƒกแƒแƒฌแƒแƒ แƒ›แƒแƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒ—, แƒแƒ›แƒ˜แƒขแƒแƒ›:

spark.deploy-mode=client

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒแƒ›แƒ˜แƒ”แƒ แƒ˜แƒ“แƒแƒœ Spark แƒ แƒแƒ’แƒแƒ แƒ›แƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก YARN-แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ  แƒ˜แƒงแƒ. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒก แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒแƒ— แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒแƒ‘แƒแƒ แƒ˜ แƒ“แƒแƒญแƒ แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜. แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ แƒแƒ› - แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ. แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒกแƒแƒฅแƒ›แƒ” แƒแƒกแƒ”แƒ—แƒ˜แƒ: แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜แƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒ˜แƒšแƒ˜แƒ—), แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ› แƒแƒคแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Spark แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก. แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ˜แƒฅ แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ”แƒจแƒ›แƒแƒ™แƒฃแƒ แƒ˜ แƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ•แƒแƒšแƒ— แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒจแƒ˜ - แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก.

spark.dynamicAllocation.enabled=true

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ” Spark แƒ’แƒแƒคแƒฃแƒญแƒ“แƒ แƒ“แƒ แƒแƒ  แƒ“แƒแƒ˜แƒฌแƒงแƒ. แƒแƒกแƒ”แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒฃแƒคแƒ แƒ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“. แƒ›แƒแƒกแƒจแƒ˜ แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ, แƒ แƒแƒ› แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ˜แƒงแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ แƒ—แƒแƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜.

spark.shuffle.service.enabled=true

แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ? แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒแƒฆแƒแƒ  แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒแƒ›แƒ“แƒ”แƒœ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก, Spark-แƒ›แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒ แƒแƒฃแƒ–แƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก. แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒจแƒ แƒแƒ›แƒแƒขแƒ”แƒ•แƒแƒ“แƒ˜ แƒ”แƒขแƒแƒžแƒ˜ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  MapReduce แƒแƒ›แƒแƒชแƒแƒœแƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก Shuffle แƒ”แƒขแƒแƒžแƒ˜. แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒแƒ— แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“. แƒ“แƒ แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ›แƒฃแƒจแƒแƒ–แƒ”. แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ“แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ.

แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ˜ แƒ’แƒแƒฎแƒ“แƒ, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ”แƒซแƒšแƒ”แƒแƒ“แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒชแƒ แƒ”แƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒแƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ’แƒแƒฉแƒœแƒ“แƒ - แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒ›แƒ แƒ’แƒแƒ˜แƒฆแƒ•แƒ˜แƒซแƒ”แƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒกแƒฃแƒ แƒ“แƒแƒ— Spark-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒฅ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ แƒ˜แƒงแƒ•แƒœแƒ”แƒœ. แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ. แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ. แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜ แƒกแƒฎแƒ•แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ” แƒ–แƒ”แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒ›แƒงแƒแƒคแƒ”แƒ‘แƒ แƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, แƒ แƒ แƒ“แƒ แƒแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ?

spark.dynamicAllocation.executorIdleTimeout=120s

แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ แƒแƒ แƒ˜ แƒฌแƒฃแƒ—แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒ แƒแƒฃแƒ–แƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒ˜แƒงแƒ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜. แƒแƒจแƒ™แƒแƒ แƒ แƒ˜แƒงแƒ, แƒ แƒแƒ› แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒ แƒ“แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒแƒ“แƒ. แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ - แƒ แƒ แƒ“แƒ แƒแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฅแƒ”แƒจ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒงแƒ แƒฃแƒกแƒแƒกแƒ แƒฃแƒšแƒแƒ‘แƒ! แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ—.

spark.dynamicAllocation.cachedExecutorIdleTimeout=600s

แƒแƒœแƒฃ, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ 5 แƒฌแƒฃแƒ—แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ›แƒ˜แƒ”แƒชแƒ˜แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒ แƒแƒฃแƒ–แƒก. แƒแƒ› แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒ’แƒแƒฎแƒ“แƒ แƒฆแƒ˜แƒ แƒกแƒ”แƒฃแƒšแƒ˜. แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ แƒฃแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒฌแƒแƒ•แƒกแƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ•แƒ–แƒฆแƒฃแƒ“แƒแƒ— แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ—แƒ˜แƒ—แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ–แƒ” - แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ–แƒ”.

spark.dynamicAllocation.maxExecutors=19

แƒแƒฎแƒšแƒ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒแƒ แƒ”แƒก แƒแƒ แƒ˜แƒแƒœ แƒฃแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒแƒ”แƒ‘แƒ˜ - โ€žแƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒฃแƒกแƒแƒฅแƒ›แƒฃแƒ แƒ˜แƒ, แƒ›แƒ” แƒ™แƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ 19 แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒงแƒแƒ•แƒกโ€œ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒฅแƒœแƒ, แƒ แƒแƒฆแƒแƒช แƒกแƒฌแƒแƒ แƒ˜ แƒ‘แƒแƒšแƒแƒœแƒกแƒ˜ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒงแƒ•แƒ”แƒšแƒแƒก แƒ•แƒ”แƒ  แƒ’แƒแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒ”แƒ‘.

แƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒžแƒแƒขแƒแƒ แƒ แƒแƒ›แƒ‘แƒแƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒฅแƒ›แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒกแƒ—แƒแƒœ. แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ›แƒ แƒ“แƒแƒแƒ’แƒ•แƒ˜แƒแƒœแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒš แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ–แƒ” แƒ“แƒ แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒกแƒžแƒแƒ แƒ™แƒ›แƒ แƒแƒ  แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒ”แƒ— แƒฃแƒคแƒแƒกแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก - แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก แƒแƒ แƒ˜แƒก. แƒœแƒแƒžแƒ”แƒ แƒฌแƒ™แƒแƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒ˜แƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒกแƒแƒ“แƒฆแƒแƒช แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒฅแƒ•แƒ”แƒ™แƒแƒ แƒขแƒ”แƒฅแƒกแƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ, แƒ แƒแƒ› แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก Spark แƒ”แƒซแƒ”แƒ‘แƒก แƒžแƒแƒ แƒขแƒก, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก. แƒ—แƒฃ แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒ แƒขแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ–แƒ” แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒ—. แƒ—แƒฃ แƒฃแƒคแƒแƒกแƒแƒ, แƒ˜แƒก แƒ˜แƒญแƒ”แƒ แƒก. แƒ“แƒ แƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ–แƒ”. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒแƒ แƒ˜แƒก 16. แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜ แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒฎแƒแƒšแƒฎแƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, 16 แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒžแƒแƒ แƒ™แƒ›แƒ แƒ“แƒแƒœแƒ”แƒ‘แƒ“แƒ แƒ“แƒ แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ› แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ— แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜.

spark.port.maxRetries=50

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ” แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒฅแƒ›แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒกแƒ—แƒแƒœ.

Spark-แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“, แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒแƒ แƒฅแƒ˜แƒ•แƒแƒ— jars แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก SPARK_HOME แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ˜แƒ’แƒ˜ HDFS-แƒ–แƒ”. แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒก แƒแƒ  แƒ“แƒแƒ™แƒแƒ แƒ’แƒแƒ•แƒก แƒ“แƒ แƒแƒก แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒ› แƒฏแƒแƒ แƒœแƒ˜แƒ™แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒ–แƒ”.

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

แƒแƒกแƒ”แƒ•แƒ” แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒ แƒ˜แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒ”แƒ แƒ˜แƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜.

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

แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ Spark-แƒ—แƒแƒœ, แƒ แƒแƒ› แƒ˜แƒก แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒฃแƒจแƒ”แƒ‘แƒ›แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒ”แƒก แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ›แƒซแƒฆแƒแƒšแƒก แƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒแƒœ. แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒแƒ•แƒฎแƒแƒ“แƒ”แƒ—. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒแƒ แƒ˜แƒก 1 GB, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— 3.

spark.driver.maxResultSize=3072

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒ”แƒกแƒ”แƒ แƒขแƒ˜. แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— Spark 2.1 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ” HortonWorks แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒแƒ–แƒ” - HDP 2.5.3.0. HDP-แƒ˜แƒก แƒ”แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก 2.0, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒแƒ› Spark แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก API-แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ.

แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ Hadoop 2.7-แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ. แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ˜แƒ’แƒ˜ แƒ“แƒ แƒฉแƒแƒ“แƒ”แƒ— HDP แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒกแƒ˜แƒ›แƒšแƒ˜แƒœแƒ™แƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ . แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ›แƒแƒก - แƒ˜แƒก แƒแƒ  แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ. แƒซแƒแƒšแƒ˜แƒแƒœ แƒฃแƒชแƒœแƒแƒฃแƒ  แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒฌแƒ”แƒ แƒก.

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

แƒ’แƒฃแƒ’แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ•แƒ˜แƒ’แƒ”แƒ—, แƒ แƒแƒ› แƒกแƒžแƒแƒ แƒ™แƒ›แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ แƒแƒ  แƒ“แƒแƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒœแƒ แƒฐแƒแƒ“แƒแƒžแƒ˜แƒก แƒ“แƒแƒ‘แƒแƒ“แƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ“แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ แƒ’แƒแƒ›แƒแƒ”แƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒœแƒ แƒ›แƒแƒ˜แƒกแƒฃแƒ แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ. แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ” แƒฏแƒ˜แƒ แƒแƒจแƒ˜ แƒ—แƒแƒ•แƒแƒ“ แƒ™แƒแƒ›แƒแƒ—แƒแƒ‘แƒ”แƒœ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒก. แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒงแƒ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ›แƒแƒ˜แƒกแƒฃแƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ 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 แƒแƒ  แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ. แƒ’แƒฃแƒ’แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ•แƒ˜แƒžแƒแƒ•แƒ”แƒ—. แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— YARN แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜ แƒแƒ›แƒ‘แƒแƒ แƒจแƒ˜ แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒฅ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒš แƒœแƒแƒ แƒ—แƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ–แƒ”:

hdp.version=2.5.3.0-37

แƒ”แƒก แƒ›แƒแƒ’แƒ˜แƒ แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ แƒ“แƒ แƒกแƒžแƒแƒ แƒ™แƒ˜ แƒแƒคแƒ แƒ˜แƒœแƒ“แƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒชแƒแƒ“แƒ”แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒšแƒ”แƒžแƒขแƒแƒžแƒ˜. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ–แƒแƒ“ แƒ•แƒแƒ แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ Spark แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒแƒ‘แƒแƒ—แƒก (แƒฎแƒ•แƒแƒš)!

DUP. แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ–แƒ” แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ’แƒแƒ›แƒแƒ˜แƒ™แƒ•แƒ”แƒ—แƒ. แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, YARN-แƒ›แƒ แƒจแƒ”แƒฌแƒงแƒ•แƒ˜แƒขแƒ Spark-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ. YARN-แƒจแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒงแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒ˜แƒงแƒ 0.2:

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

แƒแƒœแƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒแƒ‘แƒ“แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ 20%. แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒฉแƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— YARN. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ แƒ“แƒ แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ›แƒ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒ›แƒ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒซแƒšแƒ”แƒก แƒœแƒแƒžแƒ”แƒ แƒฌแƒ™แƒšแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ