
рдкрд┐рдЫрд▓реЗ рджрд╕ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЖрдВрджреЛрд▓рди рдЖрдИрдЯреА рдЙрджреНрдпреЛрдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреА рднреВрдорд┐рдХрд╛ рдФрд░ рд╕реНрдерд╛рди рди рдХреЗрд╡рд▓ рдорд╛рддреНрд░рд╛рддреНрдордХ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрдврд╝рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдЖрдИрдЯреА рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЗрд╕рдХреА рдЧреБрдгрд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдмрджрд▓рд╛рд╡ рд╣реИред рдмрд┐рдирд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдмреИрдареЗ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рдмрд╣рд╛рджреБрд░ рдЯреАрдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрджреЛрдВ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ, рдХреЛрдб рдард┐рдХрд╛рдиреЛрдВ рдХреА рднрд╛рд░реА рдореЛрдЯрд╛рдИ рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рдХреАрдбрд╝реЗ рдЦреЛрдЬрдиреЗ рдФрд░ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддреА рд╣реИред рдпрд╣ рд▓реЗрдЦ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ! рдЖрдЬ рд╣рдо рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ! рдкреНрд░рд╛рдкреНрдд рд░рд┐рдкреЛрд░реНрдЯ - рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ!
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдЖрдИрдЯреА рдмрд╛рдЬрд╛рд░ рдореЗрдВ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реА, рд╕реА ++, рд╕реА #, рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмреА 2 рдмреА рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯреАрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░
рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдХреБрдВрдЬреА
рдХрд╛ рдЕрдиреБрд░реЛрдз
рдХрд░реЗрдВ ред
рдпрджрд┐ рдЖрдк рдПрдХ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд geek рд╣реИрдВ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЫрд╛рддреНрд░ рд╣реИрдВ, рддреЛ рдЖрдк рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЙрдЪреНрдЪ рдЧрддрд┐ рд╕реЗ рдмрдврд╝ рд░рд╣реА рд╣реИред рдорд╛рдирдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдм рдмрд┐рдЧ рдбреЗрдЯрд╛ рдХреЗ рдЙрджреНрднрд╡ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣рд░ рдЪреАрдЬ (рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рднрдВрдбрд╛рд░рдг рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдРрд╕реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА рджрд░ рдкрд░ рдкрд░рд┐рдЪрд╛рд▓рди рдХреЛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ,
Apache Hadoop рдХреЛ рдмрд┐рдЧ рдбреЗрдЯрд╛ рдХреА рдореВрд▓рднреВрдд рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдбреЗрдЯрд╛ рдХреЗ рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рднрдВрдбрд╛рд░рдг, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкреНрд░рдмрдВрдзрди рд╣реИрдВред рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдореБрдЦреНрдп рдШрдЯрдХ Hadoop Common,
HDFS ,
Hadoop MapReduce ,
Hadoop YARN рд╣реИрдВ ред рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╣реИрдбреЛрдк рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдирд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рд╢реБрд░реВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдП, рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рдЧрдПред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рд╣реИ ред
рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╣реИред рдпрд╣ HDFS рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL- рдЖрдзрд╛рд░рд┐рдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ (HiveQL) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдЪрдп рдХреЗ рд▓рд┐рдП, рдЖрдк
рдпрд╣рд╛рдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА
рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЪрд░рдгреЛрдВ рдХрд╛ рдХреНрд░рдо рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
- рдЧрд┐рдЯрд╣рдм рдХреЗ рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдорд┐рд▓рд╛;
- рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛;
- рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ, рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ред
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо: рдЙрдЪреНрдЪ рдФрд░ рдордзреНрдпрдо рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реНрддрд░ (рдХреНрд░рдорд╢рдГ 602 рдФрд░ 854) рдХреА 1456 рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ 6500+ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХреА рдЧрдИрдВред
рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рд╣реИ, рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддрдм рд╣рдо рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ (
рдЙрджрд╛рд╣рд░рдг ) рдХреЗ рдХрд╛рдлреА рдХрдо рдкреНрд░рддрд┐рд╢рдд рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмреАрдЪ, 407 рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ (177 рдЙрдЪреНрдЪ рдФрд░ 230 рдордзреНрдпрдо) рдкреНрд░рддрд┐ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо
V6022 рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ (рдХрд┐рд╕реА рдЕрдкрд░рд┐рдЪрд┐рдд рдХреЛрдб рдореЗрдВ рдЧрд▓рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 482 рдЪреЗрддрд╛рд╡рдиреА рдереАред 179 рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде
V6021 рдХреЛ рднреА рдирд╣реАрдВ рдорд╛рдирд╛ рдЧрдпрд╛ред
рдЕрдВрдд рдореЗрдВ, рд╕рднреА рд╕рдорд╛рди, рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдмрдиреЗ рд░рд╣реЗред рдФрд░ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛рдПрдВ рд╣реИрдВред рдХрд┐рд╕реА рд▓реЗрдЦ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ :)ред рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рдореЗрд░реА рдЖрдВрдЦ рдиреЗ рдХреНрдпрд╛ рдкрдХрдбрд╝рд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдерд┐рддрд┐
рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо
V6007 рд╕рднреА рд╢реЗрд╖ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд░рд┐рдХреЙрд░реНрдб рдзрд╛рд░рдХ рд╣реИред рдмрд╕ 200 рд╕реЗ рдЕрдзрд┐рдХ рдЪреЗрддрд╛рд╡рдиреА !!! рдХреБрдЫ, рдЬреИрд╕реЗ, рд╣рд╛рдирд┐рд░рд╣рд┐рдд, рдХреБрдЫ рд╕рдВрджрд┐рдЧреНрдз рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВ! рдЖрдЗрдП рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'key.startsWith ("hplsqlред")' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред Exec.java (675)
void initOptions() { .... if (key == null || value == null || !key.startsWith("hplsql.")) {
рдПрдХ рдХрд╛рдлреА рд▓рдВрдмрд╛ рдЕрдЧрд░ рдФрд░-рдЕрдЧрд░ рдирд┐рд░реНрдорд╛рдг! рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдВрддрд┐рдо рдкрд░ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ
рдпрджрд┐ (key.startsWith ("hplsqlред")) , рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдЦрдВрдб рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╕рдВрдХреЗрддред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк if-else-if рдирд┐рд░реНрдорд╛рдг рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЪреЗрдХ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдФрд░ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реА рд▓рд╛рдЗрди
"hplsql" рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ
рд╣реБрдИред , рдлрд┐рд░ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рддреБрд░рдВрдд рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдХреВрдж рдЧрдпрд╛ред
V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'columnNameProperty.length () == 0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред OrcRecordUpdater.java (238)
private static TypeDescription getTypeDescriptionFromTableProperties(....) { .... if (tableProperties != null) { final String columnNameProperty = ....; final String columnTypeProperty = ....; if ( !Strings.isNullOrEmpty(columnNameProperty) && !Strings.isNullOrEmpty(columnTypeProperty)) { List<String> columnNames = columnNameProperty.length() == 0 ? new ArrayList<String>() : ....; List<TypeInfo> columnTypes = columnTypeProperty.length() == 0 ? new ArrayList<TypeInfo>() : ....; .... } } } .... }
рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде
рдХреЙрд▓рдордирд╛рдордкреНрд░реЛрдкрд░реЗрдЯреА рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдВрдмрд╛рдИ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛
рдЧрд▓рдд рд╣реЛрдЧрд╛ ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рддреБрд▓рдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рд╣реИ
! Strings.isNullOrEmpty (columnNameProperty) ред рдпрджрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╢реНрди рдореЗрдВ рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИ, рддреЛ
рдХреЙрд▓рдордирд╛рдордкреНрд░реЙрдкрд░реНрдЯреА рд▓рд╛рдЗрди рдЧреИрд░-рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ рдФрд░ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИред
рдпрд╣
рдХреЙрд▓рдо рдЯрд╛рдЗрдкрдкреНрд░реЙрдкрд░реНрдЯреА рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рдЪреЗрддрд╛рд╡рдиреА рдкрдВрдХреНрддрд┐:
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'columnTypeProperty.length () == 0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред OrcRecordUpdater.java (239)
V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'colOrScalar1.equals ("рдХреЙрд▓рдо")' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред GenVectorCode.java (3469)
private void generateDateTimeArithmeticIntervalYearMonth(String[] tdesc) throws Exception { .... String colOrScalar1 = tdesc[4]; .... String colOrScalar2 = tdesc[6]; .... if (colOrScalar1.equals("Col") && colOrScalar1.equals("Column"))
}
рдпрд╣рд╛рдБ рдПрдХ рддреБрдЪреНрдЫ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐
colOrScalar1 рд▓рд╛рдЗрди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЪрд░
colOrScalar1 рдХреЛ рдмрд╛рдИрдВ рдУрд░, рдФрд░ рджрд╛рдИрдВ рдУрд░
colOrScalar2 рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдиреАрдЪреЗ рджреА рдЧрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ:
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'colOrScalar1.equals ("рд╕реНрдХреЗрд▓рд░") рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред GenVectorCode.java (3475)
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'colOrScalar1.equals ("рдХреЙрд▓рдо")' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред GenVectorCode.java (3486)
рдирддреАрдЬрддрди, рдЕрдЧрд░-рдФрд░-рдЕрдЧрд░ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреАред
V6007 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдиреА:
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рд╡рд░реНрдг == рдЕрд╢рдХреНрдд' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред RandomTypeUtil.java (43)
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'writeIdHwm> 0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред TxnHandler.java (1603)
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝реАрд▓реНрдбред рдЕрд╕реЗрдВрдмрд▓ ("*")' рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрддреА рд╣реИред Server.java (983)
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'currentGroups! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реИред GenericUDFCurrentGroups.java (90)
- V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'this.wh == null' рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред рдирдпрд╛ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ-рд╢реВрдиреНрдп рд╕рдВрджрд░реНрднред рд╕реНрдЯреЛрд░реЗрдЬрдмреЗрдбрдЕрдереЛрд░рд╛рдЗрдЬреЗрд╢рдирдкреНрд░реЛрд╡рд╛рдЗрдбрд░.рдЬрд╛рд╡ (93), рд╕реНрдЯреЛрд░реЗрдЬрдмреЗрдбрдЕрдереЛрд░реАрдХрд░рдгрдкреНрд░реЛрд╡рд╛рдЗрдбрд░.рдЬреЙрд╡ (92)
- рдФрд░ рдЗрд╕реА рддрд░рд╣ ...
рдПрдирдкреАрдИ
V6008 'рдбрдЧрд▓реЙрдХ' рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ред QueryTracker.java (557), QueryTracker.java (553)
private void handleFragmentCompleteExternalQuery(QueryInfo queryInfo) { if (queryInfo.isExternalQuery()) { ReadWriteLock dagLock = getDagLock(queryInfo.getQueryIdentifier()); if (dagLock == null) { LOG.warn("Ignoring fragment completion for unknown query: {}", queryInfo.getQueryIdentifier()); } boolean locked = dagLock.writeLock().tryLock(); ..... } }
рд╢реВрдиреНрдп рд╡рд╕реНрддреБ рдХреЛ рдкрдХрдбрд╝рд╛, рдкреНрд░рддрд┐рдЬреНрдЮрд╛ рдХреА рдФрд░ ... рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╢реВрдиреНрдп рд╡рд╕реНрддреБ рдХреА рдбреАрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ рд╣реЛрддреА рд╣реИред Pechalka!
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдПрдХ рд╢реВрдиреНрдп рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рддреБрд░рдВрдд рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред
V6008 рд╕рдорд╛рд░реЛрд╣ 'рдЕрдирд▓реЙрдХ' рдореЗрдВ 'рдмрдлрд░' рдХреЗ рдЕрд╢рд╛рдВрддрд┐ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП 'рдмрдлрд╝рд░'ред рдореЗрдЯрд╛рдбреЗрдЯрд╛рдЪреЗрдЬрд╛рд╡рд╛ (410), рдореЗрдЯрд╛рдбреЗрдЯрд╛рдЪреЗрдЬрд╛рд╡рд╛ (465)
private boolean lockBuffer(LlapBufferOrBuffers buffers, ....) { LlapAllocatorBuffer buffer = buffers.getSingleLlapBuffer(); if (buffer != null) {
рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдПрдирдкреАрдИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо
рдЕрдирд▓реЙрдХрд╕реНрд▓реЗрдмреЗрд▓рд░ рд╡рд┐рдзрд┐ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ
рдмрдлрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛ред рдЪрд▓рд┐рдП рдмрддрд╛рддреЗ рд╣реИрдВ рдХреНрдпрд╛ рд╣реБрдЖ! рдЖрдЗрдП
рдЕрдирд▓реЙрдХрд╕рд┐рдЧрд▓рдмрдлрд╝рд░ рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рддреБрд░рдВрдд рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЛ
рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо рд╣реИрдВ!
рд╢рд┐рдлреНрдЯ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛
V6034 рд╢рд┐рдлреНрдЯ рдХреЗ рдорд╛рди рд╕реЗ 'bitShiftsInWord - 1' рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 'bitShiftsInWord - 1' = [-1 ... 30]ред рдЕрдирд╕рд╛рдЗрдиреНрдЯрдЗрдВрдЯреЗрдВрдЯ реирежрежs.рдЬрд╛рд╡рд╛ (резigned реп рез)
private void shiftRightDestructive(int wordShifts, int bitShiftsInWord, boolean roundUp) { if (wordShifts == 0 && bitShiftsInWord == 0) { return; } assert (wordShifts >= 0); assert (bitShiftsInWord >= 0); assert (bitShiftsInWord < 32); if (wordShifts >= 4) { zeroClear(); return; } final int shiftRestore = 32 - bitShiftsInWord;
рд╕рдВрднрд╛рд╡рд┐рдд рдСрдлрд╕реЗрдЯ -1ред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╢рдмреНрджрд╢рдГ == 3 рдФрд░
рдмрд┐рдЯрд╢рд┐рдлреНрдЯрдЗрд╡реЙрд░реНрдб == 0 рдкреНрд░рд╢реНрди рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрдВрдХреНрддрд┐ рдореЗрдВ 1 << -1 рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ?
V6034 рд╢рд┐рдлреНрдЯ 'рдЬреЗ' рдХреЗ рдорд╛рди рд╕реЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 'рдЬреЗ' = [0 ... 63]ред IoTrace.java (272)
public void logSargResult(int stripeIx, boolean[] rgsToRead) { .... for (int i = 0, valOffset = 0; i < elements; ++i, valOffset += 64) { long val = 0; for (int j = 0; j < 64; ++j) { int ix = valOffset + j; if (rgsToRead.length == ix) break; if (!rgsToRead[ix]) continue; val = val | (1 << j);
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдЪрд░
j [0 ... 63] рд╢реНрд░реЗрдгреА рдореЗрдВ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рд▓реВрдк рдореЗрдВ
рд╡реИрд▓ рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
(1 << j) рдореЗрдВ, рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░
int рдХреА рд╣реИ , рдФрд░, рдЗрд╕реЗ 32 рдпрд╛ рдЕрдзрд┐рдХ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдиреБрдореЗрдп рдХреА рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
((рд▓рдВрдмрд╛) 1 << j) ред
рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣реА
V6046 рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдкред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдЖрдЗрдЯрдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИрдВред рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рддрд░реНрдХ: 1, 2. рдЖрдБрдХрдбрд╝реЗред рдЬрдЬрд╛рд╡ (89)
private static ImmutableList<PersistedRuntimeStats> extractStatsFromPlanMapper (....) { .... if (stat.size() > 1 || sig.size() > 1) { StringBuffer sb = new StringBuffer(); sb.append(String.format( "expected(stat-sig) 1-1, got {}-{} ;",
String.format () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╕рдордп
, рдбреЗрд╡рд▓рдкрд░ рдиреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ред рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐: рдЙрддреНрддреАрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рдгрд╛рдореА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореИрдВ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдп рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рд▓реЙрдЧрд┐рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рд╕реЗ рдЙрд╕рдиреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдерд╛ред
рдЕрдкрд╡рд╛рдж рдЪреБрд░рд╛ рд▓рд┐рдпрд╛
V6051 'рдЕрдВрдд' рдмреНрд▓реЙрдХ рдореЗрдВ 'рд░рд┐рдЯрд░реНрди' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ
рдЕрдирдЪрд╛рд╣реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред ObjectStore.java (9080)
private List<MPartitionColumnStatistics> getMPartitionColumnStatistics(....) throws NoSuchObjectException, MetaException { boolean committed = false; try { .... committed = commitTransaction(); return result; } catch (Exception ex) { LOG.error("Error retrieving statistics via jdo", ex); if (ex instanceof MetaException) { throw (MetaException) ex; } throw new MetaException(ex.getMessage()); } finally { if (!committed) { rollbackTransaction(); return Lists.newArrayList(); } } }
рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рд╕реЗ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╣рдо рдЗрд╕реЗ рджреЗрдЦреЗрдВрдЧреЗред
рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдореЗрдВ, рдЕрдиреБрд░реЛрдз рдмрдирддрд╛ рд╣реИ рдФрд░ рднрдВрдбрд╛рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИред
рдкреНрд░рддрд┐рдмрджреНрдз рд╡реИрд░рд┐рдПрдмрд▓
рдЭреВрдареЗ рдХреЗ рд▓рд┐рдП рдЪреВрдХ рдХрд░рддрд╛
рд╣реИ рдФрд░
рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЕрдкрдирд╛ рд░рд╛рдЬреНрдп рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЪрд░ рд╣рдореЗрд╢рд╛
рдЧрд▓рдд рд╣реЛрдЧрд╛ ред
рдХреИрдЪ рдмреНрд▓реЙрдХ рдиреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд╝рд╛, рдереЛрдбрд╝рд╛ рд╕рд╣реА рдХрд┐рдпрд╛ рдФрд░ рдЖрдЧреЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдФрд░ рдЬрдм
рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рд╕рдордп рдЖрддрд╛ рд╣реИ
, рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЦрд╛рд▓реА рд╕реВрдЪреА рдХреЛ рдмрд╛рд╣рд░ рдХреА рдУрд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд░рд┐рдЯрд░реНрди рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реЛрдЧрд╛? рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд╕рднреА рдкрдХрдбрд╝реЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдХрднреА рднреА рдмрд╛рд╣рд░ рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрди рд╕рднреА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЬреЛ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрднреА рднреА рдлреЗрдВрдХ рджрд┐рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдмрд╕ рдШрдмрд░рд╛рд╣рдЯ рд╣реЛрдЧреАред
рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА:
- V6051 'рдЕрдВрдд' рдмреНрд▓реЙрдХ рдореЗрдВ 'рд░рд┐рдЯрд░реНрди' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЕрдирдЪрд╛рд╣реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред ObjectStore.java (808)
... рдЕрдиреНрдп
V6009 рдлрд╝рдВрдХреНрд╢рди 'рддреБрд▓рдирд╛' рдХреЛ рдПрдХ рд╡рд┐рд╖рдо рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ 'o2.getWorkerIdentity ()' рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкрджреНрдзрддрд┐ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред LlapFixedRegistryImpl.java (244)
@Override public List<LlapServiceInstance> getAllInstancesOrdered(....) { .... Collections.sort(list, new Comparator<LlapServiceInstance>() { @Override public int compare(LlapServiceInstance o1, LlapServiceInstance o2) { return o2.getWorkerIdentity().compareTo(o2.getWorkerIdentity());
рдХреЙрдкреА-рдкреЗрд╕реНрдЯ, рд▓рд╛рдкрд░рд╡рд╛рд╣реА, рднреАрдбрд╝ рдФрд░ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХрд╛рдлреА рдЖрдо рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреВрд░рд╛
рд▓реЗрдЦ рднреА рд╣реИред
V6020 рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред 'рднрд╛рдЬрдХ' рднрд╛рдЬрдХ рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢реВрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИред SqlMathUtil.java (265)
public static long divideUnsignedLong(long dividend, long divisor) { if (divisor < 0L) { return (compareUnsignedLong(dividend, divisor)) < 0 ? 0L : 1L; } if (dividend >= 0) {
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред 0 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХрдИ рдЪреЗрдХреЛрдВ рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреАред
рдЕрдзрд┐рдХ рдЪреЗрддрд╛рд╡рдиреА:
- V6020 рдореЙрдб рд╢реВрдиреНрдп рд╕реЗред 'рднрд╛рдЬрдХ' рднрд╛рдЬрдХ рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢реВрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИред SqlMathUtil.java (309)
- V6020 рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред 'рднрд╛рдЬрдХ' рднрд╛рдЬрдХ рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢реВрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИред SqlMathUtil.java (276)
- V6020 рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред 'рднрд╛рдЬрдХ' рднрд╛рдЬрдХ рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢реВрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИред SqlMathUtil.java (312)
V6030 рдХреА рд╡рд┐рдзрд┐ 'рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд╣реИред' рдСрдкрд░реЗрдЯрд░ рдХреЛ рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдХреЗ рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╢рд╛рдпрдж, '' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред OperatorUtils.java (573)
public static Operator<? extends OperatorDesc> findSourceRS(....) { .... List<Operator<? extends OperatorDesc>> parents = ....; if (parents == null | parents.isEmpty()) {
рддрд╛рд░реНрдХрд┐рдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп || рдПрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░ рд▓рд┐рдЦрд╛ | рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╣реА рдкрдХреНрд╖ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдорд╛рддрд╛-рдкрд┐рддрд╛ == рдЕрд╢рдХреНрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдЯрд╛рдЗрдкреЛ, рдЕрдЧрд▓реЗ рддрд╛рд░реНрдХрд┐рдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рдореЗрдВ рддреБрд░рдВрдд NPE рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред
V6042 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'A' рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди 'B' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИред рд╡реЗрдХреНрдЯрд░рдХреЙрд▓реНрдпреВрдордирдПрд╕рд┐рдЧреНрдирд┐рдлреИрдХреНрдЯрд░реА.рдЬрд╛рд╡рд╛ (347)
public static VectorColumnAssign buildObjectAssign(VectorizedRowBatch outputBatch, int outColIndex, PrimitiveCategory category) throws HiveException { VectorColumnAssign outVCA = null; ColumnVector destCol = outputBatch.cols[outColIndex]; if (destCol == null) { .... } else if (destCol instanceof LongColumnVector) { switch(category) { .... case LONG: outVCA = new VectorLongColumnAssign() { .... } .init(.... , (LongColumnVector) destCol); break; case TIMESTAMP: outVCA = new VectorTimestampColumnAssign() { .... }.init(...., (TimestampColumnVector) destCol);
рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╡рд░реНрдЧ
LongColumnVector ColumnVector рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░
TimestampColumnVector рдХреЛ ColumnVector рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ред
LongColumnVector рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА
рдбреЗрд╕реНрдЯрдХреЙрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдо
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдкрдХреЙрд▓реНрдпреВрдорд┐рдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ! рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рди рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдЧрд┐рдирддреАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк -
ClassCastException ред
рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- V6042 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'A' рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди 'B' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИред рд╡реЗрдХреНрдЯрд░рдХреЙрд▓реНрдпреВрдордирдПрд╕рд┐рдЧреНрдиреЗрдЯрдлреИрдХреНрдЯрд┐рдВрдЧ.рдЬрд╡рд╛ (390)
V6060 рд╢реВрдиреНрдп рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'var' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд░.рдЬрд╛рд╡рд╛ (402), рд╡рд░.рдЬрд╛рд╡рд╛ (395)
@Override public boolean equals(Object obj) { if (getClass() != obj.getClass()) {
рдбреЗрд░реАрдлреЗрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж
рдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ
var рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдЕрдЬреАрдм рддреБрд▓рдирд╛ рд╣реБрдИ рд╣реИред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ,
var рдФрд░
obj рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ (
var = (Var) obj ) рд╣реИрдВред
рдЕрд╢рдХреНрдд рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рд╕реЗ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдПрдХ рдЕрд╢рдХреНрдд рд╡рд╕реНрддреБ рдЖ рд╕рдХрддреА рд╣реИред рдФрд░
рдмрд░рд╛рдмрд░реА (рдЕрд╢рдХреНрдд) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
, рд╣рдо рдЙрдореНрдореАрдж рдХреА
рдЭреВрдареА рдХреЗ рдмрдЬрд╛рдп рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ NPE рдкрд░ рддреБрд░рдВрдд рдкреНрд░рд╛рдкреНрдд
рдХрд░рддреЗ рд╣реИрдВ ред рдХрд╛рд╢, рдПрдХ рдЬрд╛рдБрдЪ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдирд╣реАрдВред
рдЪреЗрдХ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рди рд╕рдВрджрд┐рдЧреНрдз рдХреНрд╖рдг:
- V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдорд╛рди' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ParquetRecordReaderWrapper.java (168), ParquetRecordReaderWrapper.java (166)
- V6060 'defaultConstraintCols' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реВрдиреНрдп рд╕реЗ рдкрд╣рд▓реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред HiveMetaStore.java (2539), HiveMetaStore.java (2530)
- V6060 'projIndxLst' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдЕрд╢рдХреНрдд рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред RelOptHiveTable.java (683), RelOptHiveTable.java (682)
- V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдкреБрд░рд╛рдиреЗ' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ObjectStore.java (4343), ObjectStore.java (4339)
- рдФрд░ рдЗрд╕реА рддрд░рд╣ ...
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреЛ рднреА рдмрд┐рдЧ рдбреЗрдЯрд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддреЗ рдереЗ, рд╡реЗ рд╢рд╛рдпрдж рд╣реА рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рдереЗред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ 6500 рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╛рдЗрд▓реЗрдВ (* .java) рд╣реИрдВред рдХреЛрдб рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдордзреНрдпрдо рдФрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмреЗрд╣рдж рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИ!
рдиреЛрдЯред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдмрд╛рд░ рдХреЗ рдЪреЗрдХ рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ
рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╣реИ ред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!
рд╣рд╛рдЗрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рджреЛрд╖ рдФрд░ рд╕рдВрджрд┐рдЧреНрдз рдХреНрд╖рдгреЛрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ред рдпрджрд┐ рдпрд╣ рд▓реЗрдЦ рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реЛрдВрдЧреЗред
Apache Hadoop рдХреЗ рдмрд┐рдирд╛ Apache Hive рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ PVS-Studio рдХрд╛ рдЧреЗрдВрдбрд╛ рднреА рд╡рд╣реАрдВ рджрд┐рдЦреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдХреЗ
рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдореИрдХреНрд╕рд┐рдо рд╕реНрдЯреЗрдлрд╛рдиреЛрд╡ред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛ ред