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.
bet9/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- 11


Mavzu: Filesystem API yordamida ma'lumotlarni o'qish.


Ishning maqsadi: Umumlashtirilgan APIni o'rganish fayl tizimi.

Oldingi bo'limda aytib o'tilganidek, ba'zida setURLStream - HandlerFactory -ga qo'ng'iroq qilish imkoniyati mavjud ilovada mumkin emas. Bunday holda, siz Fayl tizimidan foydalanib fayl uchun kirish oqimini ochishingiz kerak .


Hadoop fayl tizimidagi fayl Hadoop ob'ekti bilan ifodalanadi Hadoop Path ( java.io File, chunki ikkinchisining semantikasi mahalliy fayl tizimi bilan juda chambarchas bog'langan). Yo'l ob'ekti URI sifatida qarash mumkin Hadoop fayl tizimida ( masalan , hdfs : //localhost/user/tom/quangle.txt )
FileSystem - umumiy API fayl tizimi, shuning uchun birinchi qadam biz foydalanmoqchi bo'lgan fayl tizimining namunasini olishdir - HDFS bizning holatimizda. FileSystem namunasini olish uchun bir nechta statik zavod usullari mavjud
Konfiguratsiya ob'ektida konfiguratsiya fayllarida belgilangan mijoz yoki server konfiguratsiyasini inkapsullaydi (masalan, conf / core - sayt .xml ) . Birinchi usul standart fayl tizimini qaytaradi ( conf / core - site.xml faylida ko'rsatilgan yoki o'rnatilmagan bo'lsa, mahalliy standart fayl tizimi) . Ikkinchi usul berilgan URI ning sxemasi va vakolatidan fayl tizimini aniqlaydi ; agar sxema URIda bo'lsa ko'rsatilmagan, standart fayl tizimi ishlatiladi. Uchinchi usul fayl tizimi obyektini berilgan foydalanuvchi nomidan oladi, bu xavfsizlik kontekstida muhim ahamiyatga ega .



FSDataInputStream
FileSystem obyektining open () usuli standart java sinfi o'rniga . io FSDataInputStream sinfining ob'ektini qaytaradi . Bu sinf java ixtisoslashuvidir .io.DataInputStream oqimning istalgan qismidan ma'lumotlarni o'qish imkonini beruvchi tasodifiy kirish yordami bilan:
Fayl uzunligidan kattaroq joyda seek () ni chaqirish IOException ni chiqaradi Java sinfining skip() usulidan farqli o'laroq .io.InputStream, oqimni joriy pozitsiyadan tashqaridagi nuqtaga olib boradi, seek( ) usuli fayldagi ixtiyoriy mutlaq pozitsiyaga o'tish imkonini beradi.
Listing 3.3 Listing 3.2 ning kengaytmasi bo'lib, faylni standart chiqishga ikki marta yuboradi va birinchi marta faylning boshida joylashgan.
Seekable interfeys joylashishni aniqlashni ta'minlaydi va fayl boshidan joriy ofsetni olish usulini o'z ichiga oladi (getPos()):
Fayl uzunligidan kattaroq joyda seek () ni chaqirish IOException ni chiqaradi Java sinfining skip() usulidan farqli o'laroq . io.InputStream, oqimni joriy pozitsiyadan tashqaridagi nuqtaga olib boradi, seek ( ) usuli fayldagi ixtiyoriy mutlaq pozitsiyaga o'tish imkonini beradi.
Listing 3.3 Listing 3.2 ning kengaytmasi bo'lib, faylni standart chiqishga ikki marta yuboradi va birinchi marta faylning boshida joylashgan.

Read() usuli length gacha o'qiydi baytlar berilgan fayl pozitsiyasidan ofset ofsetidagi pozitsiyaga buferda buffer.Qaytish qiymati haqiqatda o'qilgan baytlar sonini o'z ichiga oladi ; qo'ng'iroq qilayotganda, siz qabul qilingan qiymatni tekshirishingiz kerak, chunki u uzunlikdan kamroq bo'lishi mumkin . readFully () usullari buffer.length ga o'qiladi bayt (yoki bufer . uzunlik bufer bayt massivini qabul qiluvchi versiya uchun ); agar bu faylning oxiriga yetsa, EOFException yuboriladi .
Ushbu usullarning barchasi joriy fayl ofsetini saqlaydi va thread -safe . Ular faylning asosiy mazmunini o'qish paytida faylning boshqa qismlariga (masalan, metama'lumotlarga) murojaat qilish uchun qulay mexanizmni ta'minlaydi.
Nihoyat, shuni yodda tutingki, seek () qo'ng'irog'i nisbatan qimmat va ehtiyotkorlik bilan ishlatilishi kerak. Ilovadagi ma'lumotlarga kirish modeli bir nechta joylashishni aniqlash operatsiyalariga emas, balki oqimli ma'lumotlarni qayta ishlashga asoslangan bo'lishi kerak (masalan, MapReduce yordamida ) .

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