Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
storm»ù´¡¿ò¼Ü·ÖÎö
 
×÷Õߣº´óÅ£Èë¿Ú À´Ô´£ºblog ·¢²¼ÓÚ;2016-8-2
  3368  次浏览      31
 

±³¾°

ǰÆÚÊÕµ½µÄÎÊÌ⣺

1¡¢ÔÚTopologyÖÐÎÒÃÇ¿ÉÒÔÖ¸¶¨spout¡¢boltµÄ²¢Ðжȣ¬ÔÚÌá½»TopologyʱStormÈçºÎ½«spout¡¢bolt×Ô¶¯·¢²¼µ½Ã¿¸ö·þÎñÆ÷²¢ÇÒ¿ØÖÆ·þÎñµÄCPU¡¢´ÅÅ̵È×ÊÔ´µÄ£¿

2¡¢Storm´¦ÀíÏûϢʱ»á¸ù¾ÝTopologyÉú³ÉÒ»¿ÃÏûÏ¢Ê÷£¬StormÈçºÎ¸ú×Ùÿ¸öÏûÏ¢¡¢ÈçºÎ±£Ö¤ÏûÏ¢²»¶ªÊ§ÒÔ¼°ÈçºÎʵÏÖÖØ·¢ÏûÏ¢»úÖÆ£¿

ÉÏÆª£ºstormÊÇÈçºÎ±£Ö¤at least onceÓïÒåµÄ

»Ø´ðÁ˵Ú2¸öÎÊÌâ¡£

±¾ÆªÀ´½¨Á¢Ò»¸ö»ù±¾µÄ±³¾°£¬À´´ó¸Å¿´Ï¹¹³ÉstormÁ÷ʽ¼ÆËãÄÜÁ¦µÄһЩ»ù´¡¿ò¼Ü£¬²¢²¿·Ö»Ø´ðµÚÒ»¸öÎÊÌâ¡£

worker¡¢executor¡¢taskµÄ¹ØÏµ

workerÊÇÒ»¸ö½ø³Ì.

executorÊÇÒ»¸öỊ̈߳¬ÊÇÔËÐÐtasksµÄÎïÀíÈÝÆ÷.

taskÊǶÔspout/bolt/ackerµÈÈÎÎñµÄÂß¼­³éÏó.

supervisor»á¶¨Ê±´Ózookeeper»ñÈ¡ÍØ²¹ÐÅÏ¢topologies¡¢ÈÎÎñ·ÖÅäÐÅÏ¢assignments¼°¸÷ÀàÐÄÌøÐÅÏ¢£¬ÒÔ´ËΪÒÀ¾Ý½øÐÐÈÎÎñ·ÖÅä¡£

ÔÚsupervisorͬ²½Ê±£¬»á¸ù¾ÝеÄÈÎÎñ·ÖÅäÇé¿öÀ´Æô¶¯ÐµÄworker»òÕ߹رվɵÄworker²¢½øÐиºÔؾùºâ¡£

workerͨ¹ý¶¨ÆÚµÄ¸üÐÂconnectionsÐÅÏ¢£¬À´»ñÖªÆäÓ¦¸ÃͨѶµÄÆäËüworker¡£

workerÆô¶¯Ê±£¬»á¸ù¾ÝÆä·ÖÅäµ½µÄÈÎÎñÆô¶¯Ò»¸ö»ò¶à¸öexecutorÏ̡߳£ÕâЩÏ߳̽ö»á´¦ÀíΨһµÄtopology¡£

Èç¹ûÓÐеÄtolopogy±»Ìá½»µ½¼¯Èº£¬nimbus»áÖØÐ·ÖÅäÈÎÎñ£¬Õâ¸öºóÃæ»á˵µ½¡£

executorÏ̸߳ºÔð´¦Àí¶à¸öspouts»òÕß¶à¸öboltsµÄÂß¼­£¬ÕâЩspouts»òÕßbolts£¬Ò²³ÆÎªtasks¡£

¾ßÌåÓжàÉÙ¸öworker£¬¶àÉÙ¸öexecutor£¬Ã¿¸öexecutor¸ºÔð¶àÉÙ¸ötask£¬ÊÇÓÉÅäÖúÍÖ¸¶¨µÄparallelism-hint¹²Í¬¾ö¶¨µÄ£¬µ«Õâ¸öÖµ²¢²»Ò»¶¨µÈÓÚʵ¼ÊÔËÐÐÖеÄÊýÄ¿¡£

Èç¹û¼ÆËã³öµÄ×ܵÄexecutors³¬¹ýÁËnimbusµÄÏÞÖÆ£¬´Ëtopology½«²»»áµÃµ½Ö´ÐС£

²¢ÐжȵÄ×÷Óãº

ÉÏÊö´úÂë»áÔÚnimbus½øÐÐÈÎÎñ·ÖÅäʱµ÷Óãº

Ïß³ÌÄ£Ðͼ°ÏûϢϵͳ

»ù±¾¹ØÏµÈçÏÂËùʾ£º

workerÆô¶¯Ê±£¬³ýÁËÆô¶¯¶à¸öexecutorỊ̈߳¬»¹»áÆô¶¯¶à¸ö¹¤×÷Ïß³ÌÀ´¸ºÔðÏûÏ¢´«µÝ¡£

worker»á¶©Ôĵ½transfer-queueÀ´Ïû·ÑÏûÏ¢£¬Í¬Ê±Ò²»á·¢²¼ÏûÏ¢µ½transfer-queue£¬±ÈÈçÐèÒª½øÐÐÔ¶³Ì·¢²¼Ê±£¨Ä³¸öboltÔÚÁíÒ»¸ö½ø³Ì»òÕß½ÚµãÉÏ£©¡£

executor»á·¢²¼ÏûÏ¢µ½executor-send-queue±ÈÈçemit tuple£¬Í¬Ê±»á´Óexecutor-receive-queueÏû·ÑÏûÏ¢£¬±ÈÈçÖ´ÐÐack»òÕßfail¡£

batch-transfer-worker-handlerÏ̶߳©Ôĵ½executor-send-queueÏû·ÑÏûÏ¢£¬²¢½«ÏûÏ¢·¢²¼µ½transfer-queue¹©workerÏû·Ñ¡£

transfer-thread»á¶©Ôĵ½transfer-queueÏû·ÑÏûÏ¢£¬²¢¸ºÔð½«ÏûϢͨ¹ýsocket·¢Ë͵½Ô¶³Ì½ÚµãµÄ¶Ë¿ÚÉÏ¡£

workerͨ¹ýreceive-threadÏß³ÌÀ´ÊÕȡԶ³ÌÏûÏ¢£¬²¢½«ÏûÏ¢ÒÔ±¾µØ·½Ê½·¢²¼µ½ÏûÏ¢ÖÐÖ¸¶¨µÄexecutor¶ÔÓ¦µÄexecutor-receive-queue¡£executor°´µÚ3µãÀ´Ïû·ÑÏûÏ¢¡£

ÒÔÉÏËùÓеÄÏûÏ¢¶ÓÁж¼ÊÇDisruptor Queue£¬·Ç³£¸ßЧµÄÏ̼߳äͨѶ¿ò¼Ü¡£

Ëùν±¾µØ·¢²¼£¬ÊÇÖ¸ÔÚworker½ø³ÌÄÚ¼°executorÏß³Ì¼ä½øÐÐÏûÏ¢·¢²¼¡£

ËùνԶ³Ì·¢²¼£¬ÊÇÖ¸ÔÚworker½ø³Ì¼ä¡¢²»Í¬µÄ»úÆ÷¼ä½øÐÐÏûÏ¢·¢²¼¡£

ÈÎÎñµ÷¶È¼°¸ºÔؾùºâ

ÈÎÎñµ÷¶ÈµÄÖ÷Òª½ÇÉ«

nimbus½«¿ÉÒÔ¹¤×÷µÄworker³ÆÎªworker-slot.

nimbusÊÇÕû¸ö¼¯ÈºµÄ¿Ø¹ÜºËÐÄ£¬×ÜÌ帺ÔðÁËtopologyµÄÌá½»¡¢ÔËÐÐ״̬¼à¿Ø¡¢¸ºÔؾùºâ¼°ÈÎÎñÖØÐ·ÖÅ䣬µÈµÈ¹¤×÷¡£

