«

»

Jul 04

Hadoop i sveprisutno računarstvo

Razvoj tehnoglogije u poslednje vreme zauzima značajno mesto kao faktor unapređenja poslovanja kompanija, a isto tako može da doprinese poboljšanju života ljudi. Poslednjih godinu dana kod nas, a u svetu i više, dve tehnologije koje su mojim kolegama i meni zapale za oko su Hadoop i Internet inteligentni uređaji (Internet of things), odnosno Big Data i sveprisutno računarstvo.

Kao saradnici u Laboratoriji za elektronsko poslovanje na Fakultetu organizacionih nauka upustili smo se u istraživanje i testiranje ove dve tehnologije. Iskreno, u početku nismo znali puno, niti smo planirali da spajamo Hadoop i sveprisutno računrastvo, a onda je jednog dana, kada smo sakupili zavidno znanje i pomalo iskustva, iznikao projekat koji smo nazvali Slonče i malina.

Kolega Đorđe Stepanić se bavi sveprisutnim računarstvom, Miloš Milovanović se bavi analizom podataka, a ja se bavim administracijom Hadoop klastera i prikupljanjem podataka.

Slonče i malina.

Priča oko povezivanja Hadoop-a sa sveprisutnim računarstvom nije jednostavna i nije moguće sve napisati u jednom blog postu, čak ni sat i po u SQL user grupi nije dovoljno da ispričamo sve što smo uradili i na čemu radimo. Ja ću se potruditi da u svoje ime i ime svojih kolega napišem što više.

Model je jednostavan – koristimo Raspberry Pi kao mikroračunar i sa njim kombinujemo razne senzore (za temperaturu, za vlažnost vazduha, senzor porketa…). Cilj je da se podaci prikupe i pomoću Raspberry-ja upišu na server, u log fajl i csv fajl. Ovaj server služi za privremeno skladištenje podataka, odnosno posle određenog vremena se podaci brišu. Podaci se iz log fajla, pomoću Flume alata premeštaju na Hadoop klaster u realnom vremenu, tj. kako se upišu na server tako se i prebace na Hadoop klaster. Isto tako, podignut je i WordPress sajt sa odgovarajućim dodatkom koji vizualizuje podatke iz CSV fajla u realnom vremenu, tako da je uvek moguće pratiti realno stanje podataka koji dolaze.

Razlog za korišćenje Hadoop-a je prvenstveno njegov HDFS (Hadoop distributed file system) koji omogućava brz upis velikih količina podataka i njihovo kopiranje kako ne bi došlo do gubitka istih. Pored toga, senzori mogu da budu generatori velikih količina podataka, pa Hadoop ispunjava i taj uslov. Isto tako, ako imamo više izvora podataka, koji generišu različite formate upisa dobijamo, može se reći, nestruktuirane podatke. Kako je Hadoop jako moćan u ovakvim situacijama, nametnuo se kao logičan izbor. Dodatak je i Hadoop ekosistem koji nudi razne alate, pomoću kojih se kompleksno pisanje Java programa svodi na pisanje već poznatih i jednostavnijih upita nalik na SQL jezik. Osim toga, Hadoop se lako integriše sa Sharepointom i možemo iskoristiti MS BI alate kako bi upotpunili celu priču.

Ovakav sistem postoji, radi i mi nastojimo da ga unapredimo. Plan je da se uvede i algoritam koji će na osnovu analize podataka sam donositi zaključke i poslati nazad signal Raspberry-ju za neku upravljačku akciju. Ovo je zgodno, jer donosi uštedu resursa, i naravno smanjenjetroškova. Ovo je još uvek u fazi rada tako da se nadam da će neki naredni blog post biti posvećen i tome.

Hadoop

Ne bih puno pisao o tome šta je Hadoop i kako radi, to možete pročitati i na mom blogu hadoop-srbija.com, već želim da objasnim neke alate koje koristimo u ovom projektu.

Administracija kastera i prikupljanje podataka

Što se tiče administracije Hadoop klastera, koristimo Apache Ambari koji pruža mogućnost praćenja metrika Hadoop klastera, isto tako olakšava i konfigurisanje istog. Ovo je neophodan alat za ovakav projekat jer stalno treba voditi računa o memoriji klastera, mreži… Trudimo se da sve ovo radi konstantno i na taj način se pripremamo za grešku pre nego se ona i dogodi. Možda je ovo manje interesantan deo priče, samo prikupljanje podataka u Hadoop klaster je mnogo interesantnije. Apache Flume je alat koji služi za transfer podataka iz spoljnog okruženja u Hadoop klaster. Za uspešan prenos podataka prvo je potrebno napisati Flume skriptu. Flume radi na sledećem principu – potrebno je definisati izvor, odredište i kanal prenosa podataka. Primer Flume skripte koje sam ja napisao možete naći na sledećoj adresi https://github.com/dare92/Flume-Sensor-Data . Teško je objasniti kako funkcioniše Flume u jednom blog postu, ali koga zanima može da me kontaktira na mom blogu.

Obrada podataka

Obrada podataka je jako bitna faza cele priče, jer sve se svodi da se neki podaci analiziraju, odnosno da se od podatka dobije informacija. Trenutno za analizu podataka koristimo Apache Hive koji je nalik SQL-u, imaju dosta sličnosti, ali glavna razlika je da se ceo kod koji se napiše u Hive-u prevodi u Java MapReduce kod, pa tek onda izvršava. Tačnije prati se filozofija MapReduce algoritma i HDFS-a. Ovaj alat smo izabrali jer je jako sličan SQL-u i lakše ga je koristi nego pistati komplikovan kod u Javi. Za sada smo najviše fokusirani na Hive, zapravo kolega Miloš se najviše fokusira na analizu podataka. Plan je da testiramo i mogućnosti R jezika, koji je odličan za statistiku i uklapa se dobro sa Hadoop streaming pričom.

Sveprisutno računarstvo.

Sveprisutno računarstvo (eng. Ubiquitous computing) predstavlja novu eru u računarstvu gde se računarske tehnologije prisutne svuda oko nas i uvek dostupne. Ovaj koncept podrazumeva princip “jedan čovek više uređaja”. U današnje vreme postalo je sasvim normalno da nosimo dva telefona ili da imamo i telefon i računar. Nekada je bilo uobičajeno da više ljudi koristi jedan računar.

Internet inteligentnih uređaja (eng. Internet of Things) predstavlja mreže inteligentnih (“smart”) uređaja koji međusobno komuniciraju putem Interneta. Danas se sve više ulaže u inteligentne uređaje, odnosno koriste se za nešto što se naziva pametno okruženje. Cilj je da se poboljša standard života ljudi i da se olakša život. Više ne morate da brinete da li je uključen bojler ili da li ste uključili klimu. Za projekat Slonče i malina od pametnih uređaja najviše koristimo Raspberry Pi, zbog njegovih performansi i naravno cene. O ovoj temi će više biti u blogu koji sprema kolega Đorđe i nadam se da će održati obećanje da počne da piše što pre, jer je tema jako interesantna i može da se kombinuje sa Hadoop-om, kao što smo i uradili.

 

Ne bih više pisao o Hadoop-u i sveprisutnom računarstvu jer se nadam da ćemo ponovo pričati u grupi o ovoj temi. Želim da se zahvalim Goranu i Dejanu što su nas pozvali u SQL user grupu Beograd da pričamo na ovu temu i verujem da ćemo da nastavimo saradnju.

 

 

1 comment

  1. Goran Milanov

    Odličan post Darko. Samo nastavi tako 🙂

Leave a Reply