AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI
RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL – XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
FARG‘ONA FILIALI
“Kompyuter injiniring” fakulteti
Kompyuter injiniring yo‘nalishi
614-19 – guruh talabasi
Avazov Islombekning
“MA’LUMOTLAR KOMMUNIKATSIYASI”
fanidan tayyorlagan
AMALIY MASHG‘ULOT
ISHLARI
Topshirdi: Avazov.I
Qabul qildi: O.I.Ergashev
Farg‘ona 2023
AMALIY MASHG‘ULOT- 13
Mavzu: Ma'lumotlar oqimi
Ishning maqsadi: Dis - tributedFileSystem misolini o'rganish.
Faylni o'qish
HDFS , nom tugunlari va ma'lumotlar tugunlari bilan o'zaro aloqada bo'lgan mijoz o'rtasida ma'lumotlarni uzatish qanday tashkil etilganligi haqida tasavvurga ega bo'lish uchun rasmga qarang. 3.2. U faylni o'qiyotganda voqealarning asosiy ketma-ketligini ko'rsatadi.
HDFS uchun FileSystem ob'ektining open() usulini chaqirish orqali ma'lumotlarni o'qimoqchi bo'lgan faylni ochadi . Dis -tributedFileSystem ning namunasidir (3.2-rasmdagi 1-bosqich). Distributed FileSystem faylning bir nechta dastlabki bloklarini topish uchun RPC yordamida nom tuguniga kiradi
(2 – bosqich) . Har bir blok uchun nom tugunlari blok nusxasini o'z ichiga olgan ma'lumotlar tugunlarining manzillarini qaytaradi . Bundan tashqari, ma'lumotlar tugunlari mijozga yaqinlik darajasi bo'yicha tartiblanadi (klaster tarmog'i topologiyasi bo'yicha; "Tarmoq topologiyasi", 387 -betga qarang ). Agar mijozning o'zi ma'lumotlar tuguni bo'lsa (masalan, MapReduce vazifalari bo'lsa ), u mahalliy ma'lumotlar tugunidan ma'lumotlarni o'qiydi, agar ikkinchisida blokning nusxasi bo'lsa (shuningdek, 2.2-rasmga qarang).
Rasm. 3.2. HDFS dan mijoz tomonidan ma'lumotlarni o'qish.
DistributedFileSystem obyekti FSDataInputStream obyektini qaytaradi Mijoz ma'lumotlarni o'qiyotgan (joylashuvni aniqlash qo'llab-quvvatlanadigan kirish oqimi). O'z navbatida, FSDataInputStream ma'lumotlar tugunlarining kirish/chiqishini va nom tugunini boshqaradigan DFSInputStream ob'ektini o'z ichiga oladi .
Keyin mijoz oqimdagi read() ni chaqiradi
(3-bosqich). Fayldagi bir nechta boshlang'ich bloklarning ma'lumotlar tugunlari manzillariga ega bo'lgan DFSInputStream obyekti ¬birinchi blokni olish uchun birinchi (eng yaqin) ma'lumotlar tuguniga ulanadi. Ma'lumotlar ma'lumotlar tugunidan mijozga uzatiladi, u oqimdagi o'qish () ni qayta-qayta chaqiradi
(4-bosqich). DFSInputStream blokining oxiriga yetganda ma'lumotlar tuguniga ulanishni yopadi ¬va keyin keyingi blok uchun eng yaxshi ma'lumotlar tugunini topadi
(5-bosqich). Mijoz uchun sodir bo'layotgan hamma narsa shaffof bo'lib, ma'lumotlar doimiy oqimdan oddiygina o'qiladi.
Agar ma'lumotlar tugunlari bilan ishlashda o'qish paytida xatolik yuzaga kelsa , DFSInputStream ushbu blok uchun keyingi eng yaqin ma'lumotlar tugunidan foydalanishga harakat qiladi. Bundan tashqari, muvaffaqiyatsiz ma'lumotlar tugunlarini eslab qoladi va ularni keyingi bloklar uchun qayta ishlatishga harakat qilmaydi. DFSInputStream shuningdek, ma'lumotlar tugunidan olgan ma'lumotlarning nazorat yig'indisi. Noto'g'ri blokni topganda, u blokning nusxasini boshqa ma'lumot tugunidan o'qishga urinishdan oldin uni nom tuguniga xabar qiladi. Ushbu arxitekturaning muhim xususiyati shundaki, mijoz ma'lumotlarni olish uchun to'g'ridan-to'g'ri ma'lumotlar tugunlariga kiradi va nom tugunlari har bir blok uchun eng yaxshi ma'lumotlar tugunini tanlashga yordam beradi. Ushbu arxitektura HDFS masshtabini ta'minlaydi ko'p sonli bir vaqtning o'zida ¬xizmat ko'rsatuvchi mijozlar uchun, chunki ma'lumotlar trafigi klasterdagi barcha ma'lumotlar tugunlari bo'ylab. Bunday holda, nom tugunlari faqat bloklarning joylashuvi bo'yicha so'rovlarga xizmat qiladi (bu juda samarali, chunki ma'lumotlar xotirada saqlanadi) va mijozlar soni ko'paygan sari to'siqlarni yaratmaslik uchun ma'lumotlarni taqdim etishga harakat qilmaydi.
Do'stlaringiz bilan baham: |