ÎÒÃÇÓÐÒ»¸öHadoop¼¯Èº´ÓÉϸöÔ¿ªÊ¼Óöµ½Ò»ÏµÁÐÐÔÄÜÎÊÌ⣬ÔÚÖðÒ»½â¾öµÄ¹ý³ÌÖУ¬»ýÀÛÁËÒÔϵÄÓÅ»¯¾Ñé¡£
1. ÍøÂç´ø¿í
Hadoop¼¯ÈºµÄ·þÎñÆ÷Ôڹ滮ʱ¾ÍÔÚͳһµÄ½»»»»úÏ£¬ÕâÊÇÔÚ¹Ù·½ÎĵµÖн¨ÒéµÄ²¿Êð·½Ê½¡£
µ«ÊÇÎÒÃǵÄÕą̂½»»»»úºÍÆäËû½»»»»úµÄ»¥Áª´ø¿íÓÐÏÞ£¬ËùÒÔÔÚ¿Í»§¶ËÓöµ½ÁËHDFS·ÃÎÊËÙ¶ÈÂýµÄÎÊÌâ¡£
°Ñ²Ù×÷¼¯ÈºµÄ¿Í»§¶ËÒ²ÁªÈëDataNodeµÄ½»»»»úÄÚ²¿£¬½â¾öÁËÕâ¸öÎÊÌâ¡£
2. ϵͳ²ÎÊý
¶Ôulimit -cµÄÐÞ¸ÄÒ²Ê**Ù·½Îĵµ½¨ÒéµÄÐ޸ģ¬ÔÚ¼¯ÈºÖ»ÓÐ10̨·þÎñÆ÷ʱ£¬²¢Ã»ÓÐÓöµ½ÎÊÌâ¡£
Ëæ×Å»úÆ÷Ôö¼ÓºÍÈÎÎñÔö¼Ó£¬Õâ¸öÖµÐèÒª¸ÄµÄ¸ü´ó¡£
3. ÅäÖÃÎļþ¹ÜÀí
Õâ¸ö¼¯ÈºÓõÄÊÇCloudera·¢Ðеİ汾£¬ÅäÖÃÎļþĬÈÏ´æÔÚ/etc/hadoop/confλÖá£ÕâÊÇÒ»¸öÖ»ÓÐroot²ÅÄÜÐ޸ĵÄλÖá£
ΪÁËÐ޸ķ½±ã£¬ÎÒ°ÑÅäÖÃÎļþͳһ±£´æÔÚһ̨»úÆ÷ÉÏ£¬Ð޸ĺóÓýű¾·Ö·¢¡£±£Ö¤ËùÓзþÎñÆ÷¶¼ÊÇͳһµÄÅäÖá£
4. mapred.tasktracker.map.tasks.maximum
Õâ¸ö²ÎÊý¿ØÖÆÃ¿¸öTaskTrackerͬʱÔËÐеÄMapÈÎÎñÊý¡£
ÒÔǰµÄÉèÖÃÊǺÍCPUºËÊýÏàͬµÄ£¬Å¼¶ûÓöµ½ÈÎÎñ¼·Õ¼DataNode×ÊÔ´µÄÎÊÌâ¡£
ÏÖÔڸijÉmap+reduce+1==num_cpu_cores¡£
5. Ñϸñ¿ØÖÆrootȨÏÞ
ClouderaµÄ·¢Ðаæ»á´´½¨Ò»¸öhadoopÓû§£¬¸÷ÖÖÊØ»¤½ø³Ì¶¼Ó¦¸ÃÒÔÕâ¸öÓû§ÔËÐС£
Ôø¾ÓÐÎó²Ù×÷£¨/usr/lib/hadoop/bin/hadoop datanode &£©µ¼Ö±¾µØµÄÊý¾ÝĿ¼±»rootдÈëÐÂÎļþ£¬ÓÚÊÇÕýÈ·Æô¶¯µÄhadoopÓû§½ø³ÌÎÞ·¨¶Áд¡£
ËùÒÔÏÖÔڵļ¯Èº·þÎñÆ÷²»ÌṩÈÕ³£µÄrootȨÏÞ·ÃÎÊ¡£
6. JavaµÄGCģʽ
ÔÚmapred.child.java.optsºÍHADOOP_OPTS¶¼Ôö¼ÓÁË-XX:+UseConcMarkSweepGC¡£
JDKµÄÎĵµÖÐÍÆ¼öÏÖ´ú¶àºË´¦ÀíÆ÷ϵͳ£¬²ÉÓÃÕâÖÖGC·½Ê½£¬¿ÉÒÔ³ä·ÖÀûÓÃCPUµÄ²¢·¢ÄÜÁ¦¡£
Õâ¸ö¸Ä¶¯¶ÔÐÔÄܵĻý¼«Ó°ÏìºÜ´ó¡£
7. Ñ¡ÔñÕýÈ·µÄJDK
Õâ¸ö¼¯ÈºÓв¿·Ö·þÎñÆ÷µÄJDKÓõÄÊÇ32λ°æ±¾£¬²»ÄÜ´´½¨-Xmx4gÒÔÉϵĽø³Ì¡£
ͳһΪx64°æ±¾µÄJDK¡£
8. mapred.reduce.slowstart.completed.maps
Õâ¸ö²ÎÊý¿ØÖÆslowstartÌØÐÔµÄʱ»ú£¬Ä¬ÈÏÊÇÔÚ5%µÄmapÈÎÎñÍê³Éºó£¬¾Í¿ªÊ¼µ÷¶Èreduce½ø³ÌÆô¶¯£¬¿ªÊ¼copy¹ý³Ì¡£
µ«ÊÇÎÒÃǵĻúÆ÷ÊýÁ¿²»¶à£¬ÓÐÒ»´Î´óÁ¿µÄÈÎÎñ¶Ñ»ýÔÚJobTrackerÀÿ¸öTaskTrackerµÄmapºÍreduce slots¶¼ÅÜÂúÁË¡£
ÓÉÓÚmapûÓÐ×ã¹»×ÊԴѸËÙÍê³É£¬reduceÒ²¾ÍÎÞ·¨½áÊø£¬Ôì³É¼¯ÈºµÄ×ÊÔ´»¥ÏàËÀËø¡£
°ÑÕâ¸ö²ÎÊý¸Ä³ÉÁË0.75£¬ÈÎÎñ¶Ñ»ýµÄÁбí´Óƽ¾ù10¸ö£¬±ä³ÉÁË3¸ö¡£
9. mapred.fairscheduler.preemption
Õâ¸ö²ÎÊýÉèΪÁËtrue¡£ÒÔ±ãfairschedulerÔÚÓû§×îС×ÊÔ´²»ÄÜÂú×ãʱ£¬killÆäËûÈ˵ÄÈÎÎñÌÚ³ö×ã¹»µÄ×ÊÔ´¡£
¼¯ÈºÔËÐÐן÷ÖÖÀàÐ͵ÄÈÎÎñ£¬ÓÐЩmapÈÎÎñÐèÒªÔËÐÐÊýСʱ¡£Õâ¸ö²ÎÊý»áµ¼ÖÂÕâÀàÈÎÎñ±»Æµ·±kill£¬¼¸ºõÎÞ·¨Íê³É¡£Ôø¾ÓиöÈÎÎñÔÚ7СʱÄÚ±»killÁË137´Î¡£
¿ÉÒÔͨ¹ýµ÷ÕûfairschedulerµÄpoolÅäÖýâ¾ö£¬¸øÕâÖÖÈÎÎñµ¥¶ÀÅäÖÃÒ»¸öminMap==maxMapµÄpool¡£
10. mapred.jobtracker.completeuserjobs.maximum
ÏÞÖÆÃ¿¸öÓû§ÔÚJobTrackerµÄÄÚ´æÖб£´æÈÎÎñµÄ¸öÊý¡£
ÒòΪÕâ¸ö²ÎÊý¹ý´ó£¬ÎÒÃǵÄJobTrackerÆô¶¯²»µ½24Сʱ¾Í»áÏÝÈëÆµ·±µÄFullGCµ±ÖС£
Ŀǰ¸ÄΪ5£¬JTƽÎÈÔËÐÐÒ»Ìì´¦Àí1500¸öÈÎÎñ£¬Ö»Õ¼ÓÃ800MÄÚ´æ¡£
Õâ¸ö²ÎÊýÔÚ>0.21.0ÒѾûÓбØÒªÉèÖÃÁË£¬ÒòΪ0.21°æ±¾¸ÄÔìÁËcompleteuserjobsµÄÓ÷¨£¬»á¾¡¿ìµÄдÈë´ÅÅÌ£¬²»ÔÙÄÚ´æÖг¤ÆÚ´æÔÚÁË¡£
11. mapred.jobtracker.update.faulty.tracker.intervalºÍmapred.jobtracker.max.blacklist.percent
Ò»¸öд´íµÄÈÎÎñ£¬»áµ¼ÖÂÒ»´óÅúTaskTracker½øÈëºÚÃûµ¥£¬¶øÇÒÒª24Сʱ²ÅÄָܻ´¡£ÕâÖÖ×´¿ö¶ÔÖÐС¹æÄ£µÄ¼¯ÈºÐÔÄÜÓ°ÏìÊǷdz£´óµÄ¡£Ö»ÄÜͨ¹ýÊÖ¹¤ÖØÆôTaskTrackerÀ´ÐÞ¸´¡£ËùÒÔÎÒÃǾÍÐÞ¸ÄÁ˲¿·ÖJobTrackerµÄ´úÂ룬±©Â¶ÁËÁ½¸ö²ÎÊý£º
mapred.jobtracker.update.faulty.tracker.interval¿ØÖƺÚÃûµ¥ÖØÖÃʱ¼ä£¬Ä¬ÈÏÊÇ24Сʱ²»Äܸı䣬ÎÒÃÇÏÖÔڸijÉÁË1Сʱ¡£
mapred.jobtracker.max.blacklist.percent¿ØÖƽøÈëºÚÃûµ¥TTµÄ±ÈÀý£¬ÎÒÃǸijÉÁË0.2¡£
ÎÒÕýÔÚ²¹³äÕâÁ½¸ö²ÎÊýµÄTestCase£¬×¼±¸Ìá½»µ½trunkÖС£
12. ¶àÓÃhiveÉÙÓÃstreaming
ÓÉÓÚstreamingµÄ·½±ã¿ì½Ý£¬ÎÒÃÇ×öÁ˺ܶà»ùÓÚËüµÄ¿ª·¢¡£µ«ÊÇÓÉÓÚstreamingµÄÈÎÎñÔÚÔËÐÐʱ»¹ÒªÓÐÒ»¸öjava½ø³Ì¶Áдstdin/out£¬ÓÐÒ»¶¨µÄÐÔÄÜ¿ªÏú¡£
ÀàËÆµÄÐèÇó×îºÃ¸ÄÓÃ×Ô¶¨ÒåµÄDeserializer+hiveÀ´Íê³É¡£
ת×Ô:http://sinofool.net/blog/archives/81