
Znaczenie dobrego brandingu
24 maja 2018
A few words about Link Building
31 maja 2018
Nie można zbyt długo mówić o Big Data, nie angażując się w tematy związane ze słoniem Hadoop. Hadoop to platforma oprogramowania open source zarządzana przez Apache Software Foundation. Jest bardzo pomocna w przechowywaniu i zarządzaniu ogromnymi ilościami danych w tani i wydajny sposób. W dalszej części artykułu wprowadzimy temat Hadoop, dokładnie wyjaśnimy czym jest, z czego się składa i do czego go używać.
Przywitaj się z Hadoop
Biblioteka oprogramowania Apache Hadoop to framework, który umożliwia rozproszone przetwarzanie dużych zbiorów danych w klastrach komputerowych przy użyciu prostych modeli programowania. Została zaprojektowana do skalowania z pojedynczych serwerów do tysięcy komputerów, z których każdy oferuje lokalne obliczenia i pamięć masową. Zamiast polegać na sprzęcie o wysokiej dostępności, sama biblioteka jest zaprojektowana tak, aby wykrywać i radzić sobie z awariami na poziomie aplikacji, zapewniając usługę o wysokiej dostępności w klastrze komputerów, z których każdy może być podatny na awarie.
Hadoop i Big Data
Formalnie znana jako Apache Hadoop, technologia ta została opracowana w ramach projektu open source pod auspicjami Apache Software Foundation (ASF). Komercyjne dystrybucje Hadoop są obecnie oferowane przez czterech głównych dostawców platform do obsługi dużych danych: Amazon Web Usługi (AWS), Cloudera, Hortonworks i MapR Technologies. Ponadto Google, Microsoft i inni dostawcy oferują usługi oparte na chmurze, bazujące na Hadoop i pokrewnych technologiach.”}}Hadoop został stworzony przez informatyków Douga Cuttinga i Mike’a Cafarellę, początkowo w celu wsparcia przetwarzania open-source’owej wyszukiwarki Nutch i robota sieciowego. Po tym, jak Google opublikował artykuły techniczne opisujące, odpowiednio w 2003 i 2004 roku, system plików Google (GFS) i programowanie MapReduce, dwaj specjaliści IT zmodyfikowali wcześniejsze plany technologiczne i opracowali opartą na Javie implementację MapReduce oraz system plików oparty na modelach Google. Na początku 2006 roku elementy te zostały oddzielone od Nutch i stały się osobnym podprojektem Apache, który Cutting nazwał Hadoop, od imienia pluszowego słonia swojego syna. W tym samym czasie Cuttinga zatrudnił Yahoo, firma oferująca usługi internetowe oparte na sieci, która w 2006 roku stała się pierwszym użytkownikiem produkcyjnym Hadoop. (Cafarella, wówczas absolwent, został profesorem uniwersyteckim).
W ciągu następnych kilku lat wykorzystanie platformy wzrosło wraz z pojawieniem się trzech niezależnych dostawców Hadoop: Cloudera w 2008 roku, MapR rok później oraz Hortonworks jako spinoff Yahoo w 2011 roku. Ponadto AWS uruchomił w 2009 roku usługę chmurową Hadoop o nazwie Elastic MapReduce. Wszystko to wydarzyło się zanim Apache wydało Hadoop 1.0.0, który stał się dostępny w grudniu 2011 roku po serii wydań 0.x.
Komponenty Hadoop (HDFS, MapReduce, YARN)
Apache Hadoop składa się z następujących modułów:
- Hadoop Common – biblioteki i narzędzia używane przez inne moduły;
- Hadoop Distributed File System (HDFS) – rozproszony system plików;
Hadoop oparty na technologii Java, implementujący klastrowy system plików o nazwie HDFS, który pozwala na efektywne kosztowo, niezawodne i skalowalne obliczenia rozproszone. Architektura HDFS jest wysoce odporna na awarie i została zaprojektowana do wdrożenia na tanim sprzęcie. W przeciwieństwie do relacyjnych baz danych, klaster Hadoop pozwala przechowywać dowolne dane plików, a następnie określić, jak chcesz z nich korzystać, bez konieczności ich wcześniejszej reformy. Wiele kopii danych jest automatycznie replikowanych w klastrze. Ilość replikacji może być konfigurowana dla każdego pliku i może być zmieniona w dowolnym momencie.
- Hadoop YARN – platforma do zarządzania zasobami klastra;
Struktura Hadoop YARN umożliwia planowanie zadań i zarządzanie zasobami klastra, co oznacza, że użytkownicy mogą przesyłać i usuwać aplikacje za pomocą Hadoop REST API. Istnieją również interfejsy internetowe do monitorowania klastra Hadoop. Połączenie wszystkich plików JAR i klas potrzebnych do uruchomienia MapReduce nazywa się zadaniem. Możesz wysyłać zadania do JobTrackera z linii poleceń lub za pośrednictwem HTTP, wysyłając je do REST API. Zadania te obejmują „zadania”, które wykonują indywidualną mapę i zmniejszają liczbę kroków. Istnieją również sposoby na włączenie kodu niezwiązanego z Javą podczas pisania tych zadań. Jeśli z jakiegoś powodu węzeł klastra Hadoop zostanie wyłączony, odpowiednie zadania przetwarzania zostaną automatycznie przeniesione do innych węzłów klastra.
- Hadoop MapReduce – implementacja paradygmatu MapReduce do przetwarzania dużych ilości danych;
Hadoop koncentruje się na przechowywaniu i rozproszonym przetwarzaniu dużych zestawów danych w klastrach komputerowych przy użyciu modelu programowania MapReduce: Hadoop MapReduce. W przypadku MapReduce, zestaw plików wejściowych jest dzielony na mniejsze części, które są przetwarzane niezależnie od siebie. Wyniki tych niezależnych procesów są następnie zbierane i przetwarzane jako grupy, aż do zakończenia zadania. Jeśli pojedynczy plik jest tak duży, że wpłynie to na czas wyszukiwania, można go podzielić na kilka mniejszych.
Oczywiście Hadoop posiada wiele dodatkowych narzędzi, w tym Ambari, Avro, Cassandra, Chukwa, HBase, Hive, Pig, Spark, ZooKepper.
Jak może nam pomóc?
Hadoop świetnie nadaje się do analiz MapReduce wykonywanych na ogromnych ilościach danych. Do jego specyficznych zastosowań zaliczamy: wyszukiwanie danych, analizę danych, raportowanie danych, indeksowanie plików na dużą skalę (np. pliki Log lub dane z robotów sieciowych) oraz inne zadania przetwarzania danych z użyciem kolokwialnie znanych w świecie programowania jako „Big Data”. „
Pamiętaj, że infrastruktura Hadoop i programowanie zadań MapReduce opartych na języku Java wymagają specjalistycznej wiedzy technicznej w zakresie właściwej konfiguracji i utrzymania. Jeśli te umiejętności są zbyt drogie w wynajęciu lub obsłudze, możesz rozważyć inne opcje danych dla Big Data.


