µÚ11Õ ´óÊý¾Ý´¦Àí
¼òµ¥½éÉܳ£¼ûµÄ´óÊý¾Ý´¦Àí¿ò¼Ü¡£ ´ð£ºÖ÷ÒªÓÐÈýÖÖ£¬
?MapReduce£º·Ö²¼Ê½¼ÆËã¿ò¼Ü£¬¿ÉÒÔ½«µ¥¸ö´óÐͼÆËã×÷Òµ·ÖÅ䏸¶ą̀¼ÆËã»úÖ´ÐУ¬¿ÉÒÔÔÚ¶Ìʱ¼äÄÚÍê³É´óÁ¿¹¤×÷£¬ÓÈÆäÊʺÏÊýÖµÐÍºÍ±ê³ÆÐÍÊý¾Ý£¬µ«ÐèÒª¶ÔÐÐÒµÁìÓò¾ßÓÐÒ»¶¨Àí½âºóÖØÐ´Ëã·¨À´Íê³ÉÌØ¶¨µÄÒµÎñ´¦ÀíÒªÇó¡£MapReduceµÄÃû×ÖÓɺ¯Êýʽ±à³ÌÖг£ÓõÄmapºÍreduceÁ½¸öµ¥´Ê×é³É¡£MapReduceÔÚ´óÁ¿½Úµã×é³ÉµÄ¼¯ÈºÉÏÔËÐУ¬¹¤×÷Á÷³ÌÊÇ£ºµ¥¸ö×÷Òµ±»·Ö³ÉºÜ¶àС·Ý£¬ÊäÈëÊý¾ÝÒ²±»ÇÐÆ¬²¢·Ö·¢µ½Ã¿¸ö½Úµã£¬Ã¿¸ö½ÚµãÖ»ÔÚ±¾µØÊý¾ÝÉÏ×öÔËË㣬¶ÔÓ¦µÄÔËËã´úÂë³ÆÎªmapper£¬Õâ¸ö¹ý³Ì¼´map½×¶Î£»Ã¿¸ömapperµÄÊä³öͨ¹ýijÖÖ·½Ê½×éºÏ£¬¸ù¾ÝÐèÒª¿ÉÄÜÔÙ½øÐÐÖØÐÂÅÅÐò£¬ÅÅÐòºóµÄ½á¹ûÔÙ±»ÇзֳÉС·Ý²¢·Ö·¢µ½¸÷¸ö½Úµã½øÐÐÏÂÒ»²½´¦Àí£¬Õâ¸ö¹ý³Ì±»³ÆÎªreduce½×¶Î£¬¶ÔÓ¦µÄ´úÂë³ÆÎªreducer¡£²»Í¬ÀàÐ͵Ä×÷Òµ¿ÉÄÜÐèÒª²»Í¬ÊýÁ¿µÄreducer£¬²¢ÇÒ£¬ÔÚÈκÎʱºò£¬Ã¿¸ömapper»òreducerÖ®¼ä¶¼²»½øÐÐͨÐÅ£¬Ã¿¸ö½ÚµãÖ»¸ºÔð´¦Àí×Ô¼ºµÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚ·ÖÅäµ½±¾µØµÄÊý¾Ý¼¯ÉϽøÐÐÔËËã¡£
?Hadoop£ºHadoopÊÇMapReduce¿ò¼ÜµÄÒ»¸öÃâ·Ñ¿ªÔ´ÊµÏÖ£¬²ÉÓÃJavaÓïÑÔ±àд£¬Ö§³ÖÔÚ´óÁ¿»úÆ÷ÉÏ·Ö²¼Ê½´¦ÀíÊý¾Ý¡£³ýÁË·Ö²¼Ê½¼ÆËãÖ®Í⣬Hadoop»¹×Ô´ø·Ö²¼Ê½Îļþϵͳ£¬¿ÉÒÔÔÚÉÏÃæÔËÐжàÖÖ²»Í¬ÓïÑÔ±àдµÄ·Ö²¼Ê½³ÌÐò¡£HadoopÔÚ¿ÉÉìËõÐÔ¡¢½¡×³ÐÔ¡¢¼ÆËãÐÔÄܺͳɱ¾ÉϾßÓÐÎÞ¿ÉÌæ´úµÄÓÅÊÆ£¬ÊÂʵÉÏÒѳÉΪµ±Ç°»¥ÁªÍøÆóÒµÖ÷Á÷µÄ´óÊý¾Ý·ÖÎöƽ̨¡£
?Spark£ºSparkÊÇÒ»¸öÕë¶Ô³¬´óÊý¾Ý¼¯ºÏµÄµÍÑÓ³Ù¼¯Èº·Ö²¼Ê½¼ÆËãϵͳ£¬±ÈMapReduce¿ì40±¶×óÓÒ¡£SparkÊÇHadoopµÄÉý¼¶°æ±¾£¬¼æÈÝHadoopµÄAPI£¬Äܹ»¶ÁдHadoopµÄHDFS HBASE ˳ÐòÎļþµÈ£¬ÓëÖ®²»Í¬µÄÊǽ«½á¹û±£´æÔÚÄÚ´æÖС£ Hadoop×÷ΪµÚÒ»´ú²úƷʹÓÃÁËHDFS£¬µÚ¶þ´ú¼ÓÈëÁËCacheÀ´±£´æÖÐ¼ä¼ÆËã½á¹û£¬µÚÈý´úÔòÊÇSpark³«µ¼µÄÁ÷¼¼ÊõStreaming¡£
ÔËÐб¾ÕÂÖдúÂë²¢Àí½âMapReduce±à³Ì˼·¡£ ´ð£ºÂÔ
µÚ12Õ Windowsϵͳ±à³Ì
²éÔÄÏà¹Ø×ÊÁÏ£¬½âÊÍ×¢²á±í¼¸´ó¸ù¼üµÄÓÃ;¡£ ´ð£ºÂÔ
Ñ¡ÔñÒ»¸ö±àдºÃµÄPython³ÌÐò£¬½«Æäת»»Îªexe¿ÉÖ´ÐÐÎļþ¡£ ´ð£ºÂÔ£¬Çë²Î¿¼ÊéÖÐÏà¹Ø½éÉÜ¡£
±àд´úÂ룬ʹÓÃÖÁÉÙ3Öв»Í¬µÄ·½·¨Æô¶¯Windows×Ô´øµÄ¼ÆËãÆ÷³ÌÐò¡£ ´ð£º µÚÒ»ÖÖ·½·¨£º >>> import os >>> ('')
µÚ¶þÖÖ·½·¨£º >>> import os >>> ('')
µÚÈýÖÖ·½·¨£º >>> import os >>> ('')
µÚËÄÖÖ·½·¨£º >>> import win32api >>> (0, 'open', '', '', '', 1)
µÚÎåÖÖ·½·¨£º
>>> import win32process
>>> handle=(r'c:\\windows\\system32\\','', None,None,0, , None, None,())
±àд´úÂ룬¼ì²âÄúËùʹÓõIJÙ×÷ϵͳ°æ±¾¡£ ´ð£ºÂÔ£¬Çë²Î¿¼½Ú¡£
µÚ13Õ ¶àÏ̱߳à³Ì
¼òµ¥ÐðÊö´´½¨Ï̵߳ķ½·¨¡£ ´ð£º
ThreadÀàÖ§³ÖʹÓÃÁ½ÖÖ·½·¨À´´´½¨Ị̈߳¬Ò»ÖÖÊÇΪ¹¹Ô캯Êý´«µÝÒ»¸ö¿Éµ÷ÓöÔÏó£¬ÁíÒ»ÖÖÊǼ̳ÐThreadÀಢÔÚÅÉÉúÀàÖÐÖØÐ´__init__()ºÍrun()·½·¨¡£´´½¨ÁËÏ̶߳ÔÏóÒԺ󣬿ÉÒÔµ÷ÓÃÆästart()·½·¨À´Æô¶¯£¬¸Ã·½·¨×Ô¶¯µ÷ÓøÃÀà¶ÔÏóµÄrun()·½·¨£¬´Ëʱ¸ÃÏ̴߳¦ÓÚalive״̬£¬Ö±ÖÁÏ̵߳Ärun()·½·¨ÔËÐнáÊø¡£
¼òµ¥ÐðÊöThread¶ÔÏóµÄ·½·¨¡£ ´ð£º
£¨1£©join([timeout]£º×èÈûµ±Ç°Ị̈߳¬µÈ´ý±»µ÷Ï߳̽áÊø»ò³¬Ê±ºóÔÙ¼ÌÐøÖ´Ðе±Ç°Ï̵߳ĺóÐø´úÂ룬²ÎÊýtimeoutÓÃÀ´Ö¸¶¨×µÈ´ýʱ¼ä£¬µ¥Î»ÎªÃë¡£
£¨2£©isAlive()£º²âÊÔÏß³ÌÊÇ·ñ´¦ÓÚÔËÐÐ״̬
£¨3£©start()£º×Ô¶¯µ÷ÓÃrun()·½·¨£¬Æô¶¯Ị̈߳¬Ö´ÐÐÏ̴߳úÂë¡£
£¨4£©run()£ºÏ̴߳úÂ룬ÓÃÀ´ÊµÏÖÏ̵߳ŦÄÜÓëÒµÎñÂß¼£¬¿ÉÒÔÔÚ×ÓÀàÖÐÖØÐ´¸Ã·½·¨À´×Ô¶¨ÒåÏ̵߳ÄÐÐΪ¡£
¼òµ¥ÐðÊöÏ̶߳ÔÏóµÄdaemonÊôÐÔµÄ×÷ÓúÍÓ°Ïì¡£ ´ð£º
Ôڽű¾ÔËÐйý³ÌÖÐÓÐÒ»¸öÖ÷Ị̈߳¬ÈôÔÚÖ÷Ïß³ÌÖд´½¨ÁË×ÓỊ̈߳¬µ±Ö÷Ï߳̽áÊøÊ±¸ù¾Ý×ÓÏß³ÌdaemonÊôÐÔÖµµÄ²»Í¬¿ÉÄܻᷢÉúÏÂÃæµÄÁ½ÖÖÇé¿öÖ®Ò»£º1£©µ±Ä³×ÓÏ̵߳ÄdaemonÊôÐÔΪFalseʱ£¬Ö÷Ï߳̽áÊøÊ±»á¼ì²â¸Ã×ÓÏß³ÌÊÇ·ñ½áÊø£¬Èç¹û¸Ã×ÓÏß³ÌÉÐδÍê³É£¬ÔòÖ÷Ï̻߳áµÈ´ýËüÍê³ÉºóÔÙÍ˳ö£»2£©µ±Ä³×ÓÏ̵߳ÄdaemonÊôÐÔΪTrueʱ£¬Ö÷Ïß³ÌÔËÐнáÊøÊ±²»¶Ô¸Ã×ÓÏ߳̽øÐмì²é¶øÖ±½ÓÍ˳ö£¬Í¬Ê±ËùÓÐdaemonֵΪTrueµÄ×ÓÏ߳̽«ËæÖ÷Ïß³ÌÒ»Æð½áÊø£¬¶ø²»ÂÛÊÇ·ñÔËÐÐÍê³É¡£daemonÊôÐÔµÄֵĬÈÏΪFalse£¬Èç¹ûÐèÒªÐ޸ģ¬Ôò±ØÐëÔÚµ÷ÓÃstart()·½·¨Æô¶¯Ïß³Ì֮ǰ½øÐÐÐ޸ġ£
½âÊÍÖÁÉÙ3ÖÖÏß³Ìͬ²½·½·¨¡£ ´ð£º
£¨1£©Ê¹ÓÃCondition¶ÔÏó¿ÉÒÔÔÚijЩʼþ´¥·¢ºó²Å´¦ÀíÊý¾Ý£¬¿ÉÒÔÓÃÓÚ²»Í¬Ïß³ÌÖ®¼äµÄͨÐÅ»ò֪ͨ£¬ÒÔʵÏÖ¸ü¸ß¼¶±ðµÄͬ²½¡£Condition¶ÔÏó³ýÁ˾ßÓÐacquire()ºÍrelease()·½·¨Ö®Í⣬
»¹ÓÐwait()¡¢notify()¡¢notify_all()µÈ·½·¨¡£ÏÂÃæÍ¨¹ý¾µäÉú²úÕß/Ïû·ÑÕßÎÊÌâÀ´ÑÝʾCondition¶ÔÏóµÄÓ÷¨¡£
£¨2£©QueueÄ£¿é£¨ÔÚPython 3ÖÐΪqueueÄ£¿é£©ÊµÏÖÁ˶àÉú²úÕß/¶àÏû·ÑÕß¶ÓÁУ¬ÓÈÆäÊʺÏÐèÒªÔÚ¶à¸öÏß³ÌÖ®¼ä½øÐÐÐÅÏ¢½»»»µÄ³¡ºÏ£¬¸ÃÄ£¿éµÄQueue¶ÔÏóʵÏÖÁ˶àÏ̱߳à³ÌËùÐèÒªµÄËùÓÐËøÓïÒå¡£
£¨3£©Event¶ÔÏóÊÇÒ»ÖÖ¼òµ¥µÄÏß³ÌͨÐż¼Êõ£¬Ò»¸öÏß³ÌÉèÖÃEvent¶ÔÏó£¬ÁíÒ»¸öÏ̵߳ȴýEvent¶ÔÏó¡£Event¶ÔÏóµÄset()·½·¨¿ÉÒÔÉèÖÃEvent¶ÔÏóÄÚ²¿µÄÐźűêÖ¾ÎªÕæ£»clear()·½·¨¿ÉÒÔÇå³ýEvent¶ÔÏóÄÚ²¿µÄÐźűêÖ¾£¬½«ÆäÉèÖÃΪ¼Ù£»isSet()·½·¨ÓÃÀ´ÅÐ¶ÏÆäÄÚ²¿ÐźűêÖ¾µÄ״̬£»wait()·½·¨Ö»ÓÐÔÚÆäÄÚ²¿ÐźÅ×´Ì¬ÎªÕæÊ±½«ºÜ¿ìµØÖ´Ðв¢·µ»Ø£¬ÈôEvent¶ÔÏóµÄÄÚ²¿Ðźűê־Ϊ¼Ù£¬wait()·½·¨½«Ò»Ö±µÈ´ýÖÁ³¬Ê±»òÄÚ²¿ÐźÅ×´Ì¬ÎªÕæ¡£
µÚ14Õ Êý¾Ý¿â±à³Ì
¼òµ¥½éÉÜSQLiteÊý¾Ý¿â¡£ ´ð£º
SQLiteÊÇÄÚǶÔÚPythonÖеÄÇáÁ¿¼¶¡¢»ùÓÚ´ÅÅÌÎļþµÄÊý¾Ý¿â¹ÜÀíϵͳ£¬²»ÐèÒª·þÎñÆ÷½ø³Ì£¬Ö§³ÖʹÓÃSQLÓï¾äÀ´·ÃÎÊÊý¾Ý¿â¡£¸ÃÊý¾Ý¿âʹÓÃCÓïÑÔ¿ª·¢£¬Ö§³Ö´ó¶àÊýSQL91±ê×¼£¬Ö§³ÖÔ×ӵġ¢Ò»Öµġ¢¶ÀÁ¢µÄºÍ³Ö¾ÃµÄÊÂÎñ£¬²»Ö§³ÖÍâ¼üÏÞÖÆ£»Í¨¹ýÊý¾Ý¿â¼¶µÄ¶ÀÕ¼ÐԺ͹²ÏíËø¶¨À´ÊµÏÖ¶ÀÁ¢ÊÂÎñ£¬µ±¶à¸öÏß³Ìͬʱ·ÃÎÊͬһ¸öÊý¾Ý¿â²¢ÊÔͼдÈëÊý¾Ýʱ£¬Ã¿Ò»Ê±¿ÌÖ»ÓÐÒ»¸öÏ߳̿ÉÒÔдÈëÊý¾Ý¡£SQLiteÖ§³Ö2TB´óСµÄµ¥¸öÊý¾Ý¿â£¬Ã¿¸öÊý¾Ý¿âÍêÈ«´æ´¢ÔÚµ¥¸ö´ÅÅÌÎļþÖУ¬ÒÔB+Ê÷Êý¾Ý½á¹¹µÄÐÎʽ´æ´¢£¬Ò»¸öÊý¾Ý¿â¾ÍÊÇÒ»¸öÎļþ£¬Í¨¹ý¼òµ¥¸´ÖƼ´¿ÉʵÏÖÊý¾Ý¿âµÄ±¸·Ý¡£
ʹÓÃPythonÄÚÖú¯Êýdir()²é¿´Cursor¶ÔÏóÖеķ½·¨£¬²¢Ê¹ÓÃÄÚÖú¯Êýhelp()²é¿´ÆäÓ÷¨¡£
´ð£ºÂÔ¡£
ÐðÊöʹÓÃPython²Ù×÷AccessÊý¾Ý¿âµÄ²½Öè¡£ ´ð£º
£¨1£©½¨Á¢Êý¾Ý¿âÁ¬½Ó import (DSN)
£¨2£©´ò¿ª¼Ç¼¼¯
rs_name = 'MyRecordset' #±íÃû ('[' + rs_name + ']', conn, 1, 3)
£¨3£©²Ù×÷¼Ç¼¼¯ () ()
£¨4£©²Ù×÷Êý¾Ý
sql_statement = \ (DSN)
(sql_statement) ()
£¨5£©±éÀú¼Ç¼
Ïà¹ØÍÆ¼ö£º