рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рдпрд╣ рдХреЛрдИ рдордЬрд╝рд╛рдХ рднреА рдирд╣реАрдВ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдЪрд┐рддреНрд░ рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВ:

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рдбреАрдмреА-рдЗрдВрдЬрди рд░реИрдВрдХрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рджреЛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп NoSQL рд╕реНрддрдВрдн рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗрдВрдбреНрд░рд╛ (рдЗрд╕рдХреЗ рдмрд╛рдж CS) рдФрд░ HBase (HB) рд╣реИрдВред

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рднрд╛рдЧреНрдп рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ, Sberbank рдореЗрдВ рд╣рдорд╛рд░реА рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдЯреАрдо рдкрд╣рд▓реЗ рд╣реА рдХрд░ рдЪреБрдХреА рд╣реИ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдФрд░ рдПрдЪрдмреА рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рджреМрд░рд╛рди рд╣рдордиреЗ рдЗрд╕рдХреА рдЦреВрдмрд┐рдпреЛрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдЕрдЪреНрдЫреЗ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдкрдХрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реАрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдиреЗ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдЦреБрдж рдХреЛ рд╕рдВрджреЗрд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛: рдХреНрдпрд╛ рд╣рдордиреЗ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдгрд╛рдо рддреБрд▓рдирд╛рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕реАрдПрд╕ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдЪрдмреА рдХреЛ рд▓рдЧрднрдЧ рдХреБрдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдХреЛрд░ рд╕реЗ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рдПрдХ рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдмрд╛рдд рдирд╣реАрдВ рдорд╛рдирдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рднреА рднреНрд░рдорд┐рдд рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдмрд┐рдЧрдбреЗрдЯрд╛ NoSql рдХрд╛ рд░рд╛рдЬрд╛ рдХреМрди рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рдХрд▓реЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрд╕реЗ рдореЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЗред рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рд╕рд░реНрд╡рд░ (рдиреЛрдб) рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдореВрд▓реНрдп рдЦреЛ рдЬрд╛рдПрдЧрд╛ред рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдВрдХрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рдпрдо рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд╡рд╛рдж рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЯреНрд░рд┐рдкрд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рд╕реАрдПрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЕрд░реНрдерд╛рддред рдХреЗрд╕рд╕реНрдкреЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};

рдЗрд╕рдХреЗ рдмрд╛рдж, рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрд░ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо:
рдПрдирдбрдмреНрд▓реНрдпреВ + рдПрдирдЖрд░ > рдЖрд░рдПрдл

рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓рд┐рдЦрддреЗ рд╕рдордп рдиреЛрдбреНрд╕ рд╕реЗ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ (рдПрдирдбрдмреНрд▓реНрдпреВ) рдФрд░ рдкрдврд╝рддреЗ рд╕рдордп рдиреЛрдбреНрд╕ рд╕реЗ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ (рдПрдирдЖрд░) рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд░рдПрдл = 3, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ:
2 + 2> 3
3 + 1> 3

рдЪреВрдБрдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП 3+1 рдпреЛрдЬрдирд╛ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдЪрдмреА рдПрдХ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреАред рдРрд╕реА рддреБрд▓рдирд╛ рдЕрдзрд┐рдХ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдЧреА.

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

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рдпрд╣рд╛рдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрддреЗ рд╣реИрдВ: рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдереНрд░реЗрдб рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ RF=3 рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛рдлреА рдЕрдзрд┐рдХ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рд╣рдо 4 рдереНрд░реЗрдбреНрд╕ рдХреЛ 5 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдХреБрд▓ 20), рддреЛ рдЖрд░рдПрдл=3 рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЖрд░рдПрдл=150 рдХреЗ рд▓рд┐рдП 3 рд╕реЗрдХрдВрдб рдмрдирд╛рдо рдЖрд░рдПрдл=75 рдХреЗ рд▓рд┐рдП 1 рд╕реЗрдХрдВрдб)ред рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ 8 рдереНрд░реЗрдб (рдХреБрд▓ 5) рдХреЗ рд╕рд╛рде 40 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдХреЗ рд▓реЛрдб рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрд░рдПрдл = 3 рдХрд╛ рдиреБрдХрд╕рд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2,7 рдЧреБрдирд╛ (375 рд╕реЗрдХрдВрдб рдмрдирд╛рдо 138) рд╣реИред

рд╢рд╛рдпрдж рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рдлрд▓ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд░рд╣рд╕реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдЪрдмреА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕реНрдЯреИрдВрдб рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ рдХреЛ 2 рд╕реЗ 3 рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛ред рд╡реЗред рдбрд┐рд╕реНрдХ рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП HB рдмрд╛рдзрд╛ рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣рд╛рдБ рдХрдИ рдЕрдиреНрдп рдХрдорд┐рдпрд╛рдБ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдЪрдмреА рдХреЗ рд╣рдорд╛рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдереЛрдбрд╝рд╛ рдкреИрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╛рддрд╛рд╡рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ, рдЖрджрд┐ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╕реАрдПрд╕ рдХреА рддреИрдпрд╛рд░реА рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдФрд░ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪреАрдЬрд╝реЗрдВ.

рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдХрд┐рдП рдЧрдП рдЬрд┐рд╕рдореЗрдВ 4 рд╕рд░реНрд╡рд░ рд╢рд╛рдорд┐рд▓ рдереЗ, рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдореНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде:

рд╕реАрдкреАрдпреВ: Xeon E5-2680 v4 @ 2.40GHz 64 рдереНрд░реЗрдбред
рдбрд┐рд╕реНрдХ: 12 рдЯреБрдХрдбрд╝реЗ SATA HDD
рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг: 1.8.0_111

рд╕реАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг: 3.11.5

рдХреИрд╕реЗрдВрдбреНрд░рд╛.yml рдкреИрд░рд╛рдореАрдЯрд░рд╕рдВрдЦреНрдпрд╛_рдЯреЛрдХрди: 256
рд╕рдВрдХреЗрддрд┐рдд_рд╣реИрдВрдбрдСрдлрд╝_рд╕рдХреНрд╖рдо: рд╕рддреНрдп
рд╕рдВрдХреЗрдд_рд╣реИрдВрдбрдСрдлрд╝_рдереНрд░реЛрдЯрд▓_рдЗрди_рдХреЗрдмреА: 1024
max_hints_delivery_threads: 2
рд╕рдВрдХреЗрдд_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛: /рдбреЗрдЯрд╛10/рдХреИрд╕рдВрдбреНрд░рд╛/рд╕рдВрдХреЗрдд
рд╕рдВрдХреЗрдд_рдлреНрд▓рд╢_рдкреАрд░рд┐рдпрдб_рдЗрди_рдПрдордПрд╕: 10000
max_hints_file_size_in_mb: 128
рдмреИрдЪрд▓реЙрдЧ_рд░рд┐рдкреНрд▓реЗ_рдереНрд░реЛрдЯрд▓_рдЗрди_рдХреЗрдмреА: 1024
рдкреНрд░рдорд╛рдгрдХ:AllowAllAuthenticator
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░рдХрд░реНрддрд╛:AllowAllAuthorizer
рднреВрдорд┐рдХрд╛_рдкреНрд░рдмрдВрдзрдХ: рдХреИрд╕реЗрдВрдбреНрд░рд╛рднреВрдорд┐рдХрд╛ рдкреНрд░рдмрдВрдзрдХ
Roles_validity_in_ms: 2000
рдЕрдиреБрдорддрд┐рдпрд╛рдБ_рд╡реИрдзрддрд╛_in_ms: 2000
рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕_рд╡реИрд▓рд┐рдбрд┐рдЯреА_рдЗрди_рдПрдордПрд╕: 2000
рд╡рд┐рднрд╛рдЬрдирдХрд░реНрддрд╛: org.apache.cassandra.dht.Murmur3Partitioner
рдбреЗрдЯрд╛_рдлрд╝рд╛рдЗрд▓_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ:
- /data1/cassandra/data # рдкреНрд░рддреНрдпреЗрдХ dataN рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдбрд┐рд╕реНрдХ рд╣реИ
- /рдбреЗрдЯрд╛2/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛3/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛4/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛5/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛6/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛7/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
- /рдбреЗрдЯрд╛8/рдХреИрд╕рдВрдбреНрд░рд╛/рдбреЗрдЯрд╛
рдХрдорд┐рдЯрд▓реЙрдЧ_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛: /рдбреЗрдЯрд╛9/рдХреИрд╕рдВрдбреНрд░рд╛/рдХрдорд┐рдЯрд▓реЙрдЧ
рд╕реАрдбреАрд╕реА_рд╕рдХреНрд╖рдо: рдЧрд▓рдд
рдбрд┐рд╕реНрдХ_рд╡рд┐рдлрд▓рддрд╛_рдиреАрддрд┐: рд░реБрдХреЗрдВ
рдкреНрд░рддрд┐рдмрджреНрдз_рд╡рд┐рдлрд▓рддрд╛_рдиреАрддрд┐: рд░реБрдХреЗрдВ
рддреИрдпрд╛рд░_рдХрдерди_рдХреИрд╢_рдЖрдХрд╛рд░_рдПрдордмреА:
рдмрдЪрдд_рддреИрдпрд╛рд░_рдХрдерди_рдХреИрд╢_рдЖрдХрд╛рд░_рдПрдордмреА:
key_cache_size_in_mb:
key_cache_save_period: 14400
row_cache_size_in_mb: 0
row_cache_save_period: 0
рдХрд╛рдЙрдВрдЯрд░_рдХреИрд╢_рдЖрдХрд╛рд░_рдореЗрдВ_рдПрдордмреА:
рдХрд╛рдЙрдВрдЯрд░_рдХреИрд╢_рд╕реЗрд╡_рдкреАрд░рд┐рдпрдб: 7200
save_caches_directory: /data10/cassandra/saven_caches
рдХрдорд┐рдЯрд▓реЙрдЧ_рд╕рд┐рдВрдХ: рдЖрд╡рдзрд┐рдХ
рдХрдорд┐рдЯрд▓реЙрдЧ_рд╕рд┐рдВрдХ_рдкреАрд░рд┐рдпрдб_рдЗрди_рдПрдордПрд╕: 10000
рдХрдорд┐рдЯрд▓реЙрдЧ_рд╕реЗрдЧрдореЗрдВрдЯ_рд╕рд╛рдЗрдЬ_рдЗрди_рдПрдордмреА: 32
рдмреАрдЬ_рдкреНрд░рджрд╛рддрд╛:
- рдХреНрд▓рд╛рд╕_рдирд╛рдо: org.apache.cassandra.locator.SimpleSeedProvider
рдкреИрд░рд╛рдореАрдЯрд░:
- рдмреАрдЬ: "*,*"
concurrent_reads: 256 # рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ 64 - рдХреЛрдИ рдЕрдВрддрд░ рдирдЬрд░ рдирд╣реАрдВ рдЖрдпрд╛
concurrent_writes: 256 # рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ 64 - рдХреЛрдИ рдЕрдВрддрд░ рдирдЬрд░ рдирд╣реАрдВ рдЖрдпрд╛
concurrent_counter_writes: 256 # рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ 64 - рдХреЛрдИ рдЕрдВрддрд░ рдирдЬрд░ рдирд╣реАрдВ рдЖрдпрд╛
рд╕рдорд╡рд░реНрддреА_рднреМрддрд┐рдХ_рджреГрд╢реНрдп_рд▓реЗрдЦрди: 32
memtable_heap_space_in_mb: 2048 # 16 рдЬреАрдмреА рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ - рдпрд╣ рдзреАрдорд╛ рдерд╛
рдореЗрдордЯреЗрдмрд▓_рдЖрд╡рдВрдЯрди_рдкреНрд░рдХрд╛рд░: рдвреЗрд░_рдмрдлрд╝рд░реНрд╕
рд╕реВрдЪрдХрд╛рдВрдХ_рд╕рд╛рд░рд╛рдВрд╢_рдХреНрд╖рдорддрд╛_in_mb:
Index_summary_resize_interval_in_рдорд┐рдирдЯ: 60
рдЯреНрд░рд┐рдХрд▓_fsync: рдЧрд▓рдд
рдЯреНрд░рд┐рдХрд▓_fsync_interval_in_kb: 10240
рд╕реНрдЯреЛрд░реЗрдЬ_рдкреЛрд░реНрдЯ: 7000
рдПрд╕рдПрд╕рдПрд▓_рд╕реНрдЯреЛрд░реЗрдЬ_рдкреЛрд░реНрдЯ: 7001
рд╕реБрдиреЛ_рдкрддрд╛: *
рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рдкрддрд╛: *
рдкреНрд░рд╕рд╛рд░рдг_рдкрддреЗ рдкрд░ рд╕реБрдиреЗрдВ: рд╕рддреНрдп
рдЗрдВрдЯрд░рдиреЛрдб_рдкреНрд░рдорд╛рдгрдХ: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
рдкреНрд░рд╛рд░рдВрдн_рдиреЗрдЯрд┐рд╡_рдкрд░рд┐рд╡рд╣рди: рд╕рддреНрдп
рджреЗрд╢реА_рдкрд░рд┐рд╡рд╣рди_рдкреЛрд░реНрдЯ: 9042
рдкреНрд░рд╛рд░рдВрдн_рдЖрд░рдкреАрд╕реА: рд╕рддреНрдп
рдЖрд░рдкреАрд╕реА_рдкрддрд╛: *
рдЖрд░рдкреАрд╕реА_рдкреЛрд░реНрдЯ: 9160
rpc_keepalive: рд╕рддреНрдп
rpc_server_type: рд╕рд┐рдВрдХ
рдереНрд░рд┐рдлреНрдЯ_рдлрд╝реНрд░реЗрдореНрдб_рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ_рд╕рд╛рдЗрдЬрд╝_рдЗрди_рдПрдордмреА: 15
рд╡реГрджреНрдзрд┐рд╢реАрд▓_рдмреИрдХрдЕрдк: рдЧрд▓рдд
рд╕реНрдиреИрдкрд╢реЙрдЯ_рдкрд╣рд▓реЗ_рдХреЙрдореНрдкреЗрдХреНрд╢рди: рдЧрд▓рдд
рдСрдЯреЛ_рд╕реНрдиреИрдкрд╢реЙрдЯ: рд╕рддреНрдп
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
рд╕рдорд╡рд░реНрддреА_рдХреЙрдореНрдкреИрдХреНрдЯрд░: 4
рдХреЙрдореНрдкреИрдХреНрд╢рди_рдереНрд░реВрдкреБрдЯ_рдПрдордмреА_рдкреНрд░рддрд┐_рд╕реЗрдХрдВрдб: 1600
sstable_preemptive_open_interval_in_mb: 50
read_request_timeout_in_ms: 100000
рд░реЗрдВрдЬ_рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ_рдЗрди_рдПрдордПрд╕: 200000
рд░рд╛рдЗрдЯ_рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ_рдЗрди_рдПрдордПрд╕: 40000
рдХрд╛рдЙрдВрдЯрд░_рд░рд╛рдЗрдЯ_рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ_рдЗрди_рдПрдордПрд╕: 100000
cas_contention_timeout_in_ms: 20000
рдЯреНрд░рдВрдХреЗрдЯ_рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ_рдЗрди_рдПрдордПрд╕: 60000
request_timeout_in_ms: 200000
Slow_query_log_timeout_in_ms: 500
рдХреНрд░реЙрд╕_рдиреЛрдб_рдЯрд╛рдЗрдордЖрдЙрдЯ: рдЧрд▓рдд
рдПрдВрдбрдкреЙрдЗрдВрдЯ_рд╕реНрдирд┐рдЪ: рдЧреЙрд╕рд┐рдкрд┐рдВрдЧрдкреНрд░реЙрдкрд░реНрдЯреАрдлрд╛рдЗрд▓рд╕реНрдирд┐рдЪ
рдбрд╛рдпрдирд╛рдорд┐рдХ_рд╕реНрдирд┐рдЪ_рдЕрдкрдбреЗрдЯ_рдЗрдВрдЯрд░рд╡рд▓_рдЗрди_рдПрдордПрд╕: 100
рдбрд╛рдпрдирд╛рдорд┐рдХ_рд╕реНрдирд┐рдЪ_рд░реАрд╕реЗрдЯ_рдЗрдВрдЯрд░рд╡рд▓_рдЗрди_рдПрдордПрд╕: 600000
рдбрд╛рдпрдирд╛рдорд┐рдХ_рд╕реНрдирд┐рдЪ_рдмреИрдбрдиреЗрд╕_рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб: 0.1
request_scheduler: org.apache.cassandra.scheduler.NoScheduler
рд╕рд░реНрд╡рд░_рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди_рд╡рд┐рдХрд▓реНрдк:
рдЗрдВрдЯрд░рдиреЛрдб_рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди: рдХреЛрдИ рдирд╣реАрдВ
рдХреНрд▓рд╛рдЗрдВрдЯ_рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди_рд╡рд┐рдХрд▓реНрдк:
рд╕рдХреНрд╖рдо: рдЧрд▓рдд
рдЗрдВрдЯрд░рдиреЛрдб_рд╕рдВрдкреАрдбрд╝рди: рдбреАрд╕реА
рдЗрдВрдЯрд░_dc_tcp_nodelay: рдЧрд╝рд▓рдд
рдЯреНрд░реЗрд╕рдЯрд╛рдЗрдк_рдХреНрд╡реЗрд░реА_рдЯреАрдЯреАрдПрд▓: 86400
рдЯреНрд░реЗрд╕рдЯрд╛рдЗрдк_рд░рд┐рдкреЗрдпрд░_рдЯреАрдЯреАрдПрд▓: 604800
Enable_user_Defined_functions: рдЧрд▓рдд
Enable_scripted_user_Defined_functions: рдЧрд▓рдд
рд╡рд┐рдВрдбреЛрдЬрд╝_рдЯрд╛рдЗрдорд░_рдЗрдВрдЯрд░рд╡рд▓: 1
рдкрд╛рд░рджрд░реНрд╢реА_рдбреЗрдЯрд╛_рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди_рд╡рд┐рдХрд▓реНрдк:
рд╕рдХреНрд╖рдо: рдЧрд▓рдд
рдЯреЙрдореНрдмрд╕реНрдЯреЛрди_рд╡рд╛рд░реНрди_рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб: 1000
рдЯреЙрдореНрдмрд╕реНрдЯреЛрди_рд╡рд┐рдлрд▓рддрд╛_рд╕реАрдорд╛: 100000
рдмреИрдЪ_рдЖрдХрд╛рд░_рдЪреЗрддрд╛рд╡рдиреА_рд╕реАрдорд╛_рдореЗрдВ_рдХреЗрдмреА: 200
рдмреИрдЪ_рд╕рд╛рдЗрдЬ_рдлреЗрд▓_рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб_рдЗрди_рдХреЗрдмреА: 250
рдЕрдирд▓реЙрдЧреНрдб_рдмреИрдЪ_рдХреНрд░реЙрд╕_рдкрд╛рд░реНрдЯреАрд╢рди_рд╡рд╛рд░реНрди_рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб: 10
рд╕рдВрдШрдирди_рдмрдбрд╝рд╛_рд╡рд┐рднрд╛рдЬрди_рдЪреЗрддрд╛рд╡рдиреА_рд╕реАрдорд╛_рдПрдордмреА: 100
gc_warn_threshold_in_ms: 1000
рдмреИрдХ_рдкреНрд░реЗрд╢рд░_рд╕рдХреНрд╖рдо: рдЧрд▓рдд
Enable_materialized_views: рд╕рддреНрдп
Enable_sasi_indexes: рд╕рддреНрдп

рдЬреАрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕:

### рд╕реАрдПрдордПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:рдЙрддреНрддрд░рдЬреАрд╡реА рдЕрдиреБрдкрд╛рдд=8
-XX:рдореИрдХреНрд╕рдЯреЗрдиреНрдпреЛрд░рд┐рдВрдЧрдереНрд░реЗрд╕рд╣реЛрд▓реНрдб=1
-XX:CMSInitiatingOccupancyFraction=75
-XX:+рдХреЗрд╡рд▓CMSInitiatingOccupancy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
-XX:CMSWaitDuration=10000
-XX:+CMSPallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordAlways
-XX:+CMSClassUnloadingEnabled

Jvm.options рдореЗрдореЛрд░реА рдХреЛ 16 рдЬреАрдмреА рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╣рдордиреЗ 32 рдЬреАрдмреА рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛)ред

рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИрдВ:

CREATE TABLE ks.t1 (id bigint PRIMARY KEY, title text) WITH compression = {'sstable_compression': 'LZ4Compressor', 'chunk_length_kb': 64};

рдПрдЪрдмреА рд╕рдВрд╕реНрдХрд░рдг: 1.2.0-рд╕реАрдбреАрдПрдЪ5.14.2 (рдХрдХреНрд╖рд╛ org.apache.hadoop.hbase.regionserver.HRegion рдореЗрдВ рд╣рдордиреЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕рд░реАрдЬрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдкрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 1000 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рдЬреАрд╕реА рд╣реБрдЖ)

рдЧреИрд░-рдбрд┐рдлрд╝реЙрд▓реНрдЯ HBase рдкреИрд░рд╛рдореАрдЯрд░Zookeeper.session.timeout: 120000
hbase.rpc.timeout: 2 рдорд┐рдирдЯ
hbase.client.scanner.timeout.period: 2 рдорд┐рдирдЯ
hbase.master.handler.count: 10
hbase.regionserver.lease.period, hbase.client.scanner.timeout.period: 2 рдорд┐рдирдЯ
hbase.regionserver.handler.count: 160
hbase.regionserver.metahandler.count: 30
hbase.regionserver.logroll.period: 4 рдШрдВрдЯреЗ
hbase.regionserver.maxlogs: 200
hbase.hregion.memstore.flush.size: 1 GiB
hbase.hregion.memstore.block.multiplier: 6
hbase.hstore.compactionThreshold: 5
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majarрд╕рдВрдХреНрд╖рд░рдг: 1 рджрд┐рди
hbase-site.xml рдХреЗ рд▓рд┐рдП HBase рд╕реЗрд╡рд╛ рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдирд┐рдкреЗрдЯ (рд╕реБрд░рдХреНрд╖рд╛ рд╡рд╛рд▓реНрд╡):
hbase.regionserver.wal.codecorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
hbase.master.namespace.init.timeout3600000
hbase.regionserver. optioncacheflushinterval18000000
hbase.regionserver.thread.compaction.large12
hbase.regionserver.wal.enablecompressiontrue
hbase.hstore.compaction.max.size1073741824
hbase.server.compactchecker.interval.multiplier200
HBase рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк:
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis: 2 рдорд┐рдирдЯ
hbase.snapshot.region.timeout: 2 рдорд┐рдирдЯ
hbase.snapshot.master.timeout.millis: 2 рдорд┐рдирдЯ
HBase REST рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
HBase REST рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдмреИрдХрдЕрдк: 5
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдмреИрдХрдЕрдк: 5
рдорд╛рд╕реНрдЯрд░ рдореИрдХреНрд╕ рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 рдПрдордЖрдИрдмреА
рдорд╛рд╕реНрдЯрд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдмреИрдХрдЕрдк: 5
рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 рдПрдордЖрдИрдмреА
рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХрддрдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдмреИрдХрдЕрдк: 5
HBase рд╕рдХреНрд░рд┐рдп рдорд╛рд╕реНрдЯрд░ рдбрд┐рдЯреЗрдХреНрд╢рди рд╡рд┐рдВрдбреЛ: 4 рдорд┐рдирдЯ
dfs.client.hedged.read.threadpool.size: 40
dfs.client.hedged.read.threshold.millis: 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб
hbase.rest.threads.min: 8
hbase.rest.threads.max: 150
рдЕрдзрд┐рдХрддрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░: 180000
hbase.thrift.minWorkerThreads: 200
hbase.master.executor.openregion.threads: 30
hbase.master.executor.closeregion.threads: 30
hbase.master.executor.serverops.threads: 60
hbase.regionserver.thread.compaction.small: 6
hbase.ipc.server.read.threadpool.size: 20
рд░реАрдЬрди рдореВрд╡рд░ рдереНрд░реЗрдбреНрд╕: 6
рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрд╛рд╡рд╛ рд╣реАрдк рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ: 1 GiB
HBase REST рд╕рд░реНрд╡рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдореВрд╣: 3 GiB
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдореВрд╣: 3 GiB
рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ HBase рдорд╛рд╕реНрдЯрд░ рдХрд╛ рдЬрд╛рд╡рд╛ рд╣реАрдк рдЖрдХрд╛рд░: 16 GiB
рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ HBase рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдХрд╛ рдЬрд╛рд╡рд╛ рд╣реАрдк рдЖрдХрд╛рд░: 32 GiB

+рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдкрд╛рд▓рдХ
maxClientCnxns: 601
рдЕрдзрд┐рдХрддрдо рд╕рддреНрд░ рд╕рдордп рд╕рдорд╛рдкреНрдд: 120000
рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдмрдирд╛рдирд╛:
hbase org.apache.hadoop.hbase.util.RegionSplitter ns:t1 UniformSplit -c 64 -f cf
'ns:t1', {NAME => 'cf', DATA_BLOCK_ENCODING => 'FAST_DIFF', COMPRESSION => 'GZ'} рдмрджрд▓реЗрдВ

рдпрд╣рд╛рдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ - рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рд╡рд┐рд╡рд░рдг рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдЪрдмреА рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдорд╛рддреНрд░рд╛ = 64 рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛, рдЬреЛ 640 рдЬреАрдмреА рддрдХ рднрдВрдбрд╛рд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдореЗрдЬ.

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдордп, HBase рдореЗрдВ 22 рд╣рдЬрд╛рд░ рдЯреЗрдмрд▓ рдФрд░ 67 рд╣рдЬрд╛рд░ рдХреНрд╖реЗрддреНрд░ рдереЗ (рдпрджрд┐ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреИрдЪ рдирд╣реАрдВ рд╣реЛрддрд╛ рддреЛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 1.2.0 рдХреЗ рд▓рд┐рдП рдШрд╛рддрдХ рд╣реЛрддрд╛)ред

рдЕрдм рдХреЛрдб рдХреЗ рд▓рд┐рдП. рдЪреВрдБрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдзрд┐рдХ рд▓рд╛рднрдкреНрд░рдж рдереЗ, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдПред рд╡реЗред рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, 4 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА 4 рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рдордиреЗ 8 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ 100 рдерд╛, рдЕрдиреНрдп рдореЗрдВ 200 (рдмреИрдЪ рдкреИрд░рд╛рдореАрдЯрд░ - рдиреАрдЪреЗ рдХреЛрдб рджреЗрдЦреЗрдВ)ред рдорд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ 10 рдмрд╛рдЗрдЯреНрд╕ рдпрд╛ 100 рдмрд╛рдЗрдЯреНрд╕ (рдбреЗрдЯрд╛ рдЖрдХрд╛рд░) рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рд░ рдмрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 5 рдорд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдб рд▓рд┐рдЦреЗ рдФрд░ рдкрдврд╝реЗ рдЧрдПред рдЙрд╕реА рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 5 рдереНрд░реЗрдб рд▓рд┐рдЦреЗ/рдкрдврд╝реЗ рдЧрдП (рдереНрд░реЗрдб рд╕рдВрдЦреНрдпрд╛ - thNum), рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдЕрдкрдиреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдЧрд┐рдирддреА = 1 рдорд┐рд▓рд┐рдпрди):

if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("BEGIN BATCH ");
        for (int i = 0; i < batch; i++) {
            String value = RandomStringUtils.random(dataSize, true, true);
            sb.append("INSERT INTO ")
                    .append(tableName)
                    .append("(id, title) ")
                    .append("VALUES (")
                    .append(key)
                    .append(", '")
                    .append(value)
                    .append("');");
            key++;
        }
        sb.append("APPLY BATCH;");
        final String query = sb.toString();
        session.execute(query);
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("SELECT * FROM ").append(tableName).append(" WHERE id IN (");
        for (int i = 0; i < batch; i++) {
            sb = sb.append(key);
            if (i+1 < batch)
                sb.append(",");
            key++;
        }
        sb = sb.append(");");
        final String query = sb.toString();
        ResultSet rs = session.execute(query);
    }
}

рддрджрдиреБрд╕рд╛рд░, рдПрдЪрдмреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдереА:

Configuration conf = getConf();
HTable table = new HTable(conf, keyspace + ":" + tableName);
table.setAutoFlush(false, false);
List<Get> lGet = new ArrayList<>();
List<Put> lPut = new ArrayList<>();
byte[] cf = Bytes.toBytes("cf");
byte[] qf = Bytes.toBytes("value");
if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lPut.clear();
        for (int i = 0; i < batch; i++) {
            Put p = new Put(makeHbaseRowKey(key));
            String value = RandomStringUtils.random(dataSize, true, true);
            p.addColumn(cf, qf, value.getBytes());
            lPut.add(p);
            key++;
        }
        table.put(lPut);
        table.flushCommits();
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lGet.clear();
        for (int i = 0; i < batch; i++) {
            Get g = new Get(makeHbaseRowKey(key));
            lGet.add(g);
            key++;
        }
        Result[] rs = table.get(lGet);
    }
}

рдЪреВрдВрдХрд┐ рдПрдЪрдмреА рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреБрдВрдЬреА рдирдордХреАрди рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

public static byte[] makeHbaseRowKey(long key) {
    byte[] nonSaltedRowKey = Bytes.toBytes(key);
    CRC32 crc32 = new CRC32();
    crc32.update(nonSaltedRowKey);
    long crc32Value = crc32.getValue();
    byte[] salt = Arrays.copyOfRange(Bytes.toBytes(crc32Value), 5, 7);
    return ArrayUtils.addAll(salt, nonSaltedRowKey);
}

рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ - рдкрд░рд┐рдгрд╛рдо:

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рдЧреНрд░рд╛рдлрд╝ рд░реВрдк рдореЗрдВ рд╡рд╣реА рдЪреАрдЬрд╝:

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡

рдПрдЪрдмреА рдХрд╛ рд▓рд╛рдн рдЗрддрдирд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕реАрдПрд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдбрд╝рдЪрди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЧреВрдЧрд▓ рдХрд░рдиреЗ рдФрд░ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ (рдЬреИрд╕реЗ concurrent_writes рдпрд╛ memtable_heap_space_in_mb) рдХреЛ рдЦреЛрдЬрдиреЗ рд╕реЗ рдЪреАрдЬреЛрдВ рдореЗрдВ рддреЗрдЬреА рдирд╣реАрдВ рдЖрдИред рд╕рд╛рде рд╣реА, рд▓реЙрдЧ рд╕рд╛рдл-рд╕реБрдерд░реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдХрд╕рдо рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред

рдбреЗрдЯрд╛ рдХреЛ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рднреА рдиреЛрдбреНрд╕ рдХреЗ рдЖрдБрдХрдбрд╝реЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдереЗред

рдХрд┐рд╕реА рдПрдХ рдиреЛрдб рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдЖрдБрдХрдбрд╝реЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВрдореБрдЦреНрдпрд╕реНрдерд╛рди: рдХреЗ.рдПрд╕
рдкрдврд╝реЗрдВ рдЧрд┐рдирддреА: 9383707
рд╡рд┐рд▓рдВрдмрддрд╛ рдкрдврд╝реЗрдВ: 0.04287025042448576 рдПрдордПрд╕
рд▓рд┐рдЦреЗрдВ рдЧрд┐рдирддреА: 15462012
рд▓рд┐рдЦрдиреЗ рдХреА рд╡рд┐рд▓рдВрдмрддрд╛: 0.1350068438699957 рдПрдордПрд╕
рд▓рдВрдмрд┐рдд рдлреНрд▓рд╢: 0
рддрд╛рд▓рд┐рдХрд╛: t1
рдПрд╕рдПрд╕рдЯреЗрдмрд▓ рдЧрд┐рдирддреА: 16
рдкреНрд░рдпреБрдХреНрдд рд╕реНрдерд╛рди (рд▓рд╛рдЗрд╡): 148.59 MiB
рдкреНрд░рдпреБрдХреНрдд рд╕реНрдерд╛рди (рдХреБрд▓): 148.59 MiB
рд╕реНрдиреИрдкрд╢реЙрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдерд╛рди (рдХреБрд▓): 0 рдмрд╛рдЗрдЯреНрд╕
рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдСрдл рд╣реАрдк рдореЗрдореЛрд░реА (рдХреБрд▓): 5.17 MiB
рдПрд╕рдПрд╕рдЯреЗрдмрд▓ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд: 0.5720989576459437
рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЕрдиреБрдорд╛рди): 3970323
рд╕реНрдорд░рдгреАрдп рд╕реЗрд▓ рдЧрд┐рдирддреА: 0
рд╕реНрдорд░рдгреАрдп рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░: 0 рдмрд╛рдЗрдЯреНрд╕
рдореЗрдордЯреЗрдмрд▓ рдСрдл рд╣реАрдк рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛: 0 рдмрд╛рдЗрдЯреНрд╕
рд╕реНрдорд░рдгреАрдп рд╕реНрд╡рд┐рдЪ рдЧрд┐рдирддреА: 5
рд╕реНрдерд╛рдиреАрдп рдкрдврд╝рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛: 2346045
рд╕реНрдерд╛рдиреАрдп рдкрдврд╝рдиреЗ рдХреА рд╡рд┐рд▓рдВрдмрддрд╛: NaN рдПрдордПрд╕
рд╕реНрдерд╛рдиреАрдп рд▓реЗрдЦрди рд╕рдВрдЦреНрдпрд╛: 3865503
рд╕реНрдерд╛рдиреАрдп рд▓реЗрдЦрди рд╡рд┐рд▓рдВрдмрддрд╛: NaN рдПрдордПрд╕
рд▓рдВрдмрд┐рдд рдлреНрд▓рд╢: 0
рдорд░рдореНрдордд рдХрд╛ рдкреНрд░рддрд┐рд╢рдд: 0.0
рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛: 25
рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдЧрд╝рд▓рдд рдЕрдиреБрдкрд╛рдд: 0.00000
рдкреНрд░рдпреБрдХреНрдд рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реНрдерд╛рди: 4.57 MiB
рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╣реАрдк рдореЗрдореЛрд░реА рд╕реЗ рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░: 4.57 MiB
рдкреНрд░рдпреБрдХреНрдд рд╣реАрдк рдореЗрдореЛрд░реА рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд╛рд░рд╛рдВрд╢: 590.02 KiB
рд╣реАрдк рдореЗрдореЛрд░реА рд╕реЗ рд╕рдВрдкреАрдбрд╝рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛: 19.45 KiB
рд╕рдВрдХреБрдЪрд┐рдд рд╡рд┐рднрд╛рдЬрди рдиреНрдпреВрдирддрдо рдмрд╛рдЗрдЯреНрд╕: 36
рд╕рдВрдХреБрдЪрд┐рдд рд╡рд┐рднрд╛рдЬрди рдЕрдзрд┐рдХрддрдо рдмрд╛рдЗрдЯреНрд╕: 42
рд╕рдВрдХреБрдЪрд┐рдд рд╡рд┐рднрд╛рдЬрди рдорд╛рдзреНрдп рдмрд╛рдЗрдЯреНрд╕: 42
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ рдФрд╕рдд рдЬреАрд╡рд┐рдд рдХреЛрд╢рд┐рдХрд╛рдПрдВ (рдЕрдВрддрд┐рдо рдкрд╛рдВрдЪ рдорд┐рдирдЯ): NaN
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ рдЕрдзрд┐рдХрддрдо рдЬреАрд╡рд┐рдд рдХреЛрд╢рд┐рдХрд╛рдПрдБ (рдЕрдВрддрд┐рдо рдкрд╛рдБрдЪ рдорд┐рдирдЯ): 0
рдкреНрд░рддрд┐ рдЯреБрдХрдбрд╝рд╛ рдФрд╕рдд рд╕рдорд╛рдзрд┐ рдкрддреНрдерд░ (рдЕрдВрддрд┐рдо рдкрд╛рдБрдЪ рдорд┐рдирдЯ): NaN
рдкреНрд░рддрд┐ рдЯреБрдХрдбрд╝рд╛ рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рдзрд┐ рдкрддреНрдерд░ (рдЕрдВрддрд┐рдо рдкрд╛рдБрдЪ рдорд┐рдирдЯ): 0
рдЧрд┐рд░рд╛рдП рдЧрдП рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди: 0 рдмрд╛рдЗрдЯреНрд╕

рдмреИрдЪ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рднреЗрдЬрдиреЗ рдкрд░ рднреА) рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛, рдпрд╣ рдХреЗрд╡рд▓ рдмрджрддрд░ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ - рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдСрдкрд░реЗрд╢рдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╣рдо рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реАрдПрд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рдФрд░ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

рджреЛ рдпрд╛рдХреЛрдЬрд╝реБрдирд╛ рдХреА рд▓рдбрд╝рд╛рдИ, рдпрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдмрдирд╛рдо HBaseред рд╕рд░реНрдмреИрдВрдХ рдЯреАрдо рдХрд╛ рдЕрдиреБрднрд╡
рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рджреЛрдиреЛрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдПрдЪрдмреА рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкрдарди рд▓рд╛рдн рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджреЛрдиреЛрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рд░реАрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреЗрд╣рдж рдХрдо рд╣реИ (рд░реАрдб рдЯреЗрд╕реНрдЯ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрдХреНрд░ рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ 15:20 рд╕реЗ 15:40 рддрдХ рд╣реИ)ред рдПрдЪрдмреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдореЗрдВ, рдореЗрдорд╕реНрдЯреЛрд░ рдореЗрдВ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдмреНрд▓реЙрдХ рдХреИрд╢ рдореЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рд╕реНрдХ рд░реАрд╕рд╛рдЗрдХреНрд▓рд┐рдВрдЧ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрд╢ row_cache_size_in_mb = 2048 рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдХреИрд╢рд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ = {'keys': 'ALL', 'rows_per_partition': '2000000'}, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдпрд╣ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ред

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

рдЗрд╕рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдмрдбрд╝реА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реБрдИ, рдХреИрд╕рдВрдбреНрд░рд╛ рдорд┐рдЯреНрдЯреА рдХреЗ рдкреИрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд╛рд▓рдХрд╛рдп рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЬрдмрдХрд┐ рд╡рд╣ рдПрдХ рдкреИрд░ рдкрд░ рд╕рдВрддреБрд▓рди рд░рдЦрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд┐рддреНрд░ рдореЗрдВ рд╣реИ, рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд▓рдбрд╝рд╛рдИ рдореЗрдВ рд╡рд╣ рд╕реАрдзреЗ рд╣рд╛рд░ рдЬрд╛рддреА рд╣реИред рдЙрд╕реА рд╕рдордп, рд╣рдорд╛рд░реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдХрдо рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╣рдордиреЗ рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ рджреЛ рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдПрдЪрдмреА рд▓рдЧрд╛рдирд╛ рд╕реАрдЦрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░ рджрд┐рдпрд╛ред рд╡реЗред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╕реАрдПрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рднреА рджрдпрдиреАрдп рд╣реИред

рдмреЗрд╢рдХ, рдпреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рдлреА рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╛рдореВрд▓реА рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдЯреЗрд░рд╛рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ, рддреЛ рд╕реНрдерд┐рддрд┐ рдЕрд▓рдЧ рд╣реЛрддреА, рд▓реЗрдХрд┐рди рдПрдЪрдмреА рдХреЗ рд▓рд┐рдП рд╣рдо рдЯреЗрд░рд╛рдмрд╛рдЗрдЯреНрд╕ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╕рд╛рдмрд┐рдд рд╣реБрдЖред рдпрд╣ рдЕрдХреНрд╕рд░ рдЗрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдПрдХ рдСрдкрд░реЗрд╢рдирдЯрд╛рдЗрдореНрдбрдЖрдЙрдЯрдПрдХреНрд╕реЗрдкреНрд╢рди рдХреЛ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЧреБрдирд╛ рдмрдврд╝ рдЧрдП рдереЗред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рдВрдпреБрдХреНрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рд╣рдо рд╕реАрдПрд╕ рдХреА рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ рдФрд░ рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рдпреВрдкреАрдбреА: рд╕рд╛рдерд┐рдпреЛрдВ рдХреА рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдерд╛:
159 рдСрдкреНрд╕ (644 рдЯреЗрдмрд▓, 4 рд╕реНрдЯреНрд░реАрдо, рдмреИрдЪ 5)ред
рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
.рд╡рд┐рджрд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд┐рдВрдЧрдкреЙрд▓рд┐рд╕реА(рдирдпрд╛ рдЯреЛрдХрдирдПрд╡реЗрдпрд░рдкреЙрд▓рд┐рд╕реА(рдбреАрд╕реАрдПрд╡реЗрдпрд░рд░рд╛рдЙрдВрдбрд░реЙрдмрд┐рдирдкреЙрд▓рд┐рд╕реА.рдмрд┐рд▓реНрдбрд░().рдмрд┐рд▓реНрдб()))
рдФрд░ рдореИрдВрдиреЗ рдзрд╛рдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
4 рдЯреЗрдмрд▓, 100 рдзрд╛рдЧреЗ, рдмреИрдЪ = 1 (рдЯреБрдХрдбрд╝рд╛ рджрд░ рдЯреБрдХрдбрд╝рд╛): 301 рдСрдкреНрд╕
4 рдЯреЗрдмрд▓, 100 рдзрд╛рдЧреЗ, рдмреИрдЪ = 10: 447 рдСрдкреНрд╕
4 рдЯреЗрдмрд▓, 100 рдзрд╛рдЧреЗ, рдмреИрдЪ = 100: 625 рдСрдкреНрд╕

рдмрд╛рдж рдореЗрдВ рдореИрдВ рдЕрдиреНрдп рдЯреНрдпреВрдирд┐рдВрдЧ рдпреБрдХреНрддрд┐рдпрд╛рдБ рд▓рд╛рдЧреВ рдХрд░реВрдВрдЧрд╛, рдПрдХ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдЪрдХреНрд░ рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