nimbus·ÖÅäµÄÈÎÎñ°üº¬ÁËtopology´úÂëËùÔڵķ¾¶£¨ÔÚnimbus±¾µØ£©¡¢tasks¡¢executors¼°workersÐÅÏ¢¡£

workerÓÉnode + portΨһȷ¶¨¡£

supervisor¸ºÔðʵ¼ÊµÄͬ²½workerµÄ²Ù×÷¡£Ò»¸ösupervisor³ÆÎªÒ»¸önode¡£Ëùνͬ²½worker£¬ÊÇÖ¸ÏìÓ¦nimbusµÄÈÎÎñµ÷¶ÈºÍ·ÖÅ䣬½øÐÐworkerµÄ½¨Á¢¡¢µ÷¶ÈÓëÏú»Ù¡£

Æäͨ¹ý½«topologyµÄ´úÂë´ÓnimbusÏÂÔØµ½±¾µØÒÔ½øÐÐÈÎÎñµ÷¶È¡£

ÈÎÎñ·ÖÅäÐÅÏ¢Öаüº¬taskµ½workerµÄÓ³ÉäÐÅÏ¢task -> node + host£¬ËùÒÔworker½Úµã¿É¾Ý´ËÐÅÏ¢ÅжϸúÄÄЩԶ³Ì»úÆ÷ͨѶ¡£

¼¯ÈºµÄ״̬»ú£º

¼¯Èº×´Ì¬¹ÜÀí

¼¯ÈºµÄ״̬ÊÇͨ¹ýÒ»¸östorm-cluster-stateµÄ¶ÔÏóÀ´ÃèÊöµÄ¡£

ÆäÌṩÁËÐí¶à¹¦Äܽӿڣ¬±ÈÈ磺

zookeeperÏà¹ØµÄ»ù±¾²Ù×÷£¬Èçcreate-node¡¢set-data¡¢remove-node¡¢get-childrenµÈ.

ÐÄÌø½Ó¿Ú£¬Èçsupervisor-heartbeat!¡¢worker-heatbeat!µÈ.

ÐÄÌøÐÅÏ¢£¬Èçexecutors-beatsµÈ.

Æô¶¯¡¢¸üС¢Í£Ö¹storm£¬Èçupdate-storm!µÈ.

ÈçÏÂͼËùʾ£º

ÈÎÎñµ÷¶ÈµÄÒÀ¾Ý

zookeeperÊÇÕû¸ö¼¯Èº×´Ì¬Í¬²½¡¢Ð­µ÷µÄºËÐÄ×é¼þ¡£

supervisor¡¢worker¡¢executorµÈ×é¼þ»á¶¨ÆÚÏòzookeeperдÐÄÌøÐÅÏ¢¡£

µ±topology³öÏÖ´íÎó¡¢»òÕßÓÐеÄtopologyÌá½»µ½¼¯ÈºÊ±£¬topologiesÐÅÏ¢»áͬ²½µ½zookeeper¡£

nimbus»á¶¨ÆÚ¼àÊÓzookeeperÉϵÄÈÎÎñ·ÖÅäÐÅÏ¢assignments£¬²¢½«ÖØÐ·ÖÅäµÄ¼Æ»®Í¬²½µ½zookeeper¡£

ËùÒÔ£¬nimbus»á¸ù¾ÝÐÄÌø¡¢topologiesÐÅÏ¢¼°ÒÑ·ÖÅäµÄÈÎÎñÐÅϢΪÒÀ¾Ý£¬À´ÖØÐ·ÖÅäÈÎÎñ£¬ÈçÏÂͼËùʾ£º

ÈÎÎñµ÷¶ÈµÄʱ»ú

ÈçÉÏÎĵÄ״̬»úͼËùʾ£¬rebalanceºÍdo-reblalance£¨±ÈÈçÀ´×Ôwebµ÷Ó㩻ᴥ·¢mk-assignments¼´ÈÎÎñ£¨ÖØÐ£©·ÖÅä¡£

ͬʱ£¬nimbus½ø³ÌÆô¶¯ºó£¬»áÖÜÆÚÐԵؽøÐÐmk-assignmentsµ÷Óã¬ÒÔ½øÐиºÔؾùºâºÍÈÎÎñ·ÖÅä¡£

¿Í»§¶Ëͨ¹ýstorm jar ... topology ·½Ê½Ìá½»topology£¬»áͨ¹ýthrift½Ó¿Úµ÷ÓÃnimbusµÄÌá½»¹¦ÄÜ£¬´Ëʱ»áÆô¶¯storm£¬²¢´¥·¢mk-assignmentsµ÷Óá£

topologyÌá½»¹ý³Ì

Ò»¸ötopologyµÄÌá½»¹ý³Ì£º

·Ç±¾µØÄ£Ê½Ï£¬¿Í»§¶Ëͨ¹ýthriftµ÷ÓÃnimbus½Ó¿Ú£¬À´ÉÏ´«´úÂëµ½nimbus²¢´¥·¢Ìá½»²Ù×÷.

nimbus½øÐÐÈÎÎñ·ÖÅ䣬²¢½«ÐÅϢͬ²½µ½zookeeper.

supervisor¶¨ÆÚ»ñÈ¡ÈÎÎñ·ÖÅäÐÅÏ¢£¬Èç¹ûtopology´úÂëȱʧ£¬»á´ÓnimbusÏÂÔØ´úÂ룬²¢¸ù¾ÝÈÎÎñ·ÖÅäÐÅÏ¢£¬Í¬²½worker.

worker¸ù¾Ý·ÖÅäµÄtasksÐÅÏ¢£¬Æô¶¯¶à¸öexecutorỊ̈߳¬Í¬Ê±ÊµÀý»¯spout¡¢bolt¡¢ackerµÈ×é¼þ£¬´Ëʱ£¬µÈ´ýËùÓÐconnections£¨workerºÍÆäËü»úÆ÷ͨѶµÄÍøÂçÁ¬½Ó£©Æô¶¯Íê±Ï£¬´Ëstorm-cluster¼´½øÈ빤×÷״̬¡£

³ý·ÇÏÔʾµ÷???kill topology£¬·ñÔòspout¡¢boltµÈ×é¼þ»áÒ»Ö±ÔËÐС£

Ö÷Òª¹ý³ÌÈçÏÂͼËùʾ£º

½áÓï

ÒÔÉÏ£¬»ù±¾²ûÊöÁËstormµÄ»ù´¡¿ò¼Ü£¬µ«Î´Éæ¼°trident»úÖÆ£¬Ò²»ù±¾»Ø´ðÁËÎÊÌâ1¡£

   
3368 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 12-11[±±¾©]
LLM´óÄ£ÐÍÓëÖÇÄÜÌ忪·¢ÊµÕ½ 12-18[±±¾©]
ǶÈëʽÈí¼þ²âÊÔ 12-25[±±¾©]
AIÔ­ÉúÓ¦ÓõÄ΢·þÎñ¼Ü¹¹ 1-9[±±¾©]
AI´óÄ£Ðͱàд¸ßÖÊÁ¿´úÂë 1-14[±±¾©]
ÐèÇó·ÖÎöÓë¹ÜÀí 1-22[±±¾©]

APPÍÆ¹ãÖ®ÇÉÓù¤¾ß½øÐÐÊý¾Ý·ÖÎö
Hadoop Hive»ù´¡sqlÓï·¨
Ó¦Óö༶»º´æÄ£Ê½Ö§³Åº£Á¿¶Á·þÎñ
HBase ³¬Ïêϸ½éÉÜ
HBase¼¼ÊõÏêϸ½éÉÜ
Spark¶¯Ì¬×ÊÔ´·ÖÅä

HadoopÓëSpark´óÊý¾Ý¼Ü¹¹
HadoopÔ­ÀíÓë¸ß¼¶Êµ¼ù
HadoopÔ­Àí¡¢Ó¦ÓÃÓëÓÅ»¯
´óÊý¾ÝÌåϵ¿ò¼ÜÓëÓ¦ÓÃ
´óÊý¾ÝµÄ¼¼ÊõÓëʵ¼ù
Spark´óÊý¾Ý´¦Àí¼¼Êõ

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí