В този урок ще ви предоставим подробно описание на разпределения кеш в Hadoop . Първо ще разберем накратко какво е Hadoop, след това ще видим какво е разпределен кеш в Hadoop.
Ще покрием също работата и внедряването на разпределения кеш на Hadoop. Най-накрая в този блог ще видим и предимствата и недостатъците на разпределеното кеширане в Hadoop.
Въведение в Hadoop
Това е механизъм, който MapReduce framework предоставя за кеширане на файлове, необходими на приложенията. Може да кешира файлове като текстови файлове/файлове с данни само за четене и по-сложни типове като архиви, jar файлове и т.н.
Преди да започнем с разпределения кеш, нека първо обсъдим какво е Hadoop?
Hadoop е с отворен код, базирана на Java рамка за програмиране. Той поддържа обработка и съхранение на изключително големи набори от данни в разпределена среда. Hadoop следва топологията Master-Slave.
Главният е NameNode и Slave е DataNode. Datanode съхранява действителните данни вHDFS . И извършва операция за четене и запис според заявка за клиента. Namenode съхранява метаданни.
В Apache Hadoop парчетата данни се обработват паралелно между Datanodes, като се използва програма, написана от потребителя. Ако искаме да получим достъп до някои файлове от всички Datanodes, тогава ще поставим този файл в разпределения кеш.
Какво е разпределен кеш в Hadoop?
Разпределен кеш в Hadoop е средство, предоставено от рамката MapReduce. Разпределеният кеш може да кешира файлове, когато е необходимо от приложенията. Може да кешира текстови файлове само за четене, архиви, jar файлове и т.н.
След като кешираме файл за нашата работа, Apache Hadoop ще го направи достъпен на всеки възел на данни, където се изпълняват задачи за картиране/намаляване. По този начин имаме достъп до файлове от всички възли с данни в нашата задача MapReduce.
Размер на разпределения кеш
По подразбиране размерът на разпределения кеш е 10 GB. Ако искаме да коригираме размера на разпределения кеш, можем да коригираме с помощта на local .кеша .размер.
Внедряване
Приложение, което ще използва разпределен кеш за разпространение на файл:
- Първо трябва да се уверите, че файлът е наличен.
- След това се уверете, че файлът може да бъде достъпен чрез URL адреси. URL адресите могат да бъдат илиhdfs:// или https://.
След горната проверка, ако файлът присъства на споменатите URL адреси. Потребителят на Hadoop споменава, че това е кеш файл към разпределения кеш. Заданието Hadoop MapReduce ще копира кеш файла на всички възли преди стартиране на задачи на тези възли.
Следвайте следния процес:
a) Копирайте необходимия файл в HDFS:
$ hdfs dfs-put/user/dataflair/lib/jar_file.jar
b) Настройте JobConf на приложението:
DistributedCache.addFileToClasspath(нов път (“/user/dataflair/lib/jar-file.jar”), conf).
c) Добавете го в клас Driver.
Предимства на разпределения кеш
- Единична точка на повреда - Тъй като разпределеният кеш работи в много възли. Следователно, отказът на един възел не води до пълен отказ на кеша.
- Съгласуваност на данните- Той проследява времевите марки за модификация на кеш файловете. След това той уведомява, че файловете не трябва да се променят, докато задачата не се изпълни. Използвайки алгоритъм за хеширане, кеш машината винаги може да определи на кой възел се намира определен ключ-стойност. Както знаем, че винаги има едно състояние на клъстера, така че то никога не е непоследователно.
- Съхранявайте сложни данни – Той разпространява прост текстов файл само за четене. Също така съхранява сложни типове като буркани, архиви. След това тези постижения се деархивират в подчинения възел.
Недостатък на разпределения кеш
Разпределеният кеш в Hadoop има допълнителни разходи, което ще го направи по-бавно от кеша в процес:
a) Сериализация на обекти – Трябва да сериализира обекти. Но механизмът за сериализиране има два основни проблема:
- Много обемисти – Сериализацията съхранява пълно име на клас, клъстер и подробности за сглобяването. Той също така съхранява препратки към други екземпляри в променливи-членове. Всичко това прави сериализацията много обемна.
- Много бавно – Сериализацията използва отражение за проверка на типа информация по време на изпълнение. Отражението е много бавен процес в сравнение с предварително компилирания код.
Заключение
В заключение на разпределения кеш, можем да кажем, че това е съоръжение, предоставено от MapReduce. Той кешира файлове, когато е необходимо от приложенията. Може да кешира текстови файлове само за четене, архиви, jar файлове и т.н.
По подразбиране размерът на разпределения кеш е 10 GB. Ако намерите този блог или имате запитване, свързано с разпределения кеш в Hadoop, не се колебайте да споделите с нас.