Apache Hadoop

Apache Hadoop
Типпрограмний каркас Редагувати інформацію у Вікіданих
АвториDoug Cuttingd і Mike Cafarellad Редагувати інформацію у Вікіданих
РозробникApache Software Foundation Редагувати інформацію у Вікіданих
Стабільний випуск3.0.0 (13 грудня 2017 (2017-12-13))
Платформавіртуальна машина 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 — вільна програмна платформа і каркас для організації розподіленого зберігання і обробки наборів великих даних з використанням моделі програмування MapReduce, при якій завдання ділиться на багато дрібніших відособлених фрагментів, кожен з яких може бути запущений на окремому вузлі кластера, що складається з серійних комп'ютерів. Всі модулі в Hadoop спроєктовані з врахуванням припущення, що апаратне забезпечення часто виходить з ладу і такі ситуації повинні автоматично опрацьовуватись фреймворком.[1]

Ядро системи Apache Hadoop складається з розподіленої файлової системи Hadoop Distributed Filesystem (HDFS), та системи обчислень на основі моделі програмування MapReduce. Hadoop розділяє файли на великі блоки і розподіляє їх між вузлами кластера. Тоді він передає запакований код на вузли для паралельної обробки даних. Цей підхід користується локальністю даних,[2] коли вузли маніпулюють лише даними до яких мають доступ. Це дозволяє обробляти набір даних швидше і ефективніше ніж в традиційнішій суперкомп'ютерній архітектурі яка покладається на паралельну файлову систему в якій обчислення та дані для них передаються через високошвидкісну мережу.[3][4]

Основний фреймворк Apache Hadoop складається з наступних модулів:

  • Hadoop Common — містить бібліотеки та утиліти потрібні іншим модулям Hadoop;
  • Hadoop Distributed File System (HDFS) — розподілена файлова система, яка зберігає дані на звичайних машинах, надаючи дуже високу загальну пропускну здатність на кластері загалом;
  • Hadoop YARN — платформа що відповідає за керування обчислювальними ресурсами в кластерах і їх використання для користувацьких завдань.[5][6]
  • Hadoop MapReduce — реалізація моделі програмування MapReduce для обробки великих об'ємів даних.

З часом, термін Hadoop почав вживатись не тільки щодо вищезгаданих базових модулів та підмодулів, а й до «екосистеми»,[7] тобто набору додаткових пакетів програмного забезпечення, які можуть встановлюватись поверх, або поряд з Hadoop, наприклад таких як Apache Pig, Apache Hive, Apache HBase, Apache Phoenix, Apache Spark, Apache ZooKeeper, Cloudera Impala, Apache Flume, Apache Sqoop, Apache Oozie, та Apache Storm.[8]

MapReduce та HDFS в Apache Hadoop's були натхненними статтями Google про їх алгоритм MapReduce та Google File System.[9]

Фреймворк Hadoop написаний переважно на Java, з частиною системного коду на C та утилітами командного рядка як shell скрипти. Хоча в програмах MapReduce звичайним є код на Java, для реалізації «map» та «reduce» частин користувацької програми можна використовувати будь-яку мову програмування завдяки «Hadoop Streaming».[10] Інші проєкти в екосистемі Hadoop надають багатші інтерфейси користувача.

Історія

Розробка була ініційована на початку 2005 Дуґом Каттінгом з метою побудови програмної інфраструктури розподілених обчислень для проєкту Nutch — вільної програмної пошукової машини на Java, її ідейною основою стала публікація співробітників Google Джеффрі Діна і Санжая Гемавата[11] про обчислювальну концепцію MapReduce[12]. Новий проєкт був названий на честь іграшкового слоненяти дитини засновника проєкту.

Протягом 2005—2006 років Hadoop розвивався зусиллями двох розробників — Каттінга і Майка Кафареллі (Mike Cafarella) в режимі часткової зайнятості[12], спочатку в рамках проєкту Nutch, потім — проєкту Lucene. У січні 2006 року корпорація Yahoo запросила Каттінга очолити спеціально виділену команду розробки інфраструктури розподілених обчислень, до цього ж моменту відноситься виділення Hadoop в окремий проєкт. У лютому 2008 року Yahoo запустила в продуктивну експлуатацію кластерну пошукову машину на 10 тисяч процесорних ядер, керовану засобами Hadoop.

У січні 2008 року Hadoop стає проєктом верхнього рівня системи проєктів Apache Software Foundation. У квітні 2008 року Hadoop побив світовий рекорд продуктивності в стандартизованому бенчмарку сортування даних — 1 Тбайт був оброблений за 309 сек на кластері з 910 вузлів. З цього моменту починається широке застосування Hadoop за межами Yahoo — технологію для своїх сайтів впроваджують Last.fm, Facebook, The New York Times, проводиться адаптація для запуску Hadoop у хмарах Amazon EC2.

У вересні 2009 року Каттинг переходить в каліфорнійський стартап Cloudera, який, завдяки такому переходу, коментатори характеризують як «нового прапороносця Hadoop», попри те, що основна частина проєкту була створена все-таки співробітниками Facebook і Yahoo[13].

У квітні 2010 року корпорація Google надала Apache Software Foundation права на використання технології MapReduce, через три місяці після її захисту в патентному бюро США, тим самим позбавивши організацію можливих патентних претензій[14].

Починаючи з 2010 року Hadoop неодноразово характеризується як ключова технологія «Великих Даних», прогнозується його широке розповсюдження для масово-паралельної обробки даних, і, разом з Cloudera, з'явилася серія технологічних стартапів, повністю орієнтованих на комерціалізацію Hadoop[15]. Протягом 2010 року декілька підпроєктів Hadoop — Avro, HBase, Hive, Pig, Zookeeper — послідовно стали проєктами верхнього рівня фонду Apache. У березні 2011 року Hadoop удостоєний щорічної інноваційної нагороди медіагрупи Guardian, на церемонії вручення технологія була названа «швейцарським армійським ножем XXI століття»[16].

Архітектура

Hadoop складається з пакету Hadoop Common, який надає абстракції операційної та файлової системи, рушій MapReduce (або MapReduce/MR1 або YARN/MR2)[17] та Hadoop Distributed File System (HDFS). Пакет Hadoop Common містить файли JAR та скрипти, потрібні для запуску Hadoop.

Застосування

Hadoop активно використовується у великих промислових проєктах, надаючи можливості, аналогічні платформі Google Bigtable/GFS/MapReduce, при цьому компанія Google офіційно делегувала Hadoop та іншим проєктам Apache право використання технологій, на які поширюються патенти, пов'язані з методом MapReduce. Одним з найбільших користувачів і розробників Hadoop є компанія Yahoo!, вона активно використовує цю систему в своїх пошукових кластерах (Hadoop-кластеру Yahoo, що складається з 40 тисяч вузлів, належить світовий рекорд швидкості сортування великого обсягу даних). Hadoop-кластер використовується в Facebook для обробки однієї з найбільших баз даних, в якій зберігається близько 30 петабайт інформації. Hadoop також лежить в основі платформи Oracle Big Data і активно адаптується компанією Microsoft для роботи з СУБД SQL Server, Windows Server і хмарній платформі Azure Cloud з метою створення нових продуктів для організації розподіленої обробки великих обсягів даних. Hadoop є одним з ключових ланок суперкомп'ютера IBM Watson, який виграв бій з найкращими гравцями телевізійної гри-вікторини «Jeopardy!».

Хостинг Hadoop у хмарах

Hadoop може розгортатись як в традиційному датацентрі всередині підприємства, так і в хмарах.[18] Хмари дозволяють організаціям розгортати Hadoop без необхідності купляти апаратне забезпечення та утримувати фахівців із відповідною кваліфікацією.[19] До вендорів, які надають хмарні сервіси Hadoop, входять Microsoft, Amazon, IBM,[20] Google, Oracle[21] та CenturyLink[22]

Виноски

  1. ↑ Welcome to Apache™ Hadoop®!. Архів оригіналу за 23 вересня 2017. Процитовано 10 вересня 2017.
  2. ↑ What is the Hadoop Distributed File System (HDFS)?. ibm.com. IBM. Архів оригіналу за 8 січня 2017. Процитовано 30 жовтня 2014.
  3. ↑ Malak, Michael (19 вересня 2014). Data Locality: HPC vs. Hadoop vs. Spark. datascienceassn.org. Data Science Association. Архів оригіналу за 10 вересня 2017. Процитовано 30 жовтня 2014.
  4. ↑ Characterization and Optimization of Memory-Resident MapReduce on HPC Systems. IEEE. Жовтень 2014. Архів оригіналу (pdf) за 22 серпня 2017. Процитовано 10 вересня 2017.
  5. ↑ Resource (Apache Hadoop Main 2.5.1 API). apache.org. Apache Software Foundation. 12 вересня 2014. Архів оригіналу за 6 жовтня 2014. Процитовано 30 вересня 2014. [Архівовано 2014-10-06 у Wayback Machine.]
  6. ↑ Murthy, Arun (15 серпня 2012). Apache Hadoop YARN – Concepts and Applications. hortonworks.com. Hortonworks. Архів оригіналу за 11 вересня 2017. Процитовано 30 вересня 2014.
  7. ↑ Continuuity Raises $10 Million Series A Round to Ignite Big Data Application Development Within the Hadoop Ecosystem. finance.yahoo.com. Marketwired. 14 листопада 2012. Архів оригіналу за 10 вересня 2017. Процитовано 30 жовтня 2014.
  8. ↑ Hadoop-related projects at. Hadoop.apache.org. Архів оригіналу за 23 вересня 2017. Процитовано 17 жовтня 2013.
  9. ↑ Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons. 19 грудня 2014. с. 300. ISBN 9781118876220. Архів оригіналу за 6 грудня 2016. Процитовано 29 січня 2015.
  10. ↑ [nlpatumd] Adventures with Hadoop and Perl. Mail-archive.com. 2 травня 2010. Архів оригіналу за 14 серпня 2017. Процитовано 5 квітня 2013.
  11. ↑ Dean, Jeffrey and Ghemawat, Sanjay. MapReduce: Simplified Data Processing on Large Clusters : [англ.] // OSDI ’04: 6th Symposium on Operating Systems Design and Implementation. — USENIX, 2004. — С. 137-149. — doi:10.1145/1327452.1327492.
  12. ↑ а б Cutting, Doug (24 березня 2008). Hadoop: a brief history (PDF) (англійською) . Yahoo!. Архів оригіналу (PDF) за 11 березня 2012. Процитовано 25 грудня 2011. [Архівовано 2012-03-23 у Wayback Machine.]
  13. ↑ Handy, Alex (9 жовтня 2009). Hadoop creator goes to Cloudera (англійською) . SD Times. Архів оригіналу за 11 березня 2012. Процитовано 25 грудня 2011. I've said for a while now that Cloudera is the company with the Hadoop banner firmly in its grasp, despite the fact that Yahoo and Facebook both contribute mountains of code the project [Архівовано 2010-11-20 у Wayback Machine.]
  14. ↑ Metz, Cade (27 квітня 2010). Google blesses Hadoop with MapReduce patent license (англійською) . The Register. Архів оригіналу за 11 березня 2012. Процитовано 30 грудня 2011.
  15. ↑ Моррисон, Алан та інші (17 грудня 2010). Великі Дані: як витягти з них інформацію (PDF). Технологический прогноз. Ежеквартальный журнал, российское издание, 2010 выпуск 3 (російською) . PricewaterhouseCoopers. Архів оригіналу за 11 березня 2012. Процитовано 12 листопада 2011. К началу 2010 года Hadoop, MapReduce и ассоциированные с ними технологии с открытым кодом стали движущей силой целого нового явления, которое O’Reilly Media, The Economist и другие издания окрестили большими данными
  16. ↑ Winckler, Marie (25 березня 2011). Apache Hadoop takes top prize at Media Guardian Innovation Awards (англійською) . The Guardian. Архів оригіналу за 11 березня 2012. Процитовано 25 грудня 2011. Described by the judging panel as a “Swiss army knife of the 21st century”, Apache Hadoop picked up the innovator of the year award for having the potential to change the face of media innovations
  17. ↑ Chouraria, Harsh (21 жовтня 2012). MR2 and YARN Briefly Explained. cloudera.com. Cloudera. Архів оригіналу за 22 жовтня 2013. Процитовано 23 жовтня 2013.
  18. ↑ What is Hadoop?. Архів оригіналу за 11 вересня 2017. Процитовано 10 вересня 2017.
  19. ↑ Hadoop. Azure.microsoft.com. Архів оригіналу за 11 вересня 2017. Процитовано 22 липня 2014.
  20. ↑ ibm-biginsights-on-cloud. Архів оригіналу за 11 вересня 2017. Процитовано 10 вересня 2017.
  21. ↑ Oracle's cloud analytics platform comprises several tools. Архів оригіналу за 31 березня 2016. Процитовано 8 квітня 2016.
  22. ↑ Архівована копія. Архів оригіналу за 30 березня 2022. Процитовано 19 квітня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання