Twórca | Doug Cutting i Mike Cafarella ( w ) |
---|---|
Opracowany przez | Fundacja oprogramowania Apache |
Pierwsza wersja | 1 st kwiecień 2006 |
Ostatnia wersja | 3,3. 0 (14 lipca 2020 r) |
Kaucja | git-wip-us.apache.org/repos/asf/hadoop.git , gitbox.apache.org/repos/asf?p=hadoop.git i github.com/apache/hadoop |
Napisane w | Jawa |
System operacyjny | Wieloplatformowy i POSIX |
Środowisko | Maszyna wirtualna Java |
Rodzaj | Struktura |
Licencja | Licencja Apache w wersji 2.0 i Powszechna Licencja Publiczna GNU |
Dokumentacja | wiki.apache.org/hadoop/HowToContribute |
Stronie internetowej | hadoop.apache.org |
Hadoop to darmowa i open source'owa platforma napisana w Javie, mająca na celu ułatwienie tworzenia rozproszonych (przechowywanie i przetwarzanie danych) oraz skalowalnych (skalowalnych) aplikacji umożliwiających pracę z tysiącami węzłów i petabajtami danych. Dlatego każdy węzeł składa się ze standardowych maszyn zgrupowanych w klaster. Wszystkie moduły Hadoop są projektowane z myślą, że awarie sprzętu są częste i dlatego powinny być obsługiwane automatycznie przez framework.
Hadoop został zainspirowany publikacją MapReduce , GoogleFS i BigTable firmy Google . Hadoop został stworzony przez Douga Cuttinga i jest częścią projektów Apache Software Foundation od 2009 roku.
Rdzeń Hadoop składa się z części magazynującej: HDFS ( rozproszony system plików Hadoop ) i części przetwarzającej o nazwie MapReduce. Hadoop dzieli pliki na duże bloki i rozprowadza je w węzłach klastra. Aby przetworzyć dane, przesyła kod do każdego węzła, a każdy węzeł przetwarza posiadane dane. Umożliwia to przetwarzanie wszystkich danych szybciej i wydajniej niż w bardziej tradycyjnej architekturze superkomputera który opiera się na równoległym systemie plików, w którym obliczenia i dane są dystrybuowane w szybkich sieciach.
Podstawowy framework Hadoop składa się z następujących modułów:
Termin Hadoop odnosi się nie tylko do powyższych podstawowych modułów, ale także do jego ekosystemu i całego oprogramowania, które się z nim łączy, takiego jak Apache Pig , Apache Hive , Apache HBase , Apache Phoenix , Apache Spark , Apache ZooKeeper , Apache Impala , Apache Flume , Apache Sqoop , Apache Oozie , Apache Storm .
W 2004 roku Google opublikował artykuł przedstawiający jego algorytm oparty na wielkoskalowych operacjach analitycznych na dużym klastrze serwerów MapReduce , a także klastrowym systemie plików GoogleFS . Doug Cutting , który wtedy pracował nad rozwojem Apache Lucene i napotkał problemy podobne do tych z firmy Mountain View, zdecydował się następnie wykorzystać koncepcje opisane w artykule do opracowania własnej wersji narzędzi w wersji open source . , który stanie się projektem Hadoop.
Zainspirował go koc swojego pięcioletniego syna, żółtego słonia, na logo i nazwę tego nowego frameworka Java .
W 2006 roku Doug Cutting zdecydował się dołączyć do Yahoo z projektem Nutch i pomysłami opartymi na wczesnych pracach Google w zakresie rozproszonego przetwarzania i przechowywania danych.
W 2008 roku Yahoo zaoferowało Hadoop jako projekt open source.
W 2011 roku narodził się Hadoop w wersji 1.0.0; przestarzały27 grudnia 2011.
Plik 23 maja 2012, społeczność open source uruchamia Hadoop 2.0, który był oferowany publicznie od listopada 2012 roku w ramach projektu Apache sponsorowanego przez Apache Software Foundation . Główną rewolucją było dodanie warstwy YARN do struktury Hadoop.
Z wrzesień 2016, została wydana wersja 3.0.0-alpha1.
HDFS to rozproszony , rozszerzalny i przenośny system plików opracowany przez Hadoop z GoogleFS . Napisany w Javie , został zaprojektowany do przechowywania bardzo dużych ilości danych na dużej liczbie maszyn wyposażonych w standardowe dyski twarde. Pozwala na wyodrębnienie fizycznej architektury pamięci masowej w celu manipulowania rozproszonym systemem plików tak, jakby był pojedynczym dyskiem twardym.
Architektura maszyn HDFS (zwana także klastrem HDFS) opiera się na dwóch typach głównych komponentów:
NameNode Nazwy węzła, ten komponent zarządza namespace , systemu plików drzewo, oraz plików i katalogów metadanych . Centralizuje lokalizację bloków danych rozproszonych w klastrze . Jest unikalna, ale ma drugą instancję, która zarządza historią modyfikacji w systemie plików (rola kopii zapasowej ). Ten pomocniczy NameNode umożliwia ciągłość działania klastra Hadoop w przypadku awarii oryginalnego NameNode . DataNode węzeł danych, ten komponent przechowuje i przywraca bloki danych. Podczas procesu odczytywania pliku, NameNode jest pytany o zlokalizowanie wszystkich bloków danych. Dla każdego z nich NameNode zwraca adres najbardziej dostępnego DataNode , to znaczy DataNode, który ma największą przepustowość . W DataNodes okresowo przekazują NameNode listę bloków danych oni przyjmującym. Jeśli niektóre z tych bloków nie są wystarczająco replikowane w klastrze , zapisywanie tych bloków odbywa się kaskadowo poprzez kopiowanie do innych.Każdy węzeł DataNode służy jako blok danych w sieci przy użyciu protokołu właściwego dla HDFS. System plików wykorzystuje do komunikacji warstwę TCP / IP . Klienci używają zdalnego wywołania procedury do komunikowania się ze sobą. HDFS przechowuje duże pliki na wielu komputerach. Osiąga niezawodność poprzez replikację danych na wielu hostach, a zatem nie wymaga pamięci RAID na hostach. W przypadku domyślnej replikacji dane są przechowywane w trzech węzłach: dwóch na tym samym nośniku i jednym na różnych nośnikach. W DataNodes mogą komunikować się w celu zrównoważenia dane i utrzymać wysoki poziom replikacji danych.
HDFS nie jest w pełni zgodny ze specyfikacjami POSIX , ponieważ wymagania dla systemu plików POSIX różnią się od docelowych celów aplikacji Hadoop. Kompromis związany z brakiem systemu plików w pełni zgodnego z POSIX zwiększa przepustowość danych.
HDFS niedawno ulepszył swoje możliwości wysokiej dostępności, które teraz umożliwiają ręczne przełączanie awaryjne głównego serwera metadanych na kopię zapasową w przypadku awarii (automatyczne przełączanie awaryjne jest w fazie rozwoju). Ponieważ NameNodes to pojedynczy punkt do przechowywania i zarządzania metadanymi , mogą być wąskim gardłem w obsłudze dużej liczby plików, zwłaszcza gdy są one małe. Akceptując wiele przestrzeni nazw obsługiwanych przez oddzielne NameNodes , HDFS łagodzi ten problem.
Hadoop ma pełną implementację koncepcji MapReduce.
HBase to rozproszona baza danych ze strukturalnym magazynem dla dużych tabel.
Podobnie jak BigTable , HBase jest bazą danych zorientowaną na kolumny .
ZooKeeper to oprogramowanie do zarządzania konfiguracją systemów rozproszonych, oparte na oprogramowaniu Chubby opracowanym przez Google. ZooKeeper służy między innymi do implementacji HBase.
Hive to oprogramowanie do analizy danych umożliwiające korzystanie z Hadoop o składni podobnej do SQL . Hive został pierwotnie opracowany przez Facebooka .
Pig to oprogramowanie do analizy danych porównywalne z Hive, ale używające języka Pig Latin . Pig został pierwotnie opracowany przez Yahoo! .
Kilka znanych firm IT zadeklarowało używanie Hadoop, takich jak Facebook , Yahoo , Microsoft . Yahoo obsługuje największy na świecie klaster Hadoop z ponad 100 000 procesorów i 40 000 maszyn przeznaczonych do tej technologii.
WikiTrends to bezpłatna usługa analizy odbiorców z encyklopedii Wikipedii uruchomionej wkwiecień 2014. Aplikacja, w szczególności wykorzystująca Hadoop, umożliwia kwantyfikację tematów najczęściej wyszukiwanych przez użytkowników w encyklopedii Wikipedii, poprzez graficzny interfejs wizualizacji.
Hadoop można wdrożyć w tradycyjnym centrum danych, ale także w chmurze . Chmura umożliwia organizacjom wdrażanie Hadoop bez nabywania określonego sprzętu lub wiedzy.
Azure HDInsight to usługa, która wdraża Hadoop na Microsoft Azure. Usługa HDInsight korzysta z platformy danych Hortonworks (HDP). HDInsight umożliwia programowanie rozszerzeń w .NET (oprócz języka Java). HDInsight obsługuje również tworzenie klastrów Hadoop przy użyciu Ubuntu.
Korzystając z usługi HDInsight w chmurze, firmy mogą uruchamiać dowolną liczbę węzłów; będą rozliczane zgodnie z obliczeniami i wykorzystaną pamięcią masową. Implementacje HDP mogą również przenosić dane z lokalnego centrum danych do chmury w celu tworzenia kopii zapasowych, programowania, testowania i scenariuszy przełomowych. Istnieje również możliwość uruchamiania klastrów HDP na maszynach wirtualnych platformy Azure.
Możliwe jest uruchomienie Hadoop na Amazon Elastic Compute Cloud (EC2) i Amazon Simple Storage Service (S3). Na przykład New York Times wykorzystał 100 instancji Amazon EC2 i jedną aplikację Hadoop do przetworzenia 4 TB nieprzetworzonych obrazów TIFF (przechowywanych w Amazon S3) w 11 milionach plików PDF.
Hadoop jest w szczególności dystrybuowany przez czterech graczy, którzy oferują usługi szkoleniowe i wsparcie komercyjne, a także dodatkowe funkcje: