Apache Hadoop рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛: рдЙрддреНрдкрд╛рджрди VS рдкрд░реАрдХреНрд╖рдг

рдЪрд┐рддреНрд░ 1

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

Hadoop рдореЗрдВ рдЪрд╛рд░ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

  • Hadoop рдЖрдо
  • MapReduce
  • Hadoop рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (Hadoop рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо)
  • рдпрд╛рд░реНрди

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рд╣реИрдВред

рд╕рддреНрдпрд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдорд╛рд╡реЗрди рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
  • рдЧреНрд░реЗрдбрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
  • IntellJ IDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
  • рд╕реАрдзреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

Hadoop рдХреЛ maven build system рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдореЗрдВ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реБрдИред

рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ pom.xml рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ (рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдереЗ рдХрд┐ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдереЗ), рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд▓рд╛ рдЧрдпрд╛!

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

рдЗрд╕рд▓рд┐рдП, рдХреЛрдб (рдЙрддреНрдкрд╛рджрди, рдкрд░реАрдХреНрд╖рдг) рдФрд░ рдЪрд╛рд░ рдореБрдЦреНрдп Hadoop рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдПрдХрддреНрд░ рдХреА рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рддрд╛ рд╣реВрдВред

рдЙрддреНрдкрд╛рджрди рдХреЛрдб


Hadoop рдЖрдо


V6033 рд╕рдорд╛рди рдХреБрдВрдЬреА 'KDC_BIND_ADDRESS' рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдЗрдЯрдо рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред MiniKdc.java (163), MiniKdc.java (162)

public class MiniKdc { .... private static final Set<String> PROPERTIES = new HashSet<String>(); .... static { PROPERTIES.add(ORG_NAME); PROPERTIES.add(ORG_DOMAIN); PROPERTIES.add(KDC_BIND_ADDRESS); PROPERTIES.add(KDC_BIND_ADDRESS); // <= PROPERTIES.add(KDC_PORT); PROPERTIES.add(INSTANCE); .... } .... } 

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

MapReduce


V6072 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'рд▓реЛрдХрд▓рдлреЗрдпрд░' рдХреЗ рдмрдЬрд╛рдп 'рд▓реЛрдХрд▓рдлрд╛рдЗрд▓реНрд╕' рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред LocalDistributedCacheManager.java (183), LocalDistributedCacheManager.java (178), LocalDistributedCacheManager.java (176), LocalDistributedCacheManager.java (181)

 public synchronized void setup(JobConf conf, JobID jobId) throws IOException { .... // Update the configuration object with localized data. if (!localArchives.isEmpty()) { conf.set(MRJobConfig.CACHE_LOCALARCHIVES, StringUtils .arrayToString(localArchives.toArray(new String[localArchives // <= .size()]))); } if (!localFiles.isEmpty()) { conf.set(MRJobConfig.CACHE_LOCALFILES, StringUtils .arrayToString(localFiles.toArray(new String[localArchives // <= .size()]))); } .... } 

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

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

рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ:

  • рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рдЖрдХреГрддрд┐рдпрд╛рдБ (рдЖрдХрд╛рд░ = 4) рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд (рдЖрдХрд╛рд░ = 2) рд╣реИрдВ;
  • рдЬрдм LocalFiles.toArray рд╕рд░рдгреА (рдирдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ [localArchives.size ()]) рдмрдирд╛рддреЗ рд╣реИрдВ , рддреЛ рд╣рдореЗрдВ рдЕрдВрддрд┐рдо 2 рддрддреНрд╡ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ (["pathToFile1", "pathToFile2", null, null]);
  • рдЙрд╕рдХреЗ рдмрд╛рдж, org.apache.hadoop.util.StringUtils.arrayToString рд╣рдорд╛рд░реЗ рд╕рд░рдгреА рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЛ "null" ("pathToFile1, pathToFile2, null, null" ) рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛;
  • рдпрд╣ рд╕рдм рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЬрд╛рдБрдЪреЗрдВ =)ред

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмрдЪреНрдЪреЛрдВред рдЖрдХрд╛рд░ ()> 0' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реИред рдХрддрд╛рд░.рдЬрд╛рд╡рд╛ (347)

 boolean isHierarchySameAs(Queue newState) { .... if (children == null || children.size() == 0) { .... } else if(children.size() > 0) { .... } .... } 

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ 0 рдкрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдЕрд▓рдЧ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрдЧреЗ рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЖрдХрд╛рд░ ()> 0 рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ред

HDFS


V6001 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'this.bucketSize' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '%' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред рд░реЛрд▓рд┐рдВрдЧ рд╡рд┐рдВрджреЛред рдЬрд╛рд╡рд╛ (79)

  RollingWindow(int windowLenMs, int numBuckets) { buckets = new Bucket[numBuckets]; for (int i = 0; i < numBuckets; i++) { buckets[i] = new Bucket(); } this.windowLenMs = windowLenMs; this.bucketSize = windowLenMs / numBuckets; if (this.bucketSize % bucketSize != 0) { // <= throw new IllegalArgumentException( "The bucket size in the rolling window is not integer: windowLenMs= " + windowLenMs + " numBuckets= " + numBuckets); } } 

рдпрд╣ рджреЛрд╖ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдЪрд░ рд╕реНрд╡рдпрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдирддреАрдЬрддрди, рдмрд╣реБрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд╣рдореЗрд╢рд╛ рдкрд╛рд╕ рд╣реЛрдЧрд╛, рдФрд░, рдЧрд▓рдд рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ ( windowLenMs , numBuckets ) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╛рд░реНрди


V6067 рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗрд╕-рд╢рд╛рдЦрд╛рдПрдБ рдПрдХ рд╣реА рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЯрд╛рдЗрдорд▓рд╛рдЗрдирдЗрдВрдЯрд░рд┐рдЯреА рд╡реА 2 рдХрдиреЗрдХреНрдЯреЛрд░реНрдЯрд░.рдЬрд╛рд╡рд╛ (386), рдЯрд╛рдЗрдорд▓рд╛рдЗрдирдЗрдВрдЯреАрд╡реАрд╕реАрдСрдирдХреНрд╡рд░реНрдЯрд░.рдЬрд╡рд╛ (386)

  public static ApplicationReport convertToApplicationReport(TimelineEntity entity) { .... if (metrics != null) { long vcoreSeconds = 0; long memorySeconds = 0; long preemptedVcoreSeconds = 0; long preemptedMemorySeconds = 0; for (TimelineMetric metric : metrics) { switch (metric.getId()) { case ApplicationMetricsConstants.APP_CPU_METRICS: vcoreSeconds = getAverageValue(metric.getValues().values()); break; case ApplicationMetricsConstants.APP_MEM_METRICS: memorySeconds = ....; break; case ApplicationMetricsConstants.APP_MEM_PREEMPT_METRICS: preemptedVcoreSeconds = ....; // <= break; case ApplicationMetricsConstants.APP_CPU_PREEMPT_METRICS: preemptedVcoreSeconds = ....; // <= break; default: // Should not happen.. break; } } .... } .... } 

рджреЛ рдорд╛рдорд▓реЗ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ, рдПрдХ рд╣реА рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗред рдРрд╕рд╛ рд╣рд░ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ! рдорд╛рдорд▓реЛрдВ рдХреА рдкреНрд░рдореБрдЦ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рд╕рд░ рд╣реИ рдЬреЛ рд╕реНрд╡рд┐рдЪ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдореЗрдВ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдмрд╛рд░-рдмрд╛рд░ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рд╡реИрд░рд┐рдПрдмрд▓ рдкреНрд░реАрдореЗрдкреНрдЯреЗрдбVcoreSeconds рдХрд╛ рдорд╛рди рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ ред рдпрджрд┐ рдЖрдк рд╕рднреА рдЪрд░ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдирд╛рдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ metric.getId () == APP_MEM_PREEMPT_METRICS рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪрд░ emememedMemorySeconds рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ preemptedVcoreSeconds ред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, preemptedMemorySeconds 'рд╕реНрд╡рд┐рдЪ' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрд╢рд╛ 0 рд╣реА рд░рд╣реЗрдЧрд╛, рдФрд░ preemptedVcoreSeconds рдХрд╛ рдорд╛рди рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

V6046 рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдкред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдЖрдЗрдЯрдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИрдВред рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛: 2. AbstractSchedulerPlanFollower.java (186)

 @Override public synchronized void synchronizePlan(Plan plan, boolean shouldReplan) { .... try { setQueueEntitlement(planQueueName, ....); } catch (YarnException e) { LOG.warn("Exception while trying to size reservation for plan: {}", currResId, planQueueName, e); } .... } 

рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░ planQueueName ред рдпрд╣рд╛рдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдпрд╛ рддреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ, рдпрд╛ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдФрд░ рдХрднреА-рдХрднреА рдПрдХ рдЕрд╕рдВрддреБрд╖реНрдЯ, рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВред

рдЯреЗрд╕реНрдЯ рдХреЛрдб


Hadoop рдЖрдо


V6072 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'allSecretsB' рдХреЗ рдмрдЬрд╛рдп 'allSecretsB' рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред TestZKSignerSecretProvider.java (316), TestZKSignerSecretProvider.java (309), TestZKSignerSecretProvider.java (306), TestZKSignerSecretProvider.java (313)

 public void testMultiple(int order) throws Exception { .... currentSecretA = secretProviderA.getCurrentSecret(); allSecretsA = secretProviderA.getAllSecrets(); Assert.assertArrayEquals(secretA2, currentSecretA); Assert.assertEquals(2, allSecretsA.length); // <= Assert.assertArrayEquals(secretA2, allSecretsA[0]); Assert.assertArrayEquals(secretA1, allSecretsA[1]); currentSecretB = secretProviderB.getCurrentSecret(); allSecretsB = secretProviderB.getAllSecrets(); Assert.assertArrayEquals(secretA2, currentSecretB); Assert.assertEquals(2, allSecretsA.length); // <= Assert.assertArrayEquals(secretA2, allSecretsB[0]); Assert.assertArrayEquals(secretA1, allSecretsB[1]); .... } 

рдФрд░ рдлрд┐рд░ рд╕реЗ V6072ред рдЪрд░ allSecretsA рдФрд░ allSecretsB рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рджреЗрдЦреЛред

V6043 'рдСрдкрд░реЗрдЯрд░' рдХреЗ рд▓рд┐рдП рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рд╕рдорд╛рди рд╣реИрдВред TestTFile.java (235)

 private int readPrepWithUnknownLength(Scanner scanner, int start, int n) throws IOException { for (int i = start; i < start; i++) { String key = String.format(localFormatter, i); byte[] read = readKey(scanner); assertTrue("keys not equal", Arrays.equals(key.getBytes(), read)); try { read = readValue(scanner); assertTrue(false); } catch (IOException ie) { // should have thrown exception } String value = "value" + key; read = readLongValue(scanner, value.getBytes().length); assertTrue("values nto equal", Arrays.equals(read, value.getBytes())); scanner.advance(); } return (start + n); } 

рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛ рд╣рдореЗрд╢рд╛ рд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИ? =)ред рд▓реВрдк рдХрд╛ рд╢рд░реАрд░, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХрдерди рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░ рдореИрдЪ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдорд╛рдиред рдирддреАрдЬрддрди, рд╕реНрдерд┐рддрд┐ i <start рд╣рдореЗрдВ рддреБрд░рдВрдд рдЭреВрдард╛ рджреЗрдЧреА, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ред рдореИрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд▓реВрдк i рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ <(рдкреНрд░рд╛рд░рдВрдн + n) ред

MapReduce


a href = " www.viva64.com/en/w/v6007 "> V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмрд╛рдЗрдЯрдЕрдо <0' рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред DataWriter.java (322)

 GenerateOutput writeSegment(long byteAm, OutputStream out) throws IOException { long headerLen = getHeaderLength(); if (byteAm < headerLen) { // not enough bytes to write even the header return new GenerateOutput(0, 0); } // adjust for header length byteAm -= headerLen; if (byteAm < 0) { // <= byteAm = 0; } .... } 

рд╣рд╛рд▓рдд рдмрд╛рдЗрдЯрдПрдПрдо <0 рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдСрдкрд░реЗрд╢рди рдмрд╛рдЗрдЯ - = рд╣реИрдбрд░рд▓реЗрди рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ , рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╛рдЗрдЯрдЖрдо> = рд╣реЗрдбрд░рдЯреЗрди рд╣реЛрдЧрд╛ ред рдпрд╣рд╛рдБ рд╕реЗ, рдШрдЯрд╛рд╡ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрд╛рдЗрдЯ рдХрд╛ рдорд╛рди рдХрднреА рднреА рдЛрдгрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЬрд┐рд╕реЗ рд╕рд┐рджреНрдз рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

HDFS


V6072 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'normalFile' рдХреЗ рдмрдЬрд╛рдп 'normalFile' рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред TestWebHDFS.java (625), TestWebHDFS.java (615), TestWebHDFS.java (614), TestWebHDFS.java (624)

 public void testWebHdfsErasureCodingFiles() throws Exception { .... final Path normalDir = new Path("/dir"); dfs.mkdirs(normalDir); final Path normalFile = new Path(normalDir, "file.log"); .... // logic block #1 FileStatus expectedNormalDirStatus = dfs.getFileStatus(normalDir); FileStatus actualNormalDirStatus = webHdfs.getFileStatus(normalDir); // <= Assert.assertEquals(expectedNormalDirStatus.isErasureCoded(), actualNormalDirStatus.isErasureCoded()); ContractTestUtils.assertNotErasureCoded(dfs, normalDir); assertTrue(normalDir + " should have erasure coding unset in " + ....); // logic block #2 FileStatus expectedNormalFileStatus = dfs.getFileStatus(normalFile); FileStatus actualNormalFileStatus = webHdfs.getFileStatus(normalDir); // <= Assert.assertEquals(expectedNormalFileStatus.isErasureCoded(), actualNormalFileStatus.isErasureCoded()); ContractTestUtils.assertNotErasureCoded(dfs, normalFile); assertTrue( normalFile + " should have erasure coding unset in " + ....); } 

рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд┐рд░ V6072! рдмрд╕ normalDir рдФрд░ normalFile рдЪрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ

V6027 рдЪрд░ рдХреЛ рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЕрди-рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рд╣реИред TestDFSAdmin.java (883), TestDFSAdmin.java (879)

 private void verifyNodesAndCorruptBlocks( final int numDn, final int numLiveDn, final int numCorruptBlocks, final int numCorruptECBlockGroups, final DFSClient client, final Long highestPriorityLowRedundancyReplicatedBlocks, final Long highestPriorityLowRedundancyECBlocks) throws IOException { /* init vars */ .... final String expectedCorruptedECBlockGroupsStr = String.format( "Block groups with corrupt internal blocks: %d", numCorruptECBlockGroups); final String highestPriorityLowRedundancyReplicatedBlocksStr = String.format( "\tLow redundancy blocks with highest priority " + "to recover: %d", highestPriorityLowRedundancyReplicatedBlocks); final String highestPriorityLowRedundancyECBlocksStr = String.format( "\tLow redundancy blocks with highest priority " + "to recover: %d", highestPriorityLowRedundancyReplicatedBlocks); .... } 

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

V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TestReplaceDatanodeFailureReplication.java (222)

 private void verifyFileContent(...., SlowWriter[] slowwriters) throws IOException { LOG.info("Verify the file"); for (int i = 0; i < slowwriters.length; i++) { LOG.info(slowwriters[i].filepath + ....); FSDataInputStream in = null; try { in = fs.open(slowwriters[i].filepath); for (int j = 0, x;; j++) { x = in.read(); if ((x) != -1) { Assert.assertEquals(j, x); } else { return; } } } finally { IOUtils.closeStream(in); } } } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ рдХрд┐ i ++ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд▓реВрдк рдореЗрдВ рдмрджрд▓рдирд╛ рдЕрдкреНрд░рд╛рдкреНрдп рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓реВрдк рдХреЗ рд▓рд┐рдП (int i = 0; i <slowwriters.length; i ++) {....} рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рд░рдгред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ, рд╣рдо рд╕реНрдЯреНрд░реАрдорд░ рдХреЛ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдЧреЗ рдХреЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ [0] ред рд▓реВрдк рдХреЗ рд▓рд┐рдП (int j = 0, x ;; j ++) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╣рдо рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ:

  • рдпрджрд┐ рд╣рдо рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЕрднрд┐рдХрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рдХрд╛рдЙрдВрдЯрд░ рдмрд╛рдЗрдЯ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд░реАрдб рдмрд╛рдЗрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЕрд╕рдлрд▓ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ);
  • рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░ рд▓рд┐рдпрд╛ рдФрд░ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪ рдЧрдП (-1 рдкрдврд╝реЗрдВ), рддреЛ рд╣рдо рд╡рд┐рдзрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рднреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдЬрдм рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ [0] рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ , рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд░рд┐рдЯрд░реНрди рдХреЗ рдмрдЬрд╛рдп рдмреНрд░реЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛рд░реНрди


V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TestNodeManager.java (176)

 @Test public void testCreationOfNodeLabelsProviderService() throws InterruptedException { try { .... } catch (Exception e) { Assert.fail("Exception caught"); e.printStackTrace(); } } 

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

рдРрд╕реЗ рдХрдИ рд╕реНрдерд╛рди рд╣реИрдВ:
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TestResourceTrackerService.java (928)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TestResourceTrackerService.java (737)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TestResourceTrackerService.java (685)
  • ....

V6072 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'publicCache' рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ 'usercache' рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред TestResourceLocalizationService.java (315), TestResourceLocalizationService.java (309), TestResourceLocalizationService.java (307), TestResourceLocalizationService.java (313)

 @Test public void testDirectoryCleanupOnNewlyCreatedStateStore() throws IOException, URISyntaxException { .... // verify directory creation for (Path p : localDirs) { p = new Path((new URI(p.toString())).getPath()); // logic block #1 Path usercache = new Path(p, ContainerLocalizer.USERCACHE); verify(spylfs).rename(eq(usercache), any(Path.class), any()); // <= verify(spylfs).mkdir(eq(usercache), ....); // logic block #2 Path publicCache = new Path(p, ContainerLocalizer.FILECACHE); verify(spylfs).rename(eq(usercache), any(Path.class), any()); // <= verify(spylfs).mkdir(eq(publicCache), ....); .... } .... } 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдлрд┐рд░ рд╕реЗ V6072 =)ред рд╕рдВрджрд┐рдЧреНрдз рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░: usercache рдФрд░ publicCache ред

рдирд┐рд╖реНрдХрд░реНрд╖


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

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

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



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

Source: https://habr.com/ru/post/hi480928/


All Articles