Apache Hadoop
З Вікіпедії, безкоштовно encyclopedia
|posix compliant=
![]() | |
Тип | програмний каркас |
---|---|
Автори | Doug Cuttingd і Mike Cafarellad |
Розробник | Apache Software Foundation |
Стабільний випуск | 3.0.0 (13 грудня 2017; 6 років тому (2017-12-13)) |
Версії | 3.4.0 (17 березня 2024)[1] |
Платформа | віртуальна машина Java |
Операційна система | кросплатформова програма і POSIX |
Мова програмування | Java |
Стан розробки | активний |
Ліцензія | Apache Software License 2.0d і GNU GPL |
Онлайн-документація | cwiki.apache.org/confluence/display/hadoop |
Репозиторій | https://git-wip-us.apache.org/repos/asf/hadoop.git, https://gitbox.apache.org/repos/asf?p=hadoop.git, https://github.com/apache/hadoop |
Вебсайт | hadoop.apache.org |
Apache Hadoop — вільна програмна платформа і каркас для організації розподіленого зберігання[en] і обробки наборів великих даних з використанням моделі програмування[en] MapReduce, при якій завдання ділиться на багато дрібніших відособлених фрагментів, кожен з яких може бути запущений на окремому вузлі кластера, що складається з серійних комп'ютерів[en]. Всі модулі в Hadoop спроєктовані з врахуванням припущення, що апаратне забезпечення часто виходить з ладу і такі ситуації повинні автоматично опрацьовуватись фреймворком.[2]
Ядро системи Apache Hadoop складається з розподіленої файлової системи Hadoop Distributed Filesystem (HDFS), та системи обчислень на основі моделі програмування MapReduce. Hadoop розділяє файли на великі блоки і розподіляє їх між вузлами кластера. Тоді він передає запакований код на вузли для паралельної обробки даних. Цей підхід користується локальністю даних[en],[3] коли вузли маніпулюють лише даними до яких мають доступ. Це дозволяє обробляти набір даних швидше і ефективніше ніж в традиційнішій суперкомп'ютерній архітектурі[en] яка покладається на паралельну файлову систему[en] в якій обчислення та дані для них передаються через високошвидкісну мережу.[4][5]
Основний фреймворк Apache Hadoop складається з наступних модулів:
- Hadoop Common — містить бібліотеки та утиліти потрібні іншим модулям Hadoop;
- Hadoop Distributed File System (HDFS) — розподілена файлова система, яка зберігає дані на звичайних машинах, надаючи дуже високу загальну пропускну здатність на кластері загалом;
- Hadoop YARN — платформа що відповідає за керування обчислювальними ресурсами в кластерах і їх використання для користувацьких завдань.[6][7]
- Hadoop MapReduce — реалізація моделі програмування MapReduce для обробки великих об'ємів даних.
З часом, термін Hadoop почав вживатись не тільки щодо вищезгаданих базових модулів та підмодулів, а й до «екосистеми»,[8] тобто набору додаткових пакетів програмного забезпечення, які можуть встановлюватись поверх, або поряд з Hadoop, наприклад таких як Apache Pig[en], Apache Hive[en], Apache HBase[en], Apache Phoenix[en], Apache Spark, Apache ZooKeeper[en], Cloudera Impala[en], Apache Flume[en], Apache Sqoop, Apache Oozie[en], та Apache Storm[en].[9]
MapReduce та HDFS в Apache Hadoop's були натхненними статтями Google про їх алгоритм MapReduce та Google File System.[10]
Фреймворк Hadoop написаний переважно на Java, з частиною системного коду на C та утилітами командного рядка як shell скрипти[en]. Хоча в програмах MapReduce звичайним є код на Java, для реалізації «map» та «reduce» частин користувацької програми можна використовувати будь-яку мову програмування завдяки «Hadoop Streaming».[11] Інші проєкти в екосистемі Hadoop надають багатші інтерфейси користувача.