Apache Flume Tutorial: Twitter Data Streaming



Ang blog ng tutorial na Apache Flume na ito ay nagpapaliwanag ng mga pangunahing kaalaman ng Apache Flume at mga tampok nito. Ipapakita rin nito ang streaming sa Twitter gamit ang Apache Flume.

Sa Apache Flume tutorial blog na ito, mauunawaan namin kung paano nakakatulong ang Flume sa streaming ng data mula sa iba't ibang mga mapagkukunan. Ngunit bago iyon ipaalam sa amin na maunawaan ang kahalagahan ng paglunok ng data. Ang paglunok ng data ay paunang & mahalagang hakbang upang maproseso at ma-aralan ang data, at pagkatapos ay makuha ang mga halaga ng negosyo mula rito. Mayroong maraming mga mapagkukunan mula sa kung aling ang data ay natipon sa isang samahan.

Pinapayagan nating pag-usapan ang isa pang mahalagang kadahilanan kung bakit naging popular ang Flume. Sana maging pamilyar ka sa , na kung saan ay ginagamit nang labis sa industriya dahil maaari itong mag-imbak ng lahat ng mga uri ng data. Madaling maisama ang flume sa Hadoop at itapon ang hindi istraktura pati na rin ang semi-nakabalangkas na data sa HDFS, na papuri sa lakas ng Hadoop. Ito ang dahilan kung bakit ang Apache Flume ay isang mahalagang bahagi ng Hadoop Ecosystem.





Sa Apache Flume tutorial blog na ito, sasakupin namin ang:



Sisimulan namin ang Flume tutorial na ito sa pamamagitan ng pagtalakay tungkol sa kung ano ang Apache Flume. Pagkatapos ay magpatuloy, mauunawaan natin ang mga pakinabang ng paggamit ng Flume.

Apache Flume Tutorial: Panimula sa Apache Flume

Apache Flume logo - Apache Flume Tutorial - EdurekaAng Apache Flume ay isang tool para sa paglunok ng data sa HDFS. Kinokolekta, pinagsasama-sama at pinapadala ang maraming data ng streaming tulad ng mga log file, mga kaganapan mula sa iba't ibang mga mapagkukunan tulad ng trapiko sa network, social media, mga mensahe sa email atbp sa HDFS.Ang flume ay isang lubos na maaasahan at ipinamamahagi.

Ang pangunahing ideya sa likod ng disenyo ng Flume ay upang makuha ang streaming data mula sa iba't ibang mga web server hanggang sa HDFS. Mayroon itong simple at nababaluktot na arkitektura batay sa streaming data flow. Ito ay mapagparaya sa kasalanan at nagbibigay ng mekanismo ng pagiging maaasahan para sa Fault tolerance at pagkabigo sa pagkabigo.



Matapos maunawaan kung ano ang Flume, ngayon ay magpatulong tayo sa Flume Tutorial blog na ito at maunawaan ang mga pakinabang ng Apache Flume. Pagkatapos ay magpatuloy, titingnan natin ang arkitektura ng Flume at subukang unawain kung paano ito gumagana sa panimula.

nagpapalawak at nagpapatupad ng magkasama sa java

Apache Flume Tutorial: Mga kalamangan ng Apache Flume

Mayroong maraming mga pakinabang ng Apache Flume na ginagawang isang mas mahusay na pagpipilian kaysa sa iba. Ang mga kalamangan ay:

  • Ang flume ay nasusukat, maaasahan, mapagparaya sa kasalanan at napapasadyang para sa iba't ibang mga mapagkukunan at lababo.
  • Ang Apache Flume ay maaaring mag-imbak ng data sa mga sentralisadong tindahan (ibig sabihin, ang data ay ibinibigay mula sa isang solong tindahan) tulad ng HBase at HDFS.
  • Ang flume ay pahalang na nasusukat.
  • Kung ang rate na basahin ay lumampas sa rate ng pagsulat, nagbibigay ang Flume ng isang matatag na daloy ng data sa pagitan ng mga operasyon ng read and magsulat.
  • Nagbibigay ang Flume ng maaasahang paghahatid ng mensahe. Ang mga transaksyon sa Flume ay nakabatay sa channel kung saan ang dalawang mga transaksyon (isang nagpadala at isang tatanggap) ay pinananatili para sa bawat mensahe.
  • Gamit ang Flume, maaari naming i-ingest ang data mula sa maraming mga server sa Hadoop.
  • Nagbibigay ito sa amin ng isang solusyon kung saan maaasahan at ipinamamahagi at tumutulong sa amin sa pagkolekta, pagsasama-sama at paglipat ng malaking halaga ng mga hanay ng data tulad ng mga website sa Facebook, Twitter at e-commerce.
  • Nakatutulong ito sa amin na i-ingest ang data ng online streaming mula sa iba't ibang mga mapagkukunan tulad ng trapiko sa network, social media, mga mensahe sa email, mga log file atbp. Sa HDFS.
  • Sinusuportahan nito ang isang malaking hanay ng mga mapagkukunan at mga uri ng patutunguhan.

Ang arkitektura ay isa na nagbibigay kapangyarihan sa Apache Flume sa mga benepisyong ito. Ngayon, tulad ng alam natin ang mga pakinabang ng Apache Flume, hinahayaan na magpatuloy at maunawaan ang arkitektura ng Apache Flume.

