Loaʻa ka ʻōnaehana helu helu ʻo Apache Storm 2.0

ʻIke i ka mālamalama ka hoʻokuʻu nui ʻana o kahi ʻōnaehana hana hanana i puʻunaue ʻia ʻO Apache Storm 2.0, kaulana no kona hoʻololi ʻana i kahi hale hana hou i hoʻokō ʻia ma Java, ma kahi o ka ʻōlelo Clojure i hoʻohana mua ʻia.

Hāʻawi ka papahana iā ʻoe e hoʻonohonoho i ka hoʻoili ʻia ʻana o nā hanana like ʻole i ka manawa maoli. No ka laʻana, hiki ke hoʻohana ʻia ʻo Storm no ka nānā ʻana i nā kahawai ʻikepili i ka manawa maoli, holo i nā hana aʻo mīkini, hoʻonohonoho i ka hoʻomau hoʻomau, hoʻokō RPC, ETL, etc. Kākoʻo ka ʻōnaehana i ka hui ʻana, ka hana ʻana i nā hoʻonohonoho hoʻomanawanui hewa, hōʻoia ʻia ke ʻano hana ʻikepili a loaʻa ka hana kiʻekiʻe, lawa no ka hana ʻana ma mua o hoʻokahi miliona mau noi i kēlā me kēia kekona ma kahi node cluster.

Kākoʻo ʻia ka hoʻohui ʻana me nā ʻōnaehana hana queue a me nā ʻenehana waihona. Hoʻopili ka ʻoihana Storm i ka loaʻa ʻana a me ka hoʻoili ʻana i nā kahawai ʻikepili i hoʻopaʻa ʻole ʻia me ka hoʻohana ʻana i nā kaʻina hana paʻakikī me ka hiki ke hoʻokaʻawale ma waena o nā pae like ʻole o ka helu ʻana. Ua hāʻawi ʻia ka papahana i ke kaiāulu Apache ma hope o ka loaʻa ʻana o Twitter iā BackType, ka hui i hoʻokumu mua i ka hoʻolālā. I ka hoʻomaʻamaʻa, ua hoʻohana ʻia ʻo Storm ma BackType e kālailai i ka noʻonoʻo ʻana o nā hanana i loko o nā microblogs, ma ka hoʻohālikelike ʻana i nā tweet hou a me nā loulou i hoʻohana ʻia i loko o ia mau mea (no ka laʻana, ua loiloi ʻia pehea e hoʻolaha hou ʻia ai nā loulou o waho a i ʻole nā ​​​​hoʻolaha i paʻi ʻia ma Twitter e nā mea ʻē aʻe. ).

Hoʻohālikelike ʻia ka hana a Storm i ka platform Hadoop, me ka ʻokoʻa koʻikoʻi ʻaʻole i mālama ʻia ka ʻikepili i loko o kahi hale kūʻai, akā ua hoʻokomo ʻia i waho a hana ʻia i ka manawa maoli. ʻAʻole ʻo Storm kahi papa mālama i kūkulu ʻia a hoʻomaka ka noi analytical e hoʻopili ʻia i ka ʻikepili e hiki mai ana a hiki i ka hoʻopau ʻia (ʻoiai ʻo Hadoop e hoʻohana ana i nā hana MapReduce manawa palena, hoʻohana ʻo Storm i ka manaʻo o ka holo mau ʻana i nā "topologies"). Hiki ke hoʻokaʻawale ʻia ka hoʻokō ʻana o nā mea lawelawe ma nā kikowaena he nui - Hoʻohālikelike ʻia ʻo Storm i ka hana me nā kaula ma nā node cluster like ʻole.

Ua kākau mua ʻia ka ʻōnaehana ma Clojure a holo i loko o ka mīkini virtual JVM. Ua hoʻomaka ka Apache Foundation i kahi hoʻolālā e neʻe iā Storm i kahi kernel hou i kākau ʻia ma Java, nā hopena i manaʻo ʻia ma ka hoʻokuʻu ʻana o Apache Storm 2.0. Ua kākau hou ʻia nā ʻāpana kumu āpau o ka paepae ma Java. Ua mālama ʻia ke kākoʻo no nā mea kākau kākau ma Clojure, akā hāʻawi ʻia i kēia manawa ma ke ʻano o nā paʻa. Pono ʻo Storm 2.0.0 i ka Java 8. Ua hoʻolālā hou ʻia ke kumu hoʻohālike multi-threaded. hoʻokō ka piʻi ʻana o ka hana (no kekahi mau topologies, ua hoʻemi ʻia nā lohi e 50-80%).

Loaʻa ka ʻōnaehana helu helu ʻo Apache Storm 2.0

Hāʻawi ka mana hou i kahi API Streams type hou e hiki ai iā ʻoe ke wehewehe i nā mea lawelawe me ka hoʻohana ʻana i nā hana hoʻolālā hana. Hoʻokomo ʻia ka API hou ma luna o ka API kumu maʻamau a kākoʻo i ka hoʻohui ʻana i nā hana e hoʻokō i kā lākou hana. Ua hoʻohui ka API Windowing no nā hana puka makani i ke kākoʻo no ka mālama ʻana a me ka hoʻihoʻi ʻana i ke kūlana ma ka hope.

Kākoʻo no ka noʻonoʻo ʻana i nā kumuwaiwai hou aʻe i ka wā e hoʻoholo ai ʻaʻole i kaupalena ʻia
CPU a me ka hoʻomanaʻo, e like me ka pūnaewele a me nā hoʻonohonoho GPU. Ua hana ʻia ka nui o nā hoʻomaikaʻi e hōʻoia i ka hoʻohui ʻana me ka paepae Kafka. Ua hoʻonui ʻia ka ʻōnaehana mana e komo i ka hiki ke hana i nā pūʻulu luna hoʻomalu a me nā hōʻailona ʻelele. Hoʻohui hou ʻia e pili ana i ke kākoʻo SQL a me metric. Ua ʻike ʻia nā kauoha hou ma ka ʻaoʻao luna hoʻomalu no ka hoʻopau ʻana i ka mokuʻāina cluster.

Nā wahi o ka noi no Storm:

  • Hoʻoponopono i nā kahawai o nā ʻikepili hou a i ʻole nā ​​​​hōʻano hou o ka waihona i ka manawa maoli;
  • Ka Hoʻopili Hoʻomau: Hiki i ka Storm ke holo i nā nīnau mau a me ka hana i nā kahawai hoʻomau, e hāʻawi ana i nā hopena hana i ka mea kūʻai i ka manawa maoli.
  • Kahea Kaʻa Kaʻa Kaʻahele (RPC): Hiki ke hoʻohana ʻia ʻo Storm e hāʻawi i ka hoʻokō like ʻana o nā nīnau kumu waiwai. ʻO kahi hana ("topology") ma Storm he hana i puʻunaue ʻia ma nā node e kali ana i ka hiki ʻana mai o nā memo e pono e hana ʻia. Ma hope o ka loaʻa ʻana o kahi memo, hoʻomaka ka hana ma ka pōʻaiapili kūloko a hoʻihoʻi i ka hopena. ʻO kahi laʻana o ka hoʻohana ʻana i ka RPC i puʻunaue ʻia ʻo ia ka hoʻoponopono ʻana i nā nīnau hulina i ka like a i ʻole hana i nā hana ma kahi pūʻulu nui.

Nā hiʻohiʻona ʻino:

  • He kumu hoʻolālā maʻalahi e maʻalahi loa i ka hoʻoili ʻikepili manawa maoli;
  • Kākoʻo no nā ʻōlelo papahana. Loaʻa nā modula no Java, Ruby a me Python, maʻalahi ka hoʻololi ʻana no nā ʻōlelo ʻē aʻe i kahi protocol kamaʻilio maʻalahi loa e koi ai ma kahi o 100 mau laina code e kākoʻo;
  • Ka hoʻomanawanui hewa: no ka holo ʻana i kahi hana hoʻoili ʻikepili, pono ʻoe e hana i kahi faila jar me ke code. E puʻunaue kūʻokoʻa ʻo Storm i kēia faila jar ma nā node cluster, hoʻohui i nā mea lawelawe e pili ana me ia, a hoʻonohonoho i ka nānā ʻana. Ke hoʻopau ʻia ka hana, e hoʻopau ʻia ke code ma nā nodes a pau;
  • Hiki ke hoʻonui ʻia. Hana ʻia nā helu ʻana a pau ma ke ʻano parallel, i ka piʻi ʻana o ka ukana, lawa ia e hoʻopili wale i nā nodes hou i ka hui;
  • Paʻa pono. Mālama ʻo Storm e hoʻokō piha ʻia kēlā me kēia memo e hiki mai ana ma ka liʻiliʻi hoʻokahi. Hoʻokahi wale nō e hoʻoponopono ʻia ka memo inā ʻaʻohe hewa i ka wā e hele ai i nā mea lawelawe a pau; inā kū mai nā pilikia, a laila e hana hou ʻia nā hoʻāʻo hana ʻole.
  • Ka māmā holo. Ua kākau ʻia ke code Storm me ka hana kiʻekiʻe a hoʻohana i ka ʻōnaehana no ka memo asynchronous wikiwiki ZeroMQ.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka