Apache Hadoop

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з YARN)
Перейти до навігації Перейти до пошуку
Apache Hadoop
Типпрограмний каркас
Автори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 надають багатші інтерфейси користувача.

Історія

[ред. | ред. код]

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

Протягом 2005—2006 років Hadoop розвивався зусиллями двох розробників — Каттінга і Майка Кафареллі (Mike Cafarella) в режимі часткової зайнятості[13], спочатку в рамках проєкту 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[14].

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

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

Архітектура

[ред. | ред. код]

Hadoop складається з пакету Hadoop Common, який надає абстракції операційної та файлової системи, рушій MapReduce (або MapReduce/MR1 або YARN/MR2)[18] та 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 може розгортатись як в традиційному датацентрі всередині підприємства, так і в хмарах.[19] Хмари дозволяють організаціям розгортати Hadoop без необхідності купляти апаратне забезпечення та утримувати фахівців із відповідною кваліфікацією.[20] До вендорів, які надають хмарні сервіси Hadoop, входять Microsoft, Amazon, IBM,[21] Google, Oracle[22] та CenturyLink[en][23]

Виноски

[ред. | ред. код]
  1. Release 3.4.0 available
  2. Welcome to Apache™ Hadoop®!. Архів оригіналу за 23 вересня 2017. Процитовано 10 вересня 2017.
  3. What is the Hadoop Distributed File System (HDFS)?. ibm.com. IBM. Архів оригіналу за 8 січня 2017. Процитовано 30 жовтня 2014.
  4. Malak, Michael (19 вересня 2014). Data Locality: HPC vs. Hadoop vs. Spark. datascienceassn.org. Data Science Association. Архів оригіналу за 10 вересня 2017. Процитовано 30 жовтня 2014.
  5. Characterization and Optimization of Memory-Resident MapReduce on HPC Systems. IEEE. October 2014. Архів оригіналу (pdf) за 22 серпня 2017. Процитовано 10 вересня 2017.
  6. Resource (Apache Hadoop Main 2.5.1 API). apache.org. Apache Software Foundation. 12 вересня 2014. Архів оригіналу за 6 жовтня 2014. Процитовано 30 вересня 2014.
  7. Murthy, Arun (15 серпня 2012). Apache Hadoop YARN – Concepts and Applications. hortonworks.com. Hortonworks. Архів оригіналу за 11 вересня 2017. Процитовано 30 вересня 2014.
  8. 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.
  9. Hadoop-related projects at. Hadoop.apache.org. Архів оригіналу за 23 вересня 2017. Процитовано 17 жовтня 2013.
  10. Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons. 19 грудня 2014. с. 300. ISBN 9781118876220. Архів оригіналу за 6 грудня 2016. Процитовано 29 січня 2015.
  11. [nlpatumd] Adventures with Hadoop and Perl. Mail-archive.com. 2 травня 2010. Архів оригіналу за 14 серпня 2017. Процитовано 5 квітня 2013.
  12. 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.
  13. а б Cutting, Doug (24 березня 2008). Hadoop: a brief history (PDF) (англійською) . Yahoo!. Архів оригіналу (PDF) за 11 березня 2012. Процитовано 25 грудня 2011.
  14. 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
  15. Metz, Cade (27 квітня 2010). Google blesses Hadoop with MapReduce patent license (англійською) . The Register. Архів оригіналу за 11 березня 2012. Процитовано 30 грудня 2011.
  16. Моррисон, Алан та інші (17 грудня 2010). Великі Дані: як витягти з них інформацію (PDF). Технологический прогноз. Ежеквартальный журнал, российское издание, 2010 выпуск 3 (російською) . PricewaterhouseCoopers. Архів оригіналу за 11 березня 2012. Процитовано 12 листопада 2011. К началу 2010 года Hadoop, MapReduce и ассоциированные с ними технологии с открытым кодом стали движущей силой целого нового явления, которое O’Reilly Media, The Economist и другие издания окрестили большими данными
  17. 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
  18. Chouraria, Harsh (21 жовтня 2012). MR2 and YARN Briefly Explained. cloudera.com. Cloudera. Архів оригіналу за 22 жовтня 2013. Процитовано 23 жовтня 2013.
  19. What is Hadoop?. Архів оригіналу за 11 вересня 2017. Процитовано 10 вересня 2017.
  20. Hadoop. Azure.microsoft.com. Архів оригіналу за 11 вересня 2017. Процитовано 22 липня 2014.
  21. ibm-biginsights-on-cloud. Архів оригіналу за 11 вересня 2017. Процитовано 10 вересня 2017.
  22. Oracle's cloud analytics platform comprises several tools. Архів оригіналу за 31 березня 2016. Процитовано 8 квітня 2016.
  23. Архівована копія. Архів оригіналу за 30 березня 2022. Процитовано 19 квітня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання

[ред. | ред. код]