Категории

Apache Hadoop

Apache Hadoop – Apache Software Foundation, свободно разпространяван набор от помощни програми, библиотеки и рамки за разработване и изпълнение на разпределени програми, работещи върху клъстери от стотици или хиляди възли. Той се използва за реализиране на механизми за търсене и контекст за много силно натоварени уебсайтове, включително Yahoo! и Facebook. Разработен в Java в рамките на изчислителната парадигма MapReduce, според която едно приложение се разделя на голям брой идентични елементарни задачи, изпълнявани на клъстерни възли, и естествено се обединяват в краен резултат.

Apache Software Към 2014 г. проектът се състои от четири модула – Hadoop Common (междинен софтуер – набор от инфраструктурни софтуерни библиотеки и помощни програми, използвани за други модули и свързани проекти), HDFS (разпределена файлова система), YARN (система за планиране на задачи и управление на клъстери) и Hadoop MapReduce (платформа за програмиране и изпълнение на разпределени MapReduce-изчисления); преди това Apache Hadoop включваше редица други проекти, които се превърнаха Foundation.

Смята се за една от основополагащите технологии на „големите данни“. Около Apache Hadoop се е оформила цяла екосистема от свързани проекти и технологии, много от които първоначално са били разработени в рамките на проекта, а по-късно са станали независими. От втората половина на 2000-те години насам се наблюдава активна комерсиализация на технологията, като няколко компании изграждат бизнеса си изцяло върху създаването на търговски дистрибуции на Apache Hadoop и услуги за техническа поддръжка на екосистемата, а практически всички големи ИТ доставчици за организации включват Apache Hadoop в своите продуктови стратегии и линии от решения под една или друга форма.

Една от основните цели на Apache Hadoop първоначално беше да се осигури хоризонтална мащабируемост на клъстера чрез добавяне на евтини възли (хардуер за масовия пазар, commodity hardware ), без да се прибягва до мощни сървъри и скъпи мрежи за съхранение. Функциониращите клъстери от хиляди възли потвърждават осъществимостта и рентабилността на такива системи, като по този начин към 2011 г. са известни големи клъстери Apache Hadoop в Yahoo! (повече от 4 хил. възли с общ капацитет за съхранение от 15 байта), Facebook (около 2 хил. възли за 21 байта) и Ebay (700 възли за 16 байта). Смята се обаче, че хоризонталната мащабируемост в системите Hadoop-е ограничена, като за Apache Hadoop до 2.0 максималната възможна е оценена на 4 хил. възела при използване на 10 MapReduce-задания на възел. Това ограничение до голяма степен се дължеше на концентрацията на функциите за наблюдение на жизнения цикъл на задачите в модула MapReduce. Смята се, че с премахването им в модула YARN в Apache Hadoop 2.0 и децентрализацията – разпределяне на част от функциите за наблюдение към обработващите възли – хоризонталната мащабируемост се е увеличила.

Друго ограничение на системите Hadoop-е размерът на оперативната памет на възела за имена (NameNode), в който се съхранява цялото пространство от имена на клъстера за разпределена обработка, докато общият брой файлове, които могат да се обработват от възела за имена, е 100 милиона. За да се преодолее това ограничение, се работи по разпределянето на възела на пространството от имена, който в настоящата архитектура е един възел за целия клъстер, на няколко независими възела. Друга възможност за преодоляване на това ограничение е да се използват разпределени СУБД върху HDFS, като например Apache HBase, роля на файловете икаталози, в които от гледна точка на приложението играят роля записи в една голяма таблица от базата данни.

Към 2011 г. един типичен клъстер е изграден от еднопроцесорни многоядрени x86-64-възли, работещи на Linux, с 3-12 дискови устройства за съхранение, свързани с мрежа със скорост 1 Gbps. Съществуват тенденции както към намаляване на изчислителната мощност на възлите и използване на процесори с ниска консумация на енергия (ARM, Intel Atom ), така и към използване на високопроизводителни изчислителни възли в комбинация с високоскоростни мрежови решения (InfiniBand в Oracle Big Data Appliance, високопроизводителна мрежа за съхранение в Fibre Channel и Ethernet 10 Gbps пропускателна способност в шаблонни конфигурации FlexPod за “

Мащабируемостта на системите Hadoop-зависи до голяма степен от характеристиките на обработваните данни, най-вече от тяхната вътрешна структура и функции за извличане на необходимата информация от тях, и от сложността на задачата за обработка, които от своя страна диктуват организацията на циклите за обработка, изчислителната интензивност на атомарните операции и в крайна сметка нивото на паралелизъм и натовареността на клъстера. В ръководството Apache Hadoop (първи версии, по-ранни 2.0) се посочва, че приемливо ниво на паралелизъм е използването на 10-100 екземпляра на базови обработчици на клъстерен възел, а за задачи, които не изискват значително процесорно време – до 300; за конволюциите беше счетено за оптимално използването им от броя на възлите, умножен по коефициент от интервала от 0,95 до 1,75 и константата mapred.tasktracker.reduce.tasks.maximum.. При голяма стойност на коефициента най-бързите възли, след като са приключили първия кръг от информация, ще получат по-рано втората партида междинни двойки за обработка; по този начин увеличаването на коефициента претоварва клъстера, но осигурява по-ефективно разпределение на натоварването. Вместо това YARN използва конфигурационни константи, които определят стойностите на наличната оперативна памет и виртуалните процесорни ядра, достъпни за планиращия ресурсите, въз основа на които се определя нивотона паралелизъм.

Категории: За разработчици, За уеб разработчици, Компоненти и библиотеки, Средства за разработка, Уеб фреймворкове

Реклама