Apache Hadoop

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

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