Ma’lumotlar kommunikatsiyasi” fanidan tayyorlagan amaliy mashg‘ulot ishlari topshirdi: M. A. Akbarova Qabul qildi: O. I. Ergashev Farg‘ona 023 amaliy mashg‘ulot mavzu: Java-da MapReduce dasturi Ishning maqsadi: Displey funksiyasi


Download 0.51 Mb.
bet2/11
Sana17.06.2023
Hajmi0.51 Mb.
#1547427
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
2-deadline. 7-12 (2)

AMALIY MASHG‘ULOT - 8


Mavzu: Taqsimlangan MapReduce ishini bajarish


Ishning maqsadi: o'rganish API ta'minoti MapReduce uchun xaritalash va qisqartirish funksiyalarini Javadan boshqa tillarda yozishga imkon beradi.

Xuddi shu dastur ma'lumotlarning to'liq to'plamida hech qanday o'zgarishsiz ishlaydi ¬. MapReduce aynan shu uchun mo'ljallangan : u ma'lumotlar va apparat vositalari bilan o'lchaydi. Yuqori protsessorli 10 tugunli EC 2 klasterida Qo'shimcha katta Misol dasturni bajarish uchun olti daqiqa vaqt ketdi


Hadoop Streaming
Hadoop API taqdim etadi MapReduce uchun xaritalash va qisqartirish funksiyalarini Javadan boshqa tillarda yozishga imkon beradi . Hadoop texnologiyasi Oqim ¬_ standart Unix oqimidan foydalanadi Hadoop shovqinini tashkil qilish uchun dasturlari bilan, shuning uchun MapReduce dasturlarini yozishda standart kirishdan o'qishni ( standart kirish) va standart chiqishga (standart chiqish) yozishni qo'llab-quvvatlaydigan har qanday tildan foydalanishingiz mumkin . ¬Yig'ish funksiyasi standart kirishdan (ramka kafolati kalit bo'yicha tartiblangan) satrlarni o'qiydi va natijalarini standart chiqishga yozadi.
Hadoop qanday ishlashini ko'rsatish uchun Streaming , biz MapReduce dasturimizni qayta yozamiz maksimal haroratni topish uchun.
Ruby
Ruby tilida xaritalash funksiyasining namunali bajarilishi 2.8 ro'yxatda keltirilgan .

STDIN dan har bir satr uchun dastur blokini bajarib, standart kirish satrlari bo'ylab o'tadi . ( IO tipidagi global konstanta ). Blok har bir kirish satridan kerakli maydonlarni chiqaradi va agar harorat to'g'ri bo'lsa, ¬yil va haroratni \ t bilan ajratilgan holda standart chiqishga yozadi ( puts funktsiyasidan foydalangan holda ).
Streaming o'rtasidagi muhim me'moriy farqni ta'kidlash kerak va Java MapReduce _ API . Java API xaritalash funktsiyasi orqali yozuvlarni ketma-ket qayta ishlashga qaratilgan . ¬Ramka Mapper ilovangizning map ( ) usulini chaqiradi. Kirish to'plamidagi har bir yozuv uchun, Oqimdan foydalanganda kirishni qanday qayta ishlashni displey dasturining o'zi hal qiladi - masalan, u bir vaqtning o'zida bir nechta satrlarni osongina o'qiy oladi va qayta ishlaydi, chunki o'qish jarayoni uning nazorati ostida. Java -da moslashtirilgan xaritalashni amalga oshirish yozuvlarni ketma-ket olib keladi, lekin u ¬Mapper misol oʻzgaruvchisida oldingi qatorlarni toʻplash orqali bir vaqtning oʻzida bir nechta yozuvlarni qayta ishlashi mumkin . Bunday holda, siz oxirgi yozuv o'qilganligini bilishingiz va ¬oxirgi qatorlar guruhini qayta ishlashni tugatishingiz uchun yopish () usulini qo'llashingiz kerak.
Hadoop dan foydalanmasdan osongina sinab ko'rish mumkin:

Dastur shuningdek, standart kiritishdan satrlar bo'ylab takrorlanadi, lekin bu safar biz har bir tugmalar guruhini qayta ishlash jarayonida holat ma'lumotlarini saqlashimiz kerak . Bizning misolimizda kalitlar yillardir, biz oxirgi topilgan kalitni va ushbu kalit uchun topilgan maksimal haroratni saqlaymiz. MapReduce ramkasi kalitlarga buyurtma berishni kafolatlaydi; shuning uchun, agar kalit oldingisidan farq qilsa, bu biz yangi kalitlar guruhiga o'tganimizni anglatadi. Java -dan farqli o'laroq Streamingdan foydalanganda har bir kalit guruhi uchun iterator taqdim etilgan API guruh chegaralari dasturda belgilanishi kerak.
Har bir satr uchun kalit va qiymat olinadi. Agar guruh endigina ¬tugagan bo'lsa (last_key && last_key != key), biz yangi kalit uchun maksimal haroratni tiklashdan oldin, biz kalitni va ¬guruhdagi maksimal haroratni yorliqlar bilan ajratamiz. Agar guruh hali tugallanmagan bo'lsa, dastur faqat joriy kalit uchun maksimal haroratni yangilaydi.
Klasterda katta hajmdagi ma'lumotlar to'plami bilan ishlaganda -combiner variantidan foydalanish kerak birlashtirish funktsiyasini aniqlash.
1.x dan keyingi versiyalarda birlashtirish funktsiyasi har qanday Streaming buyrug'i bo'lishi mumkin . Avvalgi nashrlarda birlashtirish funksiyasi Java -da yozilishi kerak edi , shuning uchun amalda tez-tez ishlatiladigan vaqtinchalik yechim Java -dan foydalanmasdan xaritalash funktsiyasida qo'lda birlashtirish edi . Bizning holatda, displey funktsiyasi quvur liniyasi bilan almashtirilishi mumkin.

Download 0.51 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling