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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА: рдЧрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЖрдХрд╛рд░ рдкрд░ рдХреИрд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпреЗ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдмрд╛рд╣рд░реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдмрд▓реНрдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:
Cloudera CDH4, HBase 0.94.6-cdh4.3.0 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ред
CentOS / 4CPU / RAM 8GB / HDD 50GB рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рддреАрди рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ (рд╣рд╛рдЗрдкрд░рд╡рд┐рдЬрд░ рдкрд░)
рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ CSV рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХреБрд▓ рдорд╛рддреНрд░рд╛ 2GB, 3.5GB, 7.1GB рдФрд░ 14.2GB рд╣реИ
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ:
рдереЛрдХ рд▓реЛрдбрд┐рдВрдЧ

рджрд░:
- рдЕрдзрд┐рдХрддрдо 29.2 рдПрдордмреА / рд╕реЗрдХрдВрдб рдпрд╛ 58K рдЖрд░рдИрд╕реА / рд╕реЗрдХрдВрдб (3.5 рдЬреАрдмреА 28 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ)
- рдФрд╕рдд 27 рдПрдордмреА / рд╕реЗрдХрдВрдб рдпрд╛ 54K рдЖрд░рдИрд╕реА / рд╕реЗрдХрдВрдб (рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдХрд░реАрдм рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрддрд┐)
- рдиреНрдпреВрдирддрдо 14.5 рдПрдордмреА / рд╕реЗрдХрдВрдб рдпрд╛ 29K рдЖрд░рдИрд╕реА / рд╕реЗрдХрдВрдб (100 рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ 2 рдЬреАрдмреА)
- 1 рдлрд╝рд╛рдЗрд▓ 100 рд╕реЗ 20% рдЕрдзрд┐рдХ рддреЗрдЬрд╝реА рд╕реЗ рдЕрдкрд▓реЛрдб рд╣реЛрддреА рд╣реИ
рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЖрдХрд╛рд░ (рдкрдВрдХреНрддрд┐): 0.5Kb
MapReduce рдиреМрдХрд░реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдордп: 70 рд╕реЗрдХрдВрдб
рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ HDFS рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдордп рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
- 3.5GB / 1 рдлрд╝рд╛рдЗрд▓ - 65 рд╕реЗрдХрдВрдб
- 7.5GB / 100 - 150 рд╕реЗрдХрдВрдб
- 14.2G / 1 рдлрд╝рд╛рдЗрд▓ - 285 рд╕реЗрдХрдВрдб
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
рдбрд╛рдЙрдирд▓реЛрдб 8 рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде 2 рдореЗрдЬрдмрд╛рдиреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдореБрдХреБрдЯ рдкрд░ рд╢реБрд░реВ рд╣реБрдЖ рдЧреНрд░рд╛рд╣рдХ, рд╕реАрдкреАрдпреВ рд▓реЛрдб 40% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛
рдкрд┐рдЫрд▓реЗ рдорд╛рдорд▓реЗ рдХреА рддрд░рд╣ рдПрдХ рд░рд┐рдХреЙрд░реНрдб (рдкрдВрдХреНрддрд┐) рдХрд╛ рдЖрдХрд╛рд░ 0.5Kb рдерд╛ред

рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЕрд▓реНрдЯреНрд░рд╛-рдлрд╛рд╕реНрдЯ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд▓реНрдХ рд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреЗ рдорджреНрджреЗрдирдЬрд░ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╕реАрдкреАрдпреВ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреИрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реЛ, рдореБрдЭреЗ рдЧрддрд┐ рдореЗрдВ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рдЯреЗрд╕реНрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдмрд▓реНрдХ рд▓реЛрдб рдХреЗрд╡рд▓ 1.5 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдпрд╣ рдПрдо / рдЖрд░ рдХреА рдиреМрдХрд░реА рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрдЯрд╛ рдХреЛ рдПрдЪрдбреАрдПрдлрдПрд╕ рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рднреА рд▓рдЧреЗрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд▓реНрдХ рд▓реЛрдб рдХреЛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдПрдХ рдФрд░ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓реА рдЕрд▓рдЧ (рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ)ред
рдФрд░ рдЕрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП
рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрдИ рддрдХрдиреАрдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред
- MapReduce Job рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
- рдереЛрдХ рд▓реЛрдб рд╣рдореЗрд╢рд╛ hbase рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: org.apache.hadoop.security.AccessControlException: рдЕрдиреБрдорддрд┐ рдЕрд╕реНрд╡реАрдХреГрдд: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = hasease
рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ hbase рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ Job рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ)ред
- рдЖрдкрдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ HBase рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ reducer рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рддрдХ рдЬрд╛рддреА рд╣реИ, рдЗрд╕реЗ 100% рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдзреВрдореНрд░рдкрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкреВрд░реНрд╡-рд╡рд┐рднрд╛рдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП 10 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
- MapReduce Job рдЖрдЙрдЯрдкреБрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЙрд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдХреЙрд▓рдо рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рднреА рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рд╣реИред рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдХрдард┐рди рдкрд░реАрдХреНрд╖рдг рд╣реИ, рдмрд┐рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб GitHub:
github.com/2anikulin/hbase-bulk-load рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