В този урок за Hadoop ще ви обясним концепцията за локализиране на данни в Hadoop.
На първо място ще видим въведението в MapReduce Data Locality в Hadoop, след това ще обсъдим необходимостта от Hadoop Data Locality след това с категориите Data Locality в MapReduce, Оптимизация на локализиране на данни.
Най-накрая ще видим предимствата на принципа на Hadoop Data Locality в този урок за MapReduce.
Какво е локализиране на данни в Hadoop MapReduce?
Локалността на данните в Hadoop е процесът на преместване на изчислението близо до мястото, където се намират действителните данни, вместо преместване на големи данни към изчисление. Това свежда до минимум общото претоварване на мрежата. Това също така увеличава общата пропускателна способност на системата.
Основният недостатък на Hadoop беше мрежов трафик с кръстосано превключване поради огромното количество данни. За да се преодолее този недостатък, се появи Data Locality.
В Hadoop, HDFS съхранява набори от данни. Framework разделя набори от данни на блокове и съхранява в възлите на данни. Когато клиент стартира заданието MapReduce, NameNode изпраща кода MapReduce до възлите с данни, за които има налични данни според заданието MapReduce.
Изискване за локализиране на данни на Hadoop
Архитектурата на Hadoop трябва да отговаря на следните условия, за да се възползвате от всички предимства на локализиране на данни:
- Първо, клъстерът Hadoop трябва да има подходяща топология. Кодът на Hadoop трябва да има способността да чете местоположението на данните.
- Второ, Apache Hadoop трябва да е наясно с топологията на възлите, където се изпълняват задачите. Също така Hadoop трябва да знае къде се намират данните.
Категории локализиране на данни в Hadoop
Различните категории в Hadoop Data Locality са както следва:
1. Локално местоположение на данни в Hadoop
При това данните се намират на същия възел като mapperа работи върху данните. При това близостта на данните е много близка до изчислението. Локалността на данните е най-предпочитаният сценарий.
2. Местоположение на данни в стелажа в Hadoop
Както знаем, че не винаги е възможно да се изпълни картографът на един и същ възел за данни поради ограничения на ресурсите. В този случай е за предпочитане да стартирате mapper на различен възел, но на същия багажник.
3. Местоположение за данни между стелажи в Hadoop
Понякога също не е възможно да се изпълни mapper на различен възел в същия багажник. В такава ситуация ще изпълним мапера на възлите на различни стелажи. Местоположението на данни между стелажите е най-малко предпочитаният сценарий.
Оптимизиране на локализиране на данни на Hadoop
Тъй като локализирането на данните е основното предимство на Hadoop MapReduce. Но това не винаги е от полза на практика поради различни причини като хетерогенен клъстер, спекулативно изпълнение, разпределение и разположение на данни и оформление на данните.
В големите клъстери предизвикателствата стават все по-разпространени. Тъй като в големия клъстер повече е броят на възлите с данни и данните, толкова по-малко е местността.
В по-големите клъстери някои възли са по-нови и по-бързи от другите, създавайки съотношението данни към изчисляване извън баланса. По този начин големите клъстери обикновено не са напълно хомогенни.
В Hadoop спекулативно изпълнение, тъй като данните може да не са локални, но използва изчислителната мощност. Основната причина също се крие в оформлението/разположението на данните. Освен това нелокалната обработка на данни натоварва мрежата, което създава проблем за мащабируемостта. Следователно мрежата се превръща в тесно място.
Можем също да подобрим локализиране на данните, като първо открием кои работни места са се влошили с времето или проблем с локализиране на данните. Решаването на проблеми е по-сложно и включва промяна на разположението на данните и оформлението на данните с помощта на различен планировчик.
След това трябва да проверим дали новото изпълнение на същото работно натоварване има по-добро съотношение на локализиране на данни.
Предимства на локализиране на данни в Hadoop
- Висока пропускателна способност – Локалността на данните в Hadoop увеличава общата пропускателна способност на системата.
- По-бързо изпълнение – В локализиране на данни рамката премества кода към възела, където се намират данните, вместо да премества големи данни към възела. По този начин това прави Hadoop по-бърз. Тъй като размерът на програмата винаги е по-малък от размера на данните, така че преместването на данни е пречка за мрежовия трансфер.
Заключение
В заключение, локализирането на данни в Hadoop подобрява цялостното изпълнение на системата и прави Hadoop по-бърз. Следователно намалява претоварването на мрежата.
Ако намирате този блог за полезен или имате някакви въпроси, оставете коментар в секцията за коментари по-долу. Ще се радваме да ги разрешим.