рдирдорд╕реНрдХрд╛рд░ рд╕рд╛рдерд┐рдпреЛрдВ! рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рд╣рдордиреЗ
рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдкреБрд╕реНрддрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХреА рдереА, рдФрд░ рдЕрднреА
рдХрд╛рдлреНрдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдкреБрд╕реНрддрдХ рдирд╡реАрдирддрдо рдкреНрд░реВрдлрд░реАрдбрд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реА рд╣реИред
рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдкреБрд╕реНрддрдХреЗрдВ рд╡рд┐рд╖рдп рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдлрд▓ рд╣реЛрдВрдЧреА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкрд░ рд╕рд╛рд╣рд┐рддреНрдп рдХреЗ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдПред рд╣рдо рдЖрдЬ рдЖрдкрдХреЛ рдХрд╛рдлреНрдХрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
1. рдФрдЪрд┐рддреНрдпрдЕрдкрд╛рдЪреЗ рдХрд╛рдлреНрдХрд╛ + рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ-рдХрд╛рдлреНрдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВрдЧреЗред рдлрд┐рд░ рд╣рдо "рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг" рдФрд░ рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдПрдХреАрдХрд░рдг рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ред
2. рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛ рдПрдХреАрдХрд░рдгрдЕрдкрд╛рдЪреЗ рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдХрд╛рдлреНрдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ - рдЕрд░реНрдерд╛рддред рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХрд╛рдлреНрдХрд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ (рдирдпрд╛) рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрд░реНрде рдЧрд╛рд░рдВрдЯреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреЛрдиреЛрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЙрдбрд▓ рд╣реИрдВред

рдЖрдЗрдП рдЗрди рддрд░реАрдХреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдПрдХред рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, рдХрд╛рдлреНрдХрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЦрдкрдд рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рд╕реНрдкрд╛рд░реНрдХ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рдХрд╛рдлреНрдХрд╛ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЗрдВ рдиреМрдХрд░рд┐рдпреЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХрд╛ рдЬреЛрдЦрд┐рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде) рд░рд╣рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдбреЗрдЯрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреНрдХрд╛ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рдлреНрдХрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд╛рдЗрдЯ-рдлреЙрд░рд╡рд░реНрдб рд▓реЙрдЧ рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реАрд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рднреА, рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдХрд╛рдлреНрдХрд╛ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред
рдореИрдВред рд▓рд┐рдВрдХ рдХрд░рдирд╛рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдХрд╛рд▓рд╛ / рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рд╣рдо рдПрд╕рдмреАрдЯреА / рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
groupId = org.apache.spark artifactId = spark-streaming-kafka-0-8_2.11 version = 2.2.0
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдкрд╛рдпрдерди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
iiред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЗрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдЯреНрд░реАрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ
KafkaUtils
рдХреЛ рдЖрдпрд╛рдд рдХрд░рдХреЗ рдПрдХ
DStream
рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдПрдВ:
import org.apache.spark.streaming.kafka._ val kafkaStream = KafkaUtils.createStream(streamingContext, [ZK quorum], [consumer group id], [per-topic number of Kafka partitions to consume])
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, createStream рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреБрдВрдЬреА рд╡рд░реНрдЧ рдФрд░ рдореВрд▓реНрдп рд╡рд░реНрдЧ, рд╕рд╛рде рд╣реА рдЙрдирдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
iiiред рддреИрдирд╛рддреАрдХрд┐рд╕реА рднреА рд╕реНрдкрд╛рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде, рд╕реНрдкрд╛рд░реНрдХ-рд╕рдмрдорд┐рдЯ рдХрдорд╛рдВрдб рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рд╡рд░рдг рд╕реНрдХреИрд▓рд╛ / рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкрд╛рдпрдерди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
тАУpackages
рд╕рд╛рде рдЖрдк
spark-streaming-Kafka-0-8_2.11
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╕реАрдзреЗ
spark-submit
, рдпрд╣ рдкрд╛рдпрдерди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ рдПрд╕рдмреАрдЯреА / рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
./bin/spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.2.0 ...
рдЖрдк рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдорд╛рд╡реЗрди рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп
spark-streaming-Kafka-0-8-assembly
рдХрд╛ рдЬрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЗрд╕реЗ
spark-submit
jars
рд╕рд╛рде
spark-submit
рдХрд░реЗрдВред
рдЦред рдкреНрд░рддреНрдпрдХреНрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдХреЛрдИ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ)рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - "рдкреНрд░рддреНрдпрдХреНрд╖" рдПрдХред рдпрд╣ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрдВрдд-рдЯреВ-рдПрдВрдб рд╡рд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдХрд╛рдлреНрдХрд╛ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╖рдп / рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рдг рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реАрдб рдлреНрд░реИрдЧрдореЗрдВрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЯ рдХреЗ рд╕рд╣реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд┐рдП рдЧрдП рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдлреНрдХрд╛ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖рдХрд░ рддрдм рдЬрдм рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЬреЙрдм рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдлрд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреА рддрд░рд╣ рд╣реИред
рдиреЛрдЯ: рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕реНрдХреЗрд▓рд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╛рд░реНрдХ 1.3 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА, рд╕рд╛рде рд╣реА рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╛рд░реНрдХ 1.4 рдореЗрдВ рднреАред
рдЕрдм рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЙрдкрднреЛрдХреНрддрд╛ рдПрдкреАрдЖрдИ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ:
рдЕрдкрд╛рдЪреЗ рдХрд╛рдлреНрдХрд╛ рдЙрдкрднреЛрдХреНрддрд╛ | рдХрдлрдХрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгрдореИрдВред рд▓рд┐рдВрдХ рдХрд░рдирд╛
рд╕рдЪ рд╣реИ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рд╕реНрдХрд╛рд▓рд╛ / рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдПрд╕рдмреАрдЯреА / рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред
groupId = org.apache.spark artifactId = spark-streaming-kafka-0-8_2.11 version = 2.2.0
iiред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЕрдЧрд▓рд╛, KafkaUtils рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ
DStream
рдмрдирд╛рдПрдВ:
import org.apache.spark.streaming.kafka._ val directKafkaStream = KafkaUtils.createDirectStream[ [key class], [value class], [key decoder class], [value decoder class] ]( streamingContext, [map of Kafka parameters], [set of topics to consume])
рдХрд╛рдлреНрдХрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ
metadata.broker.list
рдпрд╛
bootstrap.servers
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣рдо рдХрд╛рдлреНрдХрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдореЗрдВ рдЕрдВрддрд┐рдо рдСрдлрд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░реАрдбрд┐рдВрдЧ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛ, рддреЛ
auto.offset.reset
рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк
auto.offset.reset
рд╕реЗрдЯ рдХрд░рдирд╛
auto.offset.reset
ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
KafkaUtils.createDirectStream
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЖрдк рдПрдХ рдордирдорд╛рдирд╛ рдСрдлрд╕реЗрдЯ рд╕реЗ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЦрдкрдд рдХрд┐рдП рдЧрдП рдХрд╛рдлреНрдХрд╛ рдЕрдВрд╢реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдпрджрд┐ рд╣рдо рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╝реВрдХреАрдкрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдлреНрдХрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЬрд╝реБрдХреАрдкрд░ рдХреЛ рдЙрдирдХреА рдорджрдж рд╕реЗ рд╕реНрд╡рдпрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
iiiред рддреИрдирд╛рддреАрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддреИрдирд╛рддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
3. рдкреНрд░рддреНрдпрдХреНрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рднрдХрдлрд╝реНрдХрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╣реИред
рдПрдХред рд╕рд░рд▓реАрдХреГрдд рд╕рдВрдЧрд░реЛрдзрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХрдИ рдХрд╛рдлреНрдХрд╛ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдлреНрдХрд╛ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрдИ рдЖрд░рдбреАрдбреА рд╕реЗрдЧрдореЗрдВрдЯ рдмрдирд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдХрд╛рдлреНрдХрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рд╣реЛрдВрдЧреЗред рдЗрд╕ рдХрд╛рдлрд╝реНрдХрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рднреА рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлреНрдХрд╛ рдФрд░ рдЖрд░рдбреАрдбреА рдЦрдВрдбреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдПрдХ рдкрддреНрд░рд╛рдЪрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рдРрд╕рд╛ рдореЙрдбрд▓ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЦред рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛рдкрд╣рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рдореБрдЦ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓реЙрдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХрд╛рдлреНрдХрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реА рдмрд╛рд░, рдФрд░ рджреВрд╕рд░рд╛ рд▓рд┐рдЦрд┐рдд рд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ред рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЕрдЧреНрд░рдгреА рд▓реЗрдЦрди рдкрддреНрд░рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлрд╝реНрдХрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдВрдмрд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ рдХрд╛рдлреНрдХрд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХред рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА-рдПрдХ рдмрд╛рд░ рд╢рдмреНрджрд╛рд░реНрдердореВрд▓ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ Zookeeper рдореЗрдВ рднрд╕реНрдо рд░реАрдб рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХрд╛рдлреНрдХрд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрдлрдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд░рд┐рд╡рд╛рдЬ рд╣реИред рдЬрдмрдХрд┐ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЛ рдордЬрд╝рдмреВрддреА рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдореЗрдВ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рдХреЙрд░реНрдб рджреЛ рдмрд╛рд░ рдЦрдкрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреВрд░реЗ рдмрд┐рдВрджреБ рдХрд╛рдлреНрдХрд╛ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рддрдВрддреНрд░ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрддрддрд╛ рд╣реИ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдФрд░ рдЯреБрдХрдбрд╝рд╛ рдкрдврд╝рдиреЗ рдЬреЛ рдЬрд╝реБрдХрд╛рдЗрдкрд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рд╣рдо рд╕рд░рд▓ рдХрд╛рдлреНрдХрд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЬрд╝реВрдХреАрдкрд░ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ, рдХрдлрдХрд╛ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЗрдВ рд░реАрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдФрд░ рдЬрд╝реБрдХреАрдкрд░ / рдХрд╛рдлреНрдХрд╛ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА, рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдПрдХ рдмрд╛рд░ рд╕рдЦреНрддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рдСрдкрд░реЗрд╢рди, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдмрд╛рд╣рд░реА рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдпрд╛ рддреЛ рдмреЗрдХрд╛рд░ рд╣реИ рдпрд╛ рдкрд░рдорд╛рдгреБ рд▓реЗрдирджреЗрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдСрдлрд╕реЗрдЯ рджреЛрдиреЛрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдореЗрдВ рдареАрдХ-рдареАрдХ рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдХрдореА рд╣реИ: рдЬрд╝реБрдХрд╛рдЗрдкрд░ рдореЗрдВ рдСрдлрд╝рд╕реЗрдЯ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрд╝реВрдХреАрдкрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рдлреНрдХрд╛ рдХреЗ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЕрднреА рднреА рдСрдлрд╝рд╕реЗрдЯ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рдЬрд╛рддреА рд╣реИ - рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреА рдУрд░ рд░реБрдЦ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╝реБрдХрд╛рдЗрдкрд░ рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рд╕рднреА рдЕрдкрд╛рдЪреЗ рдХрд╛рдлреНрдХрд╛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реЛрдЧрд╛ред