Hatékony és rugalmas adattárolás Hadoop környezetben

OData támogatás
Konzulens:
Dr. Holczer Tamás
Hálózati Rendszerek és Szolgáltatások Tanszék

Manapság olyan világban élünk, ahol az okos eszközök már mindenhol jelen vannak. Ezek az eszközök milliónyi adatot generálnak másodpercenként. Ezt az információt az eszköz gyártói az eszközök továbbfejlesztésére használják fel. Az így keletkező adathalmaz feldolgozása a tradicionális eszközök segítségével lehetetlenné vált, ezért az informatikusok és mérnökök kifejlesztették a Big Data rendszereket. A legnagyobb ilyen open source big data implementáció a Hadoop, így ezt használtam én is a diplomám megírása során. A Hadoop az adatok tárolására HDFSt használ, amely az adatok tárolására különböző módokat biztosít, azonban ezek legnagyobb része nagy fájlok kezelésére lett kifejlesztve. A kis fájlok esetében a HDFS a SequenceFile illetve a MapFile tárolási módszereket alkalmazza. Ezek a módszerek a kis fájlokat aggregálva tárolják. Sajnos a Hadoopban található függvények segítségével, a rendszer képtelen a már létrehozott SequenceFile/MapFilehoz új értékeket hozzáfűzni. Egy olyan programot hoztam létre, amely képes arra amire a Hadoop beépített függvényei nem, képes SequenceFile/MapFilehoz új értéket illeszteni. A megoldásom teljesen átlátszó, képes együttműködni a Hadoop keretrendszerrel. A Hadoop másik előnye, hogy redundáns fájl tárolást tesz lehetővé, bármilyen RAID alkalmazása nélkül. Az általam elkészített program ugyancsak redundáns működést biztosít. A program tervezése során a Hadoop rendszerben alkalmazott redundanciát alkalmazó eljárásokat vettem alapul. A megoldásom implementálása során egy új problémába is belefutottam. A keretrendszer képtelen 85MBnál nagyobb fájlok betöltésére. A 85MB nem egy annyira nagy fájl méret, de a rendszer az egész fájlt a memóriában tárolja, különböző műveletek elvégzése miatt. Például néhány beépített csomagoló algoritmusnak szüksége van az egész fájlra a csomagoláshoz, illetve a használt hash függvény is csak így képes működni. Ennek a problémának a megoldására, két fajta módszert készítettem. Az első módszer bestreameli az adatokat a HDFS-re. Az ötletet tulajdonképpen a beépített HDFS put függvénytől kölcsönöztem. A másik megoldásom, feldarabolja a nagy fájlokat kisebbekre, így a beépített függvények már képesek a helyes működésre. A megoldásaim megfelelő tesztelése után összehasonlítottam őket. Az összehasonlítás során a megoldásaim hatékonyságát egymás ellen vizsgáltam, illetve a HDFS put függvénnyel.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.