Apache Flume Tutorial: Flume Architecture

Ngayon, ipaalam sa amin na maunawaan ang arkitektura ng Flume mula sa ibaba diagram:

Mayroong isang ahente ng Flume na nilalamok ang streaming data mula sa iba't ibang mga mapagkukunan ng data sa HDFS. Mula sa diagram, madali mong maunawaan na ipinahiwatig ng web server ang mapagkukunan ng data. Ang Twitter ay kabilang sa isa sa mga sikat na mapagkukunan para sa streaming data.

Ang ahente ng flume ay may 3 bahagi: mapagkukunan, lababo at channel.

    1. Pinagmulan : Tumatanggap ito ng data mula sa papasok na streamline at iniimbak ang data sa channel.
    2. Channel : Sa pangkalahatan, ang bilis ng pagbabasa ay mas mabilis kaysa sa bilis ng pagsulat. Sa gayon, kailangan namin ng ilang buffer upang maitugma ang pagbabasa at pagsulat ng pagkakaiba sa bilis. Talaga, ang buffer ay kumikilos bilang isang tagapamagitan na imbakan na nag-iimbak ng data na pansamantalang maililipat at samakatuwid pinipigilan ang pagkawala ng data. Katulad nito, ang channel ay gumaganap bilang lokal na imbakan o isang pansamantalang pag-iimbak sa pagitan ng mapagkukunan ng data at paulit-ulit na data sa HDFS.
    3. Lababo : Kung gayon, ang aming huling bahagi na ibig sabihin ay Sink, nangongolekta ng data mula sa channel at permanenteng isinasagawa o isusulat ang data sa HDFS.

Ngayon alam natin kung paano gumagana ang Apache Flume, tingnan natin ang isang praktikal na kung saan ibabad natin ang data sa Twitter at iimbak ito sa HDFS.

Apache Flume Tutorial: Pag-stream ng Data sa Twitter

Sa praktikal na ito, mag-i-stream kami ng data mula sa Twitterusing Flume at pagkatapos ay iimbak ang data sa HDFS tulad ng ipinakita sa imaheng nasa ibaba.

Ang unang hakbang ay upang lumikha ng isang application sa Twitter. Para sa mga ito, kailangan mo munang pumunta sa url na ito: https://apps.twitter.com/ at mag-sign in sa iyong Twitter account. Pumunta upang lumikha ng tab ng application tulad ng ipinakita sa larawan sa ibaba.

Pagkatapos, lumikha ng isang application tulad ng ipinakita sa larawan sa ibaba.

Matapos likhain ang application na ito, mahahanap mo ang Key at Access token. Kopyahin ang susi at ang token ng pag-access. Ipapasa namin ang mga token na ito sa aming file ng pagsasaayos ng Flume upang kumonekta sa application na ito.

Lumikha ngayon ng isang file na flume.conf sa root direktoryo ng flume tulad ng ipinakita sa imahe sa ibaba. Tulad ng tinalakay namin, sa Arkitektura ng Flume, iko-configure namin ang aming Pinagmulan, Sink at Channel. Ang aming Pinagmulan ay Twitter, mula sa kung saan kami nag-stream ng data at ang aming Sink ay HDFS, kung saan nagsusulat kami ng data.

Sa pagsasaayos ng mapagkukunan ipinapasa namin ang uri ng mapagkukunan ng Twitter bilang org.apache.flume.source.twitter.TwitterSource. Pagkatapos, ipinapasa namin ang lahat ng apat na mga token na natanggap namin mula sa Twitter. Sa wakas sa pagsasaayos ng mapagkukunan ipinapasa namin ang mga keyword kung saan kukunin namin ang mga tweet.

Sa config ng Sink ay isasaayos namin ang mga pag-aari ng HDFS. Itatakda namin ang landas ng HDFS, magsulat ng format, uri ng file, laki ng batch atbp Sa wakas ay magtatakda kami ng memory channel tulad ng ipinakita sa imaheng nasa ibaba.

Nakahanda na kaming lahat sa pagpapatupad. Tayo ay magpatupad at magpatupad ng utos na ito:

$ FLUME_HOME / bin / flume-ng ahente --conf ./conf/ -f $ FLUME_HOME / flume.conf

Pagkatapos maipatupad ang utos na ito nang ilang sandali, at pagkatapos ay maaari kang lumabas sa terminal gamit ang CTRL + C. Pagkatapos ay maaari kang magpatuloy sa iyong direktoryo ng Hadoop at suriin ang nabanggit na landas, kung ang file ay nilikha o hindi.

ano ang pamamaraang javascript

I-download ang file at buksan ito. Makakakuha ka ng isang bagay tulad ng ipinakita sa larawan sa ibaba.

Inaasahan kong ang blog na ito ay may kaalaman at naidagdag na halaga sa iyo. Kung interesado kang matuto nang higit pa, maaari mo itong daanan na nagsasabi sa iyo tungkol sa Big Data at kung paano nilulutas ng Hadoop ang mga hamon na nauugnay sa Big Data.

Ngayon na naintindihan mo ang Apache Flume, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka Big Data Hadoop Certification Training ay tumutulong sa mga nag-aaral na maging dalubhasa sa HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume at Sqoop na gumagamit ng mga kaso ng paggamit ng real-time sa Retail, Social Media, Aviation, Turismo, Pananalapi domain.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.