5

Słyszałem termin "klaster Hadoop", ale wydaje się, że jest to sprzeczne z tym, co rozumiem jako "siatkę" i "klaster".Czy Hadoop nie jest bardziej siatką niż klastrem?

My zrozumienia jest to, że siatki jest rozproszony system składający 2+ komputerów (węzłów), które są udostępnianie zasobów obliczeniowych ze sobą rozwiązania tego samego problemu. Ergo, jeśli próbujesz wykonać jakieś ciężkie naukowe obliczenia, chrupanie numerami, utworzysz siatkę maszyn dla wszystkich współpracujących nad tym samym problemem.

My zrozumienia o klastra jest to, że jest to rozproszony system składający 2+ komputerach wszystkich pracujących niezależnie rozwiązywać różne, mniejsze problemy. Dlatego zwykle umieszczasz klaster za równoważeniem obciążenia i pozwalasz każdemu węzłowi rozwiązać mały problem, gdy moduł równoważący obciążenia przypisuje go.

Tak więc, jeśli moje zrozumienie jest poprawne, to używasz sieci do rozwiązywania niewielkich liczb gigantycznych (obliczeniowych) zadań i klastrów do rozwiązywania dużej liczby małych (obliczeniowych) zadań.

Po pierwsze, jeśli moje rozumienie sieci i klastrów jest nieprawidłowe, zacznij od korekty!

Zakładając, że jestem mniej lub bardziej poprawny, to dlaczego mamy klastry Hadoop ? Jeśli celem Hadoop jest podjęcie problemu Big Data (jakiś skomplikowany obliczeniowo problem) i użycie dużej ilości sprzętu towarowego do stworzenia wielu węzłów zdolnych do współpracy z innymi w celu rozwiązania tego samego problemu, czy to nie jest siatka?

Czy to słuszniej powiedzieć, że mamy siatki Hadoop ? Dlaczego lub dlaczego nie? Z góry dziękuję!

+0

Wikipedia ma kilka [przykładów obliczeń gridowych] (https://pl.wikipedia.org/wiki/Grid_computing), które mogą wyjaśnić rozróżnienie. – kjw0188

Odpowiedz

9

Twoje zrozumienie jest częściowo poprawne. Chciałbym dodać kilka rzeczy, które prawdopodobnie usuwają trochę powietrza. To prawda, że ​​Hadoop jest używany do rozwiązywania problemów BigData. Ale robi to, przekształcając 1 duże zadanie w nie. mniejszych zadań i każde z tych mniejszych zadań jest rozwiązywane na różnych komputerach (węzłach) w izolacji. Węzły nie komunikują się ze sobą i nie udostępniają żadnego zasobu. Każda maszyna ma swoją pamięć, procesor i dysk, który jest używany podczas przetwarzania i nie ma nic wspólnego z zasobami innych maszyn.

Jeśli więc przeanalizujesz to pod mikroskopem, przekonasz się, że podczas próby rozwiązania "1" dużego problemu, ostatecznie kończysz przetwarzanie "n" mniejszych izolowanych problemów jako przeciwieństwo przetwarzania sieciowego, w którym wszystkie węzły próbują rozwiązać ten sam problem.

Innym ważnym aspektem jest to, że w siatce interakcja jest z systemem jako całością, a nie z żadnym węzłem (węzłami), co w szczególności nie ma miejsca, gdy przesyłane jest zadanie do klastra hadoop w celu przetworzenia. Przesyłasz swoje zlecenie do węzła "master" i nie musisz się martwić o "niewolników" lub dystrybucję zadań itp. Kiedy twoje zadanie zostanie przesłane do głównego węzła, automatycznie zostanie podzielone na "n" mniejsze zlecenia i master dba o automatyczne uruchomienie procesu w "n" różnych systemach.

Hadoop faktycznie reprezentuje paradygmat "Distributed Computing" i można go uznać za podzbiór Grid Computing.

Jeszcze jedno. W swoim pytaniu określono "równoważenie obciążenia".Możesz go sobie wyobrazić podczas gry z hadoopem. Gdy zaczniesz przetwarzać zadanie w klastrze hadoop, wszystkie "n" mniejsze zadania ("coz podziału zadań, jak określono wcześniej) będą przetwarzane w zrównoważony sposób. Zrównoważone oznacza, że ​​wszystkie węzły podrzędne są równe (w przybliżeniu, jeśli nie perfekcyjne) ilości danych do przetworzenia na równej (idealnie) ilości zasobów.

Mam nadzieję, że to odpowiada na twoje pytanie.

+0

Dzięki @Tariq (+1) - wspaniała odpowiedź, jednak pomieszało mi to pod jednym względem! Twój 3. akapit jest * trochę * mylący: czy mówisz, że Hadoop * jest jak * siatka w tym sensie, że przesyłasz 1 zadanie do mistrza i tylko wchodzisz w interakcję z tym panem? Czy też twierdzisz, że Hadoop * nie jest * siatką, i że musisz rozłożyć pracę na mniejsze jednostki i przesłać każdą jednostkę do niewolnika? Dzięki za wyjaśnienie tutaj! –

+1

Pozdrawiam TM i przepraszam za zamieszanie. Rozumiem przez to, że w siatce przesyłasz zadanie do systemu jako całości, a nie do żadnego konkretnego węzła (-ów). Z drugiej strony w środowisku Distributed Computing po prostu wysyłamy żądanie do określonego węzła (ów), który jest węzłem nadrzędnym w przypadku Hadoop. HTH – Tariq

+0

Jeszcze raz dziękuję @Tariq, ale wciąż nie jestem pewien: który z tych dwóch modeli pasuje do Hadoopa?!? –

Powiązane problemy