¸üÐÂʱ¼ä:2018Äê10ÔÂ24ÈÕ15ʱ59·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
¡¡¡¡1¡¢¼ò´ð˵һÏÂhadoopµÄmap-reduce±à³ÌÄ£ÐÍ
¡¡¡¡Ê×ÏÈmap task»á´Ó±¾µØÎļþϵͳ¶ÁÈ¡Êý¾Ý£¬×ª»»³Ékey-valueÐÎʽµÄ¼üÖµ¶Ô¼¯ºÏ
¡¡¡¡Ê¹ÓõÄÊÇhadoopÄÚÖõÄÊý¾ÝÀàÐÍ£¬±ÈÈçlongwritable¡¢textµÈ
¡¡¡¡½«¼üÖµ¶Ô¼¯ºÏÊäÈëmapper½øÐÐÒµÎñ´¦Àí¹ý³Ì£¬½«Æäת»»³ÉÐèÒªµÄkey-valueÔÚÊä³ö
¡¡¡¡Ö®ºó»á½øÐÐÒ»¸öpartition·ÖÇø²Ù×÷£¬Ä¬ÈÏʹÓõÄÊÇhashpartitioner£¬¿ÉÒÔͨ¹ýÖØÐ´hashpartitionerµÄgetpartition·½·¨À´×Ô¶¨Òå·ÖÇø¹æÔò
¡¡¡¡Ö®ºó»á¶Ôkey½øÐнøÐÐsortÅÅÐò£¬grouping·Ö×é²Ù×÷½«ÏàͬkeyµÄvalueºÏ²¢·Ö×éÊä³ö£¬ÔÚÕâÀï¿ÉÒÔʹÓÃ×Ô¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬ÖØÐ´Writable ComparatorµÄComparator·½·¨À´×Ô¶¨ÒåÅÅÐò¹æÔò£¬ÖØÐ´RawComparatorµÄcompara·½·¨À´×Ô¶¨Òå·Ö×鹿Ôò
¡¡¡¡Ö®ºó½øÐÐÒ»¸öcombiner¹éÔ¼²Ù×÷£¬Æäʵ¾ÍÊÇÒ»¸ö±¾µØ¶ÎµÄreduceÔ¤´¦Àí£¬ÒÔ¼õСºóÃæshufleºÍreducerµÄ¹¤×÷Á¿
¡¡¡¡reduce task»áͨ¹ýÍøÂ罫¸÷¸öÊý¾ÝÊÕ¼¯½øÐÐreduce´¦Àí£¬×îºó½«Êý¾Ý±£´æ»òÕßÏÔʾ£¬½áÊøÕû¸öjob
¡¡¡¡2¡¢hadoopµÄTextInputFormat×÷ÓÃÊÇʲô£¬ÈçºÎ×Ô¶¨ÒåʵÏÖ
¡¡¡¡InputFormat»áÔÚmap²Ù×÷֮ǰ¶ÔÊý¾Ý½øÐÐÁ½·½ÃæµÄÔ¤´¦Àí
¡¡¡¡1ÊÇgetSplits£¬·µ»ØµÄÊÇInputSplitÊý×飬¶ÔÊý¾Ý½øÐÐsplit·ÖƬ£¬Ã¿Æ¬½»¸ømap²Ù×÷Ò»´Î
¡¡¡¡2ÊÇgetRecordReader£¬·µ»ØµÄÊÇRecordReader¶ÔÏ󣬶Ôÿ¸ösplit·ÖƬ½øÐÐת»»Îªkey-value¼üÖµ¶Ô¸ñʽ´«µÝ¸ømap
¡¡¡¡³£ÓõÄInputFormatÊÇTextInputFormat£¬Ê¹ÓõÄÊÇLineRecordReader¶Ôÿ¸ö·ÖƬ½øÐмüÖµ¶ÔµÄת»»£¬ÒÔÐÐÆ«ÒÆÁ¿×÷Ϊ¼ü£¬ÐÐÄÚÈÝ×÷Ϊֵ
¡¡¡¡×Ô¶¨ÒåÀà¼Ì³ÐInputFormat½Ó¿Ú£¬ÖØÐ´createRecordReaderºÍisSplitable·½·¨
¡¡¡¡ÔÚcreateRecordReaderÖпÉÒÔ×Ô¶¨Òå·Ö¸ô·û
¡¡¡¡3¡¢hadoopºÍsparkµÄ¶¼ÊDz¢ÐмÆË㣬ÄÇôËûÃÇÓÐʲôÏàͬºÍÇø±ð
¡¡¡¡Á½Õß¶¼ÊÇÓÃmrÄ£ÐÍÀ´½øÐв¢ÐмÆË㣬hadoopµÄÒ»¸ö×÷Òµ³ÆÎªjob£¬jobÀïÃæ·ÖΪmap taskºÍreduce task£¬Ã¿¸ötask¶¼ÊÇÔÚ×Ô¼ºµÄ½ø³ÌÖÐÔËÐе쬵±task½áÊøÊ±£¬½ø³ÌÒ²»á½áÊø
¡¡¡¡sparkÓû§Ìá½»µÄÈÎÎñ³ÉΪapplication£¬Ò»¸öapplication¶ÔÓ¦Ò»¸ösparkcontext£¬appÖдæÔÚ¶à¸öjob£¬Ã¿´¥·¢Ò»´Îaction²Ù×÷¾Í»á²úÉúÒ»¸öjob
¡¡¡¡ÕâЩjob¿ÉÒÔ²¢Ðлò´®ÐÐÖ´ÐУ¬Ã¿¸öjobÖÐÓжà¸östage£¬stageÊÇshuffle¹ý³ÌÖÐDAGSchadulerͨ¹ýRDDÖ®¼äµÄÒÀÀµ¹ØÏµ»®·Öjob¶øÀ´µÄ£¬Ã¿¸östageÀïÃæÓжà¸ötask£¬×é³ÉtasksetÓÐTaskSchaduler·Ö·¢µ½¸÷¸öexecutorÖÐÖ´ÐУ¬executorµÄÉúÃüÖÜÆÚÊǺÍappÒ»ÑùµÄ£¬¼´Ê¹Ã»ÓÐjobÔËÐÐÒ²ÊÇ´æÔڵģ¬ËùÒÔtask¿ÉÒÔ¿ìËÙÆô¶¯¶ÁÈ¡ÄÚ´æ½øÐмÆËã
¡¡¡¡hadoopµÄjobÖ»ÓÐmapºÍreduce²Ù×÷£¬±í´ïÄÜÁ¦±È½ÏǷȱ¶øÇÒÔÚmr¹ý³ÌÖлáÖØ¸´µÄ¶Áдhdfs£¬Ôì³É´óÁ¿µÄio²Ù×÷£¬¶à¸öjobÐèÒª×Ô¼º¹ÜÀí¹ØÏµ
¡¡¡¡sparkµÄµü´ú¼ÆËã¶¼ÊÇÔÚÄÚ´æÖнøÐеģ¬APIÖÐÌṩÁË´óÁ¿µÄRDD²Ù×÷Èçjoin£¬groupbyµÈ£¬¶øÇÒͨ¹ýDAGͼ¿ÉÒÔʵÏÖÁ¼ºÃµÄÈÝ´í
¡¡¡¡4¡¢ÎªÊ²Ã´ÒªÓÃflumeµ¼Èëhdfs£¬hdfsµÄ¹¹¼ÜÊÇÔõÑùµÄ
¡¡¡¡flume¿ÉÒÔʵʱµÄµ¼ÈëÊý¾Ýµ½hdfsÖУ¬µ±hdfsÉϵÄÎļþ´ïµ½Ò»¸öÖ¸¶¨´óСµÄʱºò»áÐγÉÒ»¸öÎļþ£¬»òÕß³¬¹ýÖ¸¶¨Ê±¼äµÄ»°Ò²ÐγÉÒ»¸öÎļþ
¡¡¡¡Îļþ¶¼ÊÇ´æ´¢ÔÚdatanodeÉÏÃæµÄ£¬namenode¼Ç¼×ÅdatanodeµÄÔªÊý¾ÝÐÅÏ¢£¬¶ønamenodeµÄÔªÊý¾ÝÐÅÏ¢ÊÇ´æÔÚÄÚ´æÖеģ¬ËùÒÔµ±ÎļþÇÐÆ¬ºÜС»òÕߺܶàµÄʱºò»á¿¨ËÀ
¡¡¡¡5¡¢map-reduce³ÌÐòÔËÐеÄʱºò»áÓÐʲô±È½Ï³£¼ûµÄÎÊÌâ
¡¡¡¡±ÈÈç˵×÷ÒµÖд󲿷ֶ¼Íê³ÉÁË£¬µ«ÊÇ×ÜÓм¸¸öreduceÒ»Ö±ÔÚÔËÐÐ
¡¡¡¡ÕâÊÇÒòΪÕ⼸¸öreduceÖеĴ¦ÀíµÄÊý¾ÝÒªÔ¶Ô¶´óÓÚÆäËûµÄreduce£¬¿ÉÄÜÊÇÒòΪ¶Ô¼üÖµ¶ÔÈÎÎñ»®·ÖµÄ²»¾ùÔÈÔì³ÉµÄÊý¾ÝÇãб
¡¡¡¡½â¾öµÄ·½·¨¿ÉÒÔÔÚ·ÖÇøµÄʱºòÖØÐ¶¨Òå·ÖÇø¹æÔò¶ÔÓÚvalueÊý¾ÝºÜ¶àµÄkey¿ÉÒÔ½øÐвð·Ö¡¢¾ùÔÈ´òÉ¢µÈ´¦Àí£¬»òÕßÊÇÔÚmap¶ËµÄcombinerÖнøÐÐÊý¾ÝÔ¤´¦ÀíµÄ²Ù×÷
¡¡¡¡6¡¢¼òµ¥ËµÒ»ÏÂhadoopºÍsparkµÄshuffle¹ý³Ì
¡¡¡¡hadoop£ºmap¶Ë±£´æ·ÖƬÊý¾Ý£¬Í¨¹ýÍøÂçÊÕ¼¯µ½reduce¶Ë
¡¡¡¡spark£ºsparkµÄshuffleÊÇÔÚDAGSchedular»®·ÖStageµÄʱºò²úÉúµÄ£¬TaskScheduleÒª·Ö·¢Stageµ½¸÷¸öworkerµÄexecutor£¬¼õÉÙshuffle¿ÉÒÔÌá¸ßÐÔÄÜ
¡¡¡¡7¡¢HiveÖдæ·ÅÊÇʲô?
¡¡¡¡±í(Êý¾Ý+ÔªÊý¾Ý)¡£ ´æµÄÊǺÍhdfsµÄÓ³Éä¹ØÏµ£¬hiveÊÇÂß¼ÉϵÄÊý¾Ý²Ö¿â£¬Êµ¼Ê²Ù×÷µÄ¶¼ÊÇhdfsÉϵÄÎļþ£¬HQL¾ÍÊÇÓÃsqlÓï·¨À´Ð´µÄmr³ÌÐò¡£
¡¡¡¡8¡¢HiveÓë¹ØÏµÐÍÊý¾Ý¿âµÄ¹ØÏµ?
¡¡¡¡Ã»ÓйØÏµ£¬hiveÊÇÊý¾Ý²Ö¿â£¬²»ÄܺÍÊý¾Ý¿âÒ»Ñù½øÐÐʵʱµÄCURD²Ù×÷¡£
¡¡¡¡ÊÇÒ»´ÎдÈë¶à´Î¶ÁÈ¡µÄ²Ù×÷£¬¿ÉÒÔ¿´³ÉÊÇETL¹¤¾ß¡£
¡¡¡¡9¡¢Flume¹¤×÷»úÖÆÊÇʲô?
¡¡¡¡ºËÐĸÅÄîÊÇagent£¬ÀïÃæ°üÀ¨source¡¢chanelºÍsinkÈý¸ö×é¼þ¡£
¡¡¡¡sourceÔËÐÐÔÚÈÕÖ¾ÊÕ¼¯½Úµã½øÐÐÈÕÖ¾²É¼¯£¬Ö®ºóÁÙʱ´æ´¢ÔÚchanelÖУ¬sink¸ºÔð½«chanelÖеÄÊý¾Ý·¢Ë͵½Ä¿µÄµØ¡£
¡¡¡¡Ö»Óгɹ¦·¢ËÍÖ®ºóchanelÖеÄÊý¾Ý²Å»á±»É¾³ý¡£
¡¡¡¡Ê×ÏÈÊéдflumeÅäÖÃÎļþ£¬¶¨Òåagent¡¢source¡¢chanelºÍsinkÈ»ºó½«Æä×é×°£¬Ö´ÐÐflume-ngÃüÁî¡£
¡¡¡¡10¡¢Sqoop¹¤×÷ÔÀíÊÇʲô?
¡¡¡¡hadoopÉú̬ȦÉϵÄÊý¾Ý´«Ê乤¾ß¡£
¡¡¡¡¿ÉÒÔ½«¹ØÏµÐÍÊý¾Ý¿âµÄÊý¾Ýµ¼Èë·Ç½á¹¹»¯µÄhdfs¡¢hive»òÕßbbaseÖУ¬Ò²¿ÉÒÔ½«hdfsÖеÄÊý¾Ýµ¼³öµ½¹ØÏµÐÍÊý¾Ý¿â»òÕßÎı¾ÎļþÖС£
¡¡¡¡Ê¹ÓõÄÊÇmr³ÌÐòÀ´Ö´ÐÐÈÎÎñ£¬Ê¹ÓÃjdbcºÍ¹ØÏµÐÍÊý¾Ý¿â½øÐн»»¥¡£
¡¡¡¡importÔÀí£ºÍ¨¹ýÖ¸¶¨µÄ·Ö¸ô·û½øÐÐÊý¾ÝÇз֣¬½«·ÖƬ´«Èë¸÷¸ömapÖУ¬ÔÚmapÈÎÎñÖÐÔÚÿÐÐÊý¾Ý½øÐÐдÈë´¦ÀíûÓÐreduce¡£
¡¡¡¡exportÔÀí£º¸ù¾ÝÒª²Ù×÷µÄ±íÃûÉú³ÉÒ»¸öjavaÀ࣬²¢¶ÁÈ¡ÆäÔªÊý¾ÝÐÅÏ¢ºÍ·Ö¸ô·û¶Ô·Ç½á¹¹»¯µÄÊý¾Ý½øÐÐÆ¥Å䣬¶à¸ömap×÷ҵͬʱִÐÐдÈë¹ØÏµÐÍÊý¾Ý¿â
¡¡¡¡11¡¢HbaseÐн¡ÁÐ×åµÄ¸ÅÄÎïÀíÄ£ÐÍ£¬±íµÄÉè¼ÆÔÔò?
¡¡¡¡Ðн¡£ºÊÇhbase±í×Ô´øµÄ£¬Ã¿¸öÐн¡¶ÔÓ¦Ò»ÌõÊý¾Ý¡£
¡¡¡¡ÁÐ×壺ÊÇ´´½¨±íʱָ¶¨µÄ£¬ÎªÁеļ¯ºÏ£¬Ã¿¸öÁÐ×å×÷Ϊһ¸öÎļþµ¥¶À´æ´¢£¬´æ´¢µÄÊý¾Ý¶¼ÊÇ×Ö½ÚÊý×飬ÆäÖеÄÊý¾Ý¿ÉÒÔÓкܶ࣬ͨ¹ýʱ¼ä´ÁÀ´Çø·Ö¡£
¡¡¡¡ÎïÀíÄ£ÐÍ£ºÕû¸öhbase±í»á²ð·ÖΪ¶à¸öregion£¬Ã¿¸öregion¼Ç¼×ÅÐн¡µÄÆðʼµã±£´æÔÚ²»Í¬µÄ½ÚµãÉÏ£¬²éѯʱ¾ÍÊǶԸ÷¸ö½ÚµãµÄ²¢Ðвéѯ£¬µ±regionºÜ´óʱʹÓÃ.META±í´æ´¢¸÷¸öregionµÄÆðʼµã£¬-ROOTÓÖ¿ÉÒÔ´æ´¢.METAµÄÆðʼµã¡£
¡¡¡¡rowkeyµÄÉè¼ÆÔÔò£º¸÷¸öÁдØÊý¾Ýƽºâ£¬³¤¶ÈÔÔò¡¢ÏàÁÚÔÔò£¬´´½¨±íµÄʱºòÉèÖñí·ÅÈëregionserver»º´æÖУ¬±ÜÃâ×Ô¶¯Ôö³¤ºÍʱ¼ä£¬Ê¹ÓÃ×Ö½ÚÊý×é´úÌæstring£¬×î´ó³¤¶È64kb£¬×îºÃ16×Ö½ÚÒÔÄÚ£¬°´Ìì·Ö±í£¬Á½¸ö×Ö½ÚÉ¢ÁУ¬Ëĸö×ֽڴ洢ʱ·ÖºÁÃë¡£
¡¡¡¡ÁÐ×åµÄÉè¼ÆÔÔò£º¾¡¿ÉÄÜÉÙ(°´ÕÕÁÐ×å½øÐд洢£¬°´ÕÕregion½øÐжÁÈ¡£¬²»±ØÒªµÄio²Ù×÷)£¬¾³£ºÍ²»¾³£Ê¹ÓõÄÁ½ÀàÊý¾Ý·ÅÈ벻ͬÁÐ×åÖУ¬ÁÐ×åÃû×Ö¾¡¿ÉÄ̡ܶ£
¡¡¡¡12¡¢combinerºÍpartitionµÄ×÷ÓÃ
¡¡¡¡combinerÊÇreduceµÄʵÏÖ£¬ÔÚmap¶ËÔËÐмÆËãÈÎÎñ£¬¼õÉÙmap¶ËµÄÊä³öÊý¾Ý¡£
¡¡¡¡×÷ÓþÍÊÇÓÅ»¯¡£
¡¡¡¡µ«ÊÇcombinerµÄʹÓó¡¾°ÊÇmapreduceµÄmapÊä³ö½á¹ûºÍreduceÊäÈëÊä³öÒ»Ñù¡£
¡¡¡¡partitionµÄĬÈÏʵÏÖÊÇhashpartition£¬ÊÇmap¶Ë½«Êý¾Ý°´ÕÕreduce¸öÊýÈ¡Ó࣬½øÐзÖÇø£¬²»Í¬µÄreduceÀ´copy×Ô¼ºµÄÊý¾Ý¡£
¡¡¡¡partitionµÄ×÷ÓÃÊǽ«Êý¾Ý·Öµ½²»Í¬µÄreduce½øÐмÆË㣬¼Ó¿ì¼ÆËãЧ¹û
¡¡¡¡13¡¢mllibÖ§³ÖµÄËã·¨?
¡¡¡¡´óÌå·ÖΪËÄ´óÀ࣬·ÖÀà¡¢¾ÛÀà¡¢»Ø¹é¡¢Ðͬ¹ýÂË¡£
¡¡¡¡15¡¢Hadoopƽ̨¼¯ÈºÅäÖᢻ·¾³±äÁ¿ÉèÖÃ?
¡¡¡¡zookeeper£ºÐÞ¸Äzoo.cfgÎļþ£¬ÅäÖÃdataDir£¬ºÍ¸÷¸özk½ÚµãµÄserverµØÖ·¶Ë¿Ú£¬tickTimeÐÄÌøÊ±¼äĬÈÏÊÇ2000ms£¬ÆäËû³¬Ê±µÄʱ¼ä¶¼ÊÇÒÔÕâ¸öΪ»ù´¡µÄÕûÊý±¶£¬Ö®ºóÔÙdataDir¶ÔӦĿ¼ÏÂдÈëmyidÎļþºÍzoo.cfgÖеÄserverÏà¶ÔÓ¦¡£
¡¡¡¡hadoop£ºÐÞ¸Ä
¡¡¡¡hadoop-env.shÅäÖÃjava»·¾³±äÁ¿
¡¡¡¡core-site.xmlÅäÖÃzkµØÖ·£¬ÁÙʱĿ¼µÈ
¡¡¡¡hdfs-site.xmlÅäÖÃnnÐÅÏ¢£¬rpcºÍhttpͨÐŵØÖ·£¬nn×Ô¶¯Çл»¡¢zkÁ¬½Ó³¬Ê±Ê±¼äµÈ
¡¡¡¡yarn-site.xmlÅäÖÃresourcemanagerµØÖ·
¡¡¡¡mapred-site.xmlÅäÖÃʹÓÃyarn
¡¡¡¡slavesÅäÖýڵãÐÅÏ¢
¡¡¡¡¸ñʽ»¯nnºÍzk¡£
¡¡¡¡hbase£ºÐÞ¸Ä
¡¡¡¡hbase-env.shÅäÖÃjava»·¾³±äÁ¿ºÍÊÇ·ñʹÓÃ×Ô´øµÄzk
¡¡¡¡hbase-site.xmlÅäÖÃhdfsÉÏÊý¾Ý´æ·Å·¾¶£¬zkµØÖ·ºÍͨѶ³¬Ê±Ê±¼ä¡¢master½Úµã
¡¡¡¡regionserversÅäÖø÷¸öregion½Úµã
¡¡¡¡zoo.cfg¿½±´µ½confĿ¼ÏÂ
¡¡¡¡spark£º
¡¡¡¡°²×°Scala
¡¡¡¡ÐÞ¸Äspark-env.shÅäÖû·¾³±äÁ¿ºÍmasterºÍworker½ÚµãÅäÖÃÐÅÏ¢
¡¡¡¡»·¾³±äÁ¿µÄÉèÖãºÖ±½ÓÔÚ/etc/profileÖÐÅäÖð²×°µÄ·¾¶¼´¿É£¬»òÕßÔÚµ±Ç°Óû§µÄËÞÖ÷Ŀ¼Ï£¬ÅäÖÃÔÚ.bashrcÎļþÖУ¬¸ÃÎļþ²»ÓÃsourceÖØÐ´ò¿ªshell´°¿Ú¼´¿É£¬ÅäÖÃÔÚ.bash_profileµÄ»°Ö»¶Ôµ±Ç°Óû§ÓÐЧ¡£
¡¡¡¡16¡¢HadoopÐÔÄܵ÷ÓÅ?
¡¡¡¡µ÷ÓÅ¿ÉÒÔͨ¹ýϵͳÅäÖᢳÌÐò±àдºÍ×÷Òµµ÷¶ÈËã·¨À´½øÐС£
¡¡¡¡hdfsµÄblock.size¿ÉÒÔµ÷µ½128/256(ÍøÂçºÜºÃµÄÇé¿öÏ£¬Ä¬ÈÏΪ64)
¡¡¡¡µ÷ÓŵĴóÍ·£ºmapred.map.tasks¡¢mapred.reduce.tasksÉèÖÃmrÈÎÎñÊý(ĬÈ϶¼ÊÇ1)
¡¡¡¡mapred.tasktracker.map.tasks.maximumÿ̨»úÆ÷ÉϵÄ×î´ómapÈÎÎñÊý
¡¡¡¡mapred.tasktracker.reduce.tasks.maximumÿ̨»úÆ÷ÉϵÄ×î´óreduceÈÎÎñÊý
¡¡¡¡mapred.reduce.slowstart.completed.mapsÅäÖÃreduceÈÎÎñÔÚmapÈÎÎñÍê³Éµ½°Ù·ÖÖ®¼¸µÄʱºò¿ªÊ¼½øÈë
¡¡¡¡Õâ¸ö¼¸¸ö²ÎÊýÒª¿´Êµ¼Ê½ÚµãµÄÇé¿ö½øÐÐÅäÖã¬reduceÈÎÎñÊÇÔÚ33%µÄʱºòÍê³Écopy£¬ÒªÔÚÕâ֮ǰÍê³ÉmapÈÎÎñ£¬(map¿ÉÒÔÌáǰÍê³É)
¡¡¡¡mapred.compress.map.output,mapred.output.compressÅäÖÃѹËõÏÏûºÄcpuÌáÉýÍøÂçºÍ´ÅÅÌio
¡¡¡¡ºÏÀíÀûÓÃcombiner
¡¡¡¡×¢ÒâÖØÓÃwritable¶ÔÏó
¡¡¡¡17¡¢Hadoop¸ß²¢·¢?
¡¡¡¡Ê×Ïȿ϶¨Òª±£Ö¤¼¯ÈºµÄ¸ß¿É¿¿ÐÔ£¬Ôڸ߲¢·¢µÄÇé¿öϲ»»á¹Òµô£¬Ö§³Å²»×¡¿ÉÒÔͨ¹ýºáÏòÀ©Õ¹¡£
¡¡¡¡datanode¹ÒµôÁËʹÓÃhadoop½Å±¾ÖØÐÂÆô¶¯¡£
¡¡¡¡21¡¢map-reduce³ÌÐòÔËÐеÄʱºò»áÓÐʲô±È½Ï³£¼ûµÄÎÊÌâ?
¡¡¡¡±ÈÈç˵×÷ÒµÖд󲿷ֶ¼Íê³ÉÁË£¬µ«ÊÇ×ÜÓм¸¸öreduceÒ»Ö±ÔÚÔËÐС£
¡¡¡¡ÕâÊÇÒòΪÕ⼸¸öreduceÖеĴ¦ÀíµÄÊý¾ÝÒªÔ¶Ô¶´óÓÚÆäËûµÄreduce£¬¿ÉÄÜÊÇÒòΪ¶Ô¼üÖµ¶ÔÈÎÎñ»®·ÖµÄ²»¾ùÔÈÔì³ÉµÄÊý¾ÝÇãб¡£
¡¡¡¡½â¾öµÄ·½·¨¿ÉÒÔÔÚ·ÖÇøµÄʱºòÖØÐ¶¨Òå·ÖÇø¹æÔò¶ÔÓÚvalueÊý¾ÝºÜ¶àµÄkey¿ÉÒÔ½øÐвð·Ö¡¢¾ùÔÈ´òÉ¢µÈ´¦Àí£¬»òÕßÊÇÔÚmap¶ËµÄcombinerÖнøÐÐÊý¾ÝÔ¤´¦ÀíµÄ²Ù×÷¡£
×÷ÕߣºÀÖÓã²¥¿Í´óÊý¾ÝÅàѵѧԺ
Ê×·¢£ºhttp://cloud.itcast.cn
2019°æ´óÊý¾Ýѧϰ·Ïßͼ(º¬´ó¸Ù+ÊÓÆµ+¹¤¾ß+½Ì²Ä+ÃæÊÔ)
2018-05-14ÔÆ¼ÆËã´óÊý¾Ý£ºsparkÓëstorm±È¶ÔÓëÑ¡ÐÍ
2018-01-23¡¾ÔƼÆËã´óÊý¾Ý¡¿JavaÃæÊÔÌâÖ®Êý¾Ý¿âÈý·¶Ê½ÊÇʲô
2018-01-10ÔÆ¼ÆËãÃæÊÔÌâÖ®Request¶ÔÏóµÄÖ÷Òª·½·¨
2018-01-05ÔÆ¼ÆËã´óÊý¾Ý£ºÆóÒµÖд¦ÀíÊý¾ÝµÄÁ½ÖÖÖ÷Òª·½Ê½
2018-01-05ÔÆ¼ÆËã´óÊý¾Ý£ºÊý¾Ý²Ö¿â½¨Ä£
2017-12-19
±±¾©Ð£Çø