StringBuffer¾¡Á¿ÉÙʹÓöà¸öappend·½·¨£¬Êʵ±Ê¹ÓÃ+
3. ʹÓÃDistributedCache¼ÓÔØÎļþ
±ÈÈçÅäÖÃÎļþ£¬´Êµä£¬¹²ÏíÎļþ£¬±ÜÃâʹÓÃstatic±äÁ¿
4. ³ä·ÖʹÓÃCombiner Parttitioner Comparator¡£ Combiner : ¶ÔmapÈÎÎñ½øÐб¾µØ¾ÛºÏ
Parttitioner £º ºÏÊʵÄParttitioner±ÜÃâreduce¶Ë¸ºÔز»¾ù Comparator £º ¶þ´ÎÅÅÐò
±ÈÈçÇóÿÌìµÄ×î´óÆøÎ£¬map½á¹ûΪÈÕÆÚ£ºÆøÎ£¬ÈôÆøÎÂÊǽµÐòµÄ£¬Ö±½ÓÈ¡ÁбíÊ×ÔªËØ¼´¿É
5. ʹÓÃ×Ô¶¨ÒåInputFormatºÍOutputFormat
6. MRÓ¦±ÜÃâ
?
¾²Ì¬±äÁ¿£º²»ÄÜÓÃÓÚ¼ÆÊý£¬Ó¦Ê¹ÓÃCounter
? ?
´ó¶ÔÏó£ºMap List
? ?
µÝ¹é£º±ÜÃâµÝ¹éÉî¶È¹ý´ó
? ?
³¬³¤ÕýÔò±í´ïʽ£ºÏûºÄÐÔÄÜ£¬ÒªÔÚmap»òreduceº¯ÊýÍâ±àÒëÕýÔò±í´ïʽ
? ?
²»Òª´´½¨±¾µØÎļþ£º±äÏòµÄ°ÑHDFSÀïÃæµÄÊý¾Ý×ªÒÆµ½TaskTracker£¬Õ¼ÓÃÍøÂç´ø¿í
? ?
²»Òª´óÁ¿´´½¨Ä¿Â¼ºÍÎļþ
? ?
²»Òª´óÁ¿Ê¹ÓÃSystem.out.println£¬¶øÊ¹ÓÃLogger
? ?
²»Òª×Ô¶¨Òå¹ý¶àµÄCounter£¬×îºÃ²»Òª³¬¹ý100¸ö
? ?
²»ÒªÅäÖùý´óÄڴ棬mapred.child.java.opts -Xmx2000mÊÇÓÃÀ´ÉèÖÃmapreduceÈÎÎñʹÓõÄ×î´óheapÁ¿
?
7.¹ØÓÚmapµÄÊýÄ¿
mapÊýÄ¿¹ý´ó[´´½¨ºÍ³õʼ»¯mapµÄ¿ªÏú]£¬Ò»°ãÊÇÓÉ´óÁ¿Ð¡ÎļþÔì³ÉµÄ£¬»òÕßdfs.block.sizeÉèÖõÄ̫С£¬¶ÔÓÚСÎļþ¿ÉÒÔarchiveÎļþ»òÕßHadoop fs -mergeºÏ²¢³ÉÒ»¸ö´óÎļþ. mapÊýÄ¿¹ýÉÙ£¬Ôì³Éµ¥¸ömapÈÎÎñÖ´ÐÐʱ¼ä¹ý³¤£¬Æµ·±ÍƲâÖ´ÐУ¬ÇÒÈÝÒ×ÄÚ´æÒç³ö£¬²¢ÐÐÐÔÓÅÊÆ²»ÄÜÌåÏÖ³öÀ´¡£dfs.block.sizeÒ»°ãΪ256M-512M
ѹËõµÄText ÎļþÊDz»Äܱ»·Ö¸îµÄ£¬ËùÒÔ¾¡Á¿Ê¹ÓÃSequenceFile£¬¿ÉÒÔÇзÖ
8.¹ØÓÚreduceµÄÊýÄ¿
reduceÊýÄ¿¹ý´ó£¬²úÉú´óÁ¿µÄСÎļþ£¬ÏûºÄ´óÁ¿²»±ØÒªµÄ×ÊÔ´£¬reduceÊýÄ¿¹ýµÍÄØ£¬Ôì³ÉÊý¾ÝÇãбÎÊÌ⣬ÇÒͨ³£²»ÄÜͨ¹ýÐ޸IJÎÊý¸Ä±ä¡£
¿ÉÑ¡·½°¸£ºmapred.reduce.tasksÉèΪ-1±ä³ÉAutoReduce¡£
KeyµÄ·Ö²¼£¬Ò²ÔÚijÖ̶ֳÈÉϾö¶¨ÁËReduceÊýÄ¿£¬ËùÒÔÒª¸ù¾ÝKeyµÄÌØµãÉè¼ÆÏà¶ÔÓ¦µÄParttitioner ±ÜÃâÊý¾ÝÇãб
9.Map-sideÏà¹Ø²ÎÊýÓÅ»¯
io.sort.mb£¨100MB£©£ºÍ¨³£k¸ömap tasks»á¶ÔÓ¦Ò»¸öbuffer£¬bufferÖ÷ÒªÓÃÀ´»º´æmap²¿·Ö¼ÆËã½á¹û£¬²¢×öһЩԤÅÅÐòÌá¸ßmapÐÔÄÜ£¬ÈômapÊä³ö½á¹û½Ï´ó£¬¿ÉÒÔµ÷¸ßÕâ¸ö²ÎÊý£¬¼õÉÙmapÈÎÎñ½øÐÐspillÈÎÎñ¸öÊý£¬½µµÍ I/OµÄ²Ù×÷´ÎÊý¡£ÈômapÈÎÎñµÄÆ¿¾±ÔÚI/OµÄ»°£¬ÄÇô½«»á´ó´óÌá¸ßmapÐÔÄÜ¡£ÈçºÎÅжÏmapÈÎÎñµÄÆ¿¾±£¿
io.sort.spill.percent(0.8)£ºspill²Ù×÷¾ÍÊǵ±ÄÚ´æbuffer³¬¹ýÒ»¶¨ãÐÖµ£¨ÕâÀïͨ³£Êǰٷֱȣ©µÄʱºò£¬»á½«bufferÖеÃÊý¾Ýдµ½DiskÖС£¶ø²»ÊǵÈbufferÂúºóÔÚspill£¬·ñÔò»áÔì³ÉmapµÄ¼ÆËãÈÎÎñµÈ´ýbufferµÄÊÍ·Å¡£Ò»°ãÀ´Ëµ£¬µ÷Õû io.sort.mb¶ø²»ÊÇÕâ¸ö²ÎÊý¡£
io.sort.factor£¨10£©£ºmapÈÎÎñ»á²úÉúºÜ¶àµÄspillÎļþ£¬¶ømapÈÎÎñÔÚÕý³£Í˳ö֮ǰ»á½«ÕâЩspillÎļþºÏ²¢³ÉÒ»¸öÎļþ£¬¼´merger¹ý³Ì£¬È±Ê¡ÊÇÒ»´ÎºÏ²¢10¸ö²ÎÊý£¬µ÷´óio.sort.factor£¬¼õÉÙmergeµÄ´ÎÊý£¬¼õÉÙDisk I/O²Ù×÷£¬Ìá¸ßmapÐÔÄÜ¡£
min.num.spill.for.combine£ºÍ¨³£ÎªÁ˼õÉÙmapºÍreduceÊý¾Ý´«ÊäÁ¿£¬ÎÒÃÇ»áÖÆ¶¨Ò»¸ö
combiner£¬½«map½á¹û½øÐб¾µØ¾Û¼¯¡£ÕâÀïcombiner¿ÉÄÜÔÚmerger֮ǰ£¬Ò²¿ÉÄÜÔÚÆäÖ®ºó¡£ÄÇôʲôʱºòÔÚÆäÖ®Ç°ÄØ£¿µ±spill¸öÊýÖÁÉÙΪmin.num.spill.for.combineÖ¸¶¨µÄÊýĿʱͬʱ³ÌÐòÖ¸¶¨ÁËCombiner£¬Combiner»áÔÚÆä֮ǰÔËÐУ¬¼õÉÙдÈëµ½DiskµÄÊý¾ÝÁ¿£¬¼õÉÙI/O´ÎÊý¡£
10.ѹËõ£¨Ê±¼ä»»¿Õ¼ä£©
MRÖеÄÊý¾ÝÎÞÂÛÊÇÖмäÊý¾Ý»¹ÊÇÊäÈëÊä³ö½á¹û¶¼ÊǾ޴óµÄ£¬Èô²»Ê¹ÓÃѹËõ²»½öÀË·Ñ´ÅÅ̿ռäÇÒ»áÏûºÄ´óÁ¿ÍøÂç´ø¿í¡£Í¬ÑùÔÚspill£¬merge£¨reduceÒ²¶ÔÓÐÒ»¸ömerge£©Òà¿ÉÒÔʹÓÃѹËõ¡£ÈôÏëÔÚcpuʱ¼äºÍѹËõ±ÈÖ®¼äѰÕÒÒ»¸öƽºâ£¬LzoCodec±È½ÏÊʺϡ£Í¨³£MRÈÎÎñµÄÆ¿¾±²»ÔÚCPU¶øÔÚÓÚI/O£¬ËùÒԴ󲿷ֵÄMRÈÎÎñ¶¼ÊʺÏʹÓÃѹËõ¡£
11. reduce-sideÏà¹Ø²ÎÊýÓÅ»¯
reduce£ºcopy->sort->reduce£¬Ò²³Æshuffle
mapred.reduce.parellel.copies£¨5£©£ºÈÎÒ»¸ömapÈÎÎñ¿ÉÄܰüº¬Ò»¸ö»òÕß¶à¸öreduceËùÐèÒªÊý¾Ý£¬¹ÊÒ»¸ömapÈÎÎñÍê³Éºó£¬ÏàÓ¦µÄreduce¾Í»áÁ¢¼´Æô¶¯Ïß³ÌÏÂÔØ×Ô¼ºËùÐèÒªµÄÊý¾Ý¡£µ÷´óÕâ¸ö²ÎÊý±È½ÏÊʺÏmapÈÎÎñ±È½Ï¶àÇÒÍê³Éʱ¼ä±È½Ï¶ÌµÄJob¡£
mapred.reduce.copy.backoff£ºreduce¶Ë´Ómap¶ËÏÂÔØÊý¾ÝÒ²ÓпÉÄÜÓÉÓÚÍøÂç¹ÊÕÏ£¬map¶Ë»úÆ÷¹ÊÕ϶øÊ§°Ü¡£ÄÇôreduceÏÂÔØÏ߳̿϶¨²»»áÎÞÏ޵ȴý£¬µ±µÈ´ýʱ¼ä³¬¹ý
mapred.reduce.copy.backoffʱ£¬±ã·ÅÆú£¬³¢ÊÔ´ÓÆäËûµØ·½ÏÂÔØ¡£Ðè×¢Ò⣺ÔÚÍøÂçÇé¿ö±È½Ï²îµÄ»·¾³£¬ÎÒÃÇÐèÒªµ÷´óÕâ¸ö²ÎÊý£¬±ÜÃâreduceÏÂÔØÏ̱߳»ÎóÅÐΪʧ°Ü¡£
io.sort.factor£ºrecude½«map½á¹ûÏÂÔØµ½±¾µØÊ±£¬ÒàÐèÒªmerge£¬Èç¹ûreduceµÄÆ¿¾±ÔÚÓÚI/O£¬¿É³¢ÊÔµ÷¸ßÔö¼ÓmergeµÄ²¢·¢ÍÌÍ£¬Ìá¸ßreduceÐÔÄÜ¡¢
mapred.job.shuffle.input.buffer.percent£¨0.7£©£ºreduce´ÓmapÏÂÔØµÄÊý¾Ý²»»áÁ¢¿Ì¾Íдµ½DiskÖУ¬¶øÊÇÏÈ»º´æÔÚÄÚ´æÖУ¬mapred.job.shuffle.input.buffer.percentÖ¸¶¨ÄÚ´æµÄ¶àÉÙ±ÈÀýÓÃÓÚ»º´æÊý¾Ý£¬ÄÚ´æ´óС¿Éͨ¹ýmapred.child.java.optsÀ´ÉèÖ᣺ÍmapÀàËÆ£¬buffer²»Êǵȵ½Ð´Âú²ÅÍù´ÅÅÌÖÐд£¬Ò²Êǵ½´ïãÐÖµ¾Íд£¬ãÐÖµÓÉmapred.job,shuffle.merge.percentÀ´Ö¸¶¨¡£ÈôReduceÏÂÔØËٶȺܿ죬ÈÝÒ×ÄÚ´æÒç³ö£¬Êʵ±Ôö´óÕâ¸ö²ÎÊý¶ÔÔö¼ÓreduceÐÔÄÜÓÐЩ°ïÖú¡£ mapred.job.reduce.input.buffer.percent (0)£ºµ±ReduceÏÂÔØmapÊý¾ÝÍê³ÉÖ®ºó£¬¾Í»á¿ªÊ¼ÕæÕýµÄreduceµÄ¼ÆË㣬reduceµÄ¼ÆËã±ØÈ»Ò²ÊÇÒªÏûºÄÄÚ´æµÄ£¬ÄÇôÔÚ¶ÁÎïreduceËùÐèÒªµÄÊý¾Ýʱ£¬Í¬ÑùÐèÒªÄÚ´æ×÷Ϊbuffer£¬Õâ¸ö²ÎÊýÊǾö¶¨¶àÉÙµÄÄÚ´æ°Ù·Ö±È×÷Ϊbuffer¡£Ä¬ÈÏΪ0£¬Ò²¾ÍÊÇ˵reduceÈ«²¿´Ó´ÅÅ̶ÁÊý¾Ý¡£Èôredcue¼ÆËãÈÎÎñÏûºÄÄÚ´æºÜС£¬ÄÇô¿ÉÒÔÉèÖÃÕâ¸ö²ÎÊý´óÓÚ0£¬Ê¹Ò»²¿·ÖÄÚ´æÓÃÀ´»º´æÊý¾Ý¡£
5¡¢HbaseÄÚ²¿ÊÇʲô»úÖÆ£¿
ÉîÈë·ÖÎöHBase RPC(Protobuf)ʵÏÖ»úÖÆ
Binospace 2013-08-02 2730 ÔĶÁ
±³¾°
ÔÚHMaster¡¢RegionServerÄÚ²¿£¬´´½¨ÁËRpcServerʵÀý£¬²¢ÓëClientÈýÕßÖ®¼äʵÏÖÁËRpcµ÷Óã¬HBase0.95ÄÚ²¿ÒýÈëÁËGoogle-Protobuf×÷ΪÖмäÊý¾Ý×éÖ¯·½Ê½£¬²¢ÔÚProtobufÌṩµÄRpc½Ó¿ÚÖ®ÉÏ£¬ÊµÏÖÁË»ùÓÚ·þÎñµÄRpc
Ïà¹ØÍÆ¼ö£º