Ponad 30 pytań i odpowiedzi do wywiadu Hadoop

Cóż, statystyki Forbesa podają, że aż 90% światowych organizacji wykorzystuje analitykę Big Data do tworzenia swoich raportów inwestycyjnych.

Wraz z rosnącą popularnością Big Data następuje większy niż wcześniej wzrost ofert pracy w Hadoop.

Dlatego też, aby pomóc Ci w zdobyciu roli eksperta Hadoop, możesz skorzystać z pytań i odpowiedzi do rozmowy kwalifikacyjnej, które zebraliśmy dla Ciebie w tym artykule, aby pomóc Ci przejść przez rozmowę kwalifikacyjną.

Być może znajomość faktów, takich jak zakres wynagrodzeń, który sprawia, że ​​stanowiska Hadoop i Big Data są lukratywne, zmotywuje Cię do zdania tej rozmowy, prawda? 🤔

  • Według Indeed.com, amerykański programista Big Data Hadoop zarabia średnio 144 000 USD.
  • Według itjobswatch.co.uk średnia pensja programisty Big Data Hadoop wynosi 66 750 funtów.
  • W Indiach źródło Indeed.com podaje, że zarabialiby średnio 16 000 000 funtów.

Dochodowe, nie sądzisz? A teraz przejdźmy do nauki o Hadoop.

Co to jest Hadoop?

Hadoop to popularny framework napisany w Javie, który wykorzystuje modele programistyczne do przetwarzania, przechowywania i analizowania dużych zestawów danych.

Domyślnie jego konstrukcja umożliwia skalowanie z pojedynczych serwerów do wielu maszyn, które oferują lokalne obliczenia i przechowywanie. Ponadto jego zdolność do wykrywania i obsługi awarii warstwy aplikacji skutkujących usługami o wysokiej dostępności sprawia, że ​​Hadoop jest dość niezawodny.

Przejdźmy od razu do często zadawanych pytań podczas rozmowy kwalifikacyjnej Hadoop i ich poprawnych odpowiedzi.

Wywiad z Hadoopem, pytania i odpowiedzi

Co to jest jednostka pamięci masowej w Hadoop?

Odpowiedź: Jednostka pamięci Hadoop nazywa się Hadoop Distributed File System (HDFS).

Czym różni się Network Attached Storage od rozproszonego systemu plików Hadoop?

Odpowiedź: HDFS, który jest podstawową pamięcią masową Hadoop, to rozproszony system plików, który przechowuje ogromne pliki przy użyciu zwykłego sprzętu. Z drugiej strony NAS to komputerowy serwer przechowywania danych na poziomie plików, który zapewnia heterogenicznym grupom klientów dostęp do danych.

Podczas gdy przechowywanie danych w NAS odbywa się na dedykowanym sprzęcie, HDFS dystrybuuje bloki danych na wszystkie maszyny w klastrze Hadoop.

NAS korzysta z wysokiej klasy urządzeń pamięci masowej, które są dość kosztowne, podczas gdy standardowy sprzęt używany w HDFS jest opłacalny.

NAS oddzielnie przechowuje dane z obliczeń, przez co nie nadaje się do MapReduce. Wręcz przeciwnie, konstrukcja HDFS pozwala na współpracę z frameworkiem MapReduce. Obliczenia przenoszą się do danych w strukturze MapReduce zamiast danych do obliczeń.

Wyjaśnij MapReduce w Hadoop i Shuffling

Odpowiedź: MapReduce odnosi się do dwóch odrębnych zadań, które programy Hadoop wykonują w celu umożliwienia dużej skalowalności od setek do tysięcy serwerów w klastrze Hadoop. Z drugiej strony tasowanie przenosi dane wyjściowe mapy z maperów do niezbędnego reduktora w MapReduce.

Rzuć okiem na architekturę Apache Pig

Architektura świni Apache

Odpowiedź: Architektura Apache Pig zawiera interpreter Pig Latin, który przetwarza i analizuje duże zbiory danych przy użyciu skryptów Pig Latin.

Świnka Apache składa się również z zestawów zestawów danych, na których wykonywane są operacje na danych, takie jak łączenie, ładowanie, filtrowanie, sortowanie i grupowanie.

Język Pig Latin wykorzystuje mechanizmy wykonawcze, takie jak powłoki Grant, UDF i osadzone do pisania skryptów Pig, które wykonują wymagane zadania.

Pig ułatwia pracę programistom, konwertując te napisane skrypty na serie zadań Map-Reduce.

Komponenty architektury Apache Pig obejmują:

  • Parser – obsługuje skrypty świni, sprawdzając składnię skryptu i sprawdzając typ. Dane wyjściowe parsera reprezentują instrukcje i operatory logiczne Pig Latin i są nazywane DAG (directed acyclic graph).
  • Optymalizator – Optymalizator implementuje logiczne optymalizacje, takie jak projekcja i naciskanie w DAG.
  • Kompilator — kompiluje zoptymalizowany plan logiczny z optymalizatora do serii zadań MapReduce.
  • Execution Engine – w tym miejscu następuje ostateczne wykonanie zadań MapReduce do żądanego wyniku.
  • Tryb wykonania – Tryby wykonania w Apache pig obejmują głównie lokalne i Map Reduce.

Odpowiedź: Usługa Metastore w Local Metastore działa w tej samej maszynie JVM co Hive, ale łączy się z bazą danych działającą w oddzielnym procesie na tej samej lub zdalnej maszynie. Z drugiej strony Metastore w Remote Metastore działa w swojej JVM niezależnie od JVM usługi Hive.

Jakie są pięć V Big Data?

Odpowiedź: Te pięć V oznacza główne cechy Big Data. Zawierają:

  • Wartość: Big Data ma na celu zapewnienie znaczących korzyści w postaci wysokiego zwrotu z inwestycji (ROI) organizacji, która wykorzystuje duże zbiory danych w swoich operacjach związanych z danymi. Big data wnosi tę wartość dzięki odkrywaniu wglądu i rozpoznawaniu wzorców, co skutkuje między innymi silniejszymi relacjami z klientami i skuteczniejszymi operacjami.
  • Różnorodność: reprezentuje heterogeniczność typów gromadzonych danych. Różne formaty obejmują CSV, wideo, audio itp.
  • Wolumen: określa znaczącą ilość i rozmiar danych zarządzanych i analizowanych przez organizację. Te dane przedstawiają wzrost wykładniczy.
  • Prędkość: Jest to wykładnicza szybkość wzrostu danych.
  • Wiarygodność: Wiarygodność odnosi się do tego, w jaki sposób dostępne dane „niepewne” lub „niedokładne” wynikają z niekompletności lub niespójności danych.

Wyjaśnij różne typy danych świńskiej łaciny.

Odpowiedź: Typy danych w Pig Latin obejmują atomowe typy danych i złożone typy danych.

Atomowe typy danych to podstawowe typy danych używane w każdym innym języku. Obejmują one:

  • Int — ten typ danych definiuje 32-bitową liczbę całkowitą ze znakiem. Przykład: 13
  • Long — Long definiuje 64-bitową liczbę całkowitą. Przykład: 10 l
  • Float — definiuje 32-bitową liczbę zmiennoprzecinkową ze znakiem. Przykład: 2,5 F
  • Double — definiuje podpisany 64-bitowy zmiennoprzecinkowy. Przykład: 23.4
  • Boolean – definiuje wartość logiczną. Zawiera: Prawda/Fałsz
  • Datetime — definiuje wartość daty i godziny. Przykład: 1980-01-01T00:00.00.000+00:00

Złożone typy danych obejmują:

  • Mapa- mapa odnosi się do zestawu par klucz-wartość. Przykład: [‘color’#’yellow’, ‘number’#3]
  • Torba – Jest to zbiór zbioru krotek i używa symbolu „{}”. Przykład: {(Henryk, 32), (Kiti, 47)}
  • Krotka — krotka definiuje uporządkowany zestaw pól. Przykład : (wiek, 33 lata)

Czym są Apache Oozie i Apache ZooKeeper?

Odpowiedź: Apache Oozie to program planujący Hadoop odpowiedzialny za planowanie i łączenie zadań Hadoop w jedną pracę logiczną.

Z drugiej strony Apache Zookeeper współpracuje z różnymi usługami w środowisku rozproszonym. Oszczędza czas programistów, po prostu ujawniając proste usługi, takie jak synchronizacja, grupowanie, konserwacja konfiguracji i nazewnictwo. Apache Zookeeper zapewnia również gotowe wsparcie dla kolejkowania i wyboru lidera.

Jaka jest rola Combiner, RecordReader i Partitioner w operacji MapReduce?

Odpowiedź: Sumator działa jak mini reduktor. Otrzymuje i pracuje na danych z zadań mapowych, a następnie przekazuje dane wyjściowe do fazy reduktora.

RecordHeader komunikuje się z InputSplit i konwertuje dane na pary klucz-wartość, aby program odwzorowujący mógł je odpowiednio odczytać.

Partitioner jest odpowiedzialny za podjęcie decyzji o liczbie zredukowanych zadań wymaganych do podsumowania danych i potwierdzenie, w jaki sposób wyjścia sumatora są wysyłane do reduktora. Partitioner kontroluje również partycjonowanie kluczy pośrednich danych wyjściowych mapy.

Wspomnij o różnych dystrybucjach Hadoop specyficznych dla dostawców.

Odpowiedź: Różni dostawcy rozszerzający możliwości Hadoop to:

  • Otwarta platforma IBM.
  • Dystrybucja Cloudera CDH Hadoop
  • Dystrybucja MapR Hadoop
  • Amazon Elastic MapReduce
  • Platforma danych Hortonworks (HDP)
  • Kluczowy pakiet Big Data
  • Datastax Enterprise Analytics
  • Usługa HDInsight platformy Microsoft Azure — oparta na chmurze dystrybucja Hadoop.

Dlaczego HDFS jest odporny na błędy?

Odpowiedź: System HDFS replikuje dane w różnych węzłach danych, dzięki czemu jest odporny na błędy. Przechowywanie danych w różnych węzłach umożliwia pobieranie z innych węzłów w przypadku awarii jednego z trybów.

Rozróżnienie między federacją a wysoką dostępnością.

Odpowiedź: Federacja HDFS oferuje odporność na awarie, która umożliwia ciągły przepływ danych w jednym węźle, gdy inny ulegnie awarii. Z drugiej strony Wysoka dostępność będzie wymagać dwóch oddzielnych maszyn konfigurujących aktywny NameNode i dodatkowy NameNode na pierwszym i drugim komputerze oddzielnie.

Federacja może mieć nieograniczoną liczbę niepowiązanych węzłów nazw, podczas gdy w przypadku wysokiej dostępności dostępne są tylko dwa powiązane węzły nazw, aktywny i rezerwowy, które działają nieprzerwanie.

Węzły nazw w federacji współużytkują pulę metadanych, przy czym każdy węzeł nazw ma swoją dedykowaną pulę. Jednak w przypadku wysokiej dostępności aktywne węzły nazw działają pojedynczo, podczas gdy rezerwowe węzły nazw pozostają bezczynne i tylko od czasu do czasu aktualizują swoje metadane.

Jak znaleźć stan bloków i stan systemu plików?

Odpowiedź: Aby sprawdzić stan systemu plików HDFS, użyj polecenia hdfs fsck / zarówno na poziomie użytkownika root, jak iw pojedynczym katalogu.

Używane polecenie HDFS fsck:

hdfs fsck / -files --blocks –locations> dfs-fsck.log

Opis polecenia:

  • -files: Wydrukuj sprawdzane pliki.
  • –lokalizacje: Drukuje lokalizacje wszystkich bloków podczas sprawdzania.

Polecenie sprawdzenia stanu bloków:

hdfs fsck <path> -files -blocks
  • <ścieżka>: Rozpoczyna sprawdzanie od podanej tutaj ścieżki.
  • – bloki: Drukuje bloki pliku podczas sprawdzania

Kiedy używasz poleceń rmadmin-refreshNodes i dfsadmin-refreshNodes?

Odpowiedź: Te dwa polecenia są pomocne przy odświeżaniu informacji o węźle podczas uruchamiania lub po zakończeniu uruchamiania węzła.

Polecenie dfsadmin-refreshNodes uruchamia klienta HDFS i odświeża konfigurację węzła NameNode. Z drugiej strony polecenie rmadmin-refreshNodes wykonuje zadania administracyjne ResourceManager.

Co to jest punkt kontrolny?

Odpowiedź: Punkt kontrolny to operacja, która łączy ostatnie zmiany w systemie plików z najnowszym FSImage, dzięki czemu pliki dziennika edycji pozostają wystarczająco małe, aby przyspieszyć proces uruchamiania NameNode. Punkt kontrolny występuje w Secondary NameNode.

Dlaczego używamy systemu plików HDFS w aplikacjach z dużymi zbiorami danych?

Odpowiedź: HDFS zapewnia architekturę DataNode i NameNode, która implementuje rozproszony system plików.

Te dwie architektury zapewniają wysokowydajny dostęp do danych za pośrednictwem wysoce skalowalnych klastrów Hadoop. Jego NameNode przechowuje metadane systemu plików w pamięci RAM, co powoduje, że ilość pamięci ogranicza liczbę plików systemu plików HDFS.

Co robi polecenie „jps”?

Odpowiedź: Polecenie Java Virtual Machine Process Status (JPS) sprawdza, czy działają określone demony usługi Hadoop, w tym NodeManager, DataNode, NameNode i ResourceManager. To polecenie jest wymagane do uruchomienia z poziomu katalogu głównego w celu sprawdzenia działających węzłów w hoście.

Co to jest „wykonanie spekulacyjne” w Hadoop?

Odpowiedź: Jest to proces, w którym główny węzeł w Hadoop, zamiast naprawiać wykryte powolne zadania, uruchamia inną instancję tego samego zadania jako zadanie tworzenia kopii zapasowej (zadanie spekulacyjne) na innym węźle. Wykonanie spekulacyjne pozwala zaoszczędzić dużo czasu, zwłaszcza w środowisku o dużym obciążeniu pracą.

Wymień trzy tryby, w których Hadoop może działać.

Odpowiedź: Trzy główne węzły, na których działa Hadoop, to:

  • Węzeł autonomiczny to tryb domyślny, który uruchamia usługi Hadoop przy użyciu lokalnego systemu plików i pojedynczego procesu Java.
  • Pseudo-rozproszony węzeł wykonuje wszystkie usługi Hadoop przy użyciu jednego wdrożenia Hadoop ode.
  • W pełni rozproszony węzeł obsługuje usługi główne i podrzędne Hadoop przy użyciu oddzielnych węzłów.

Co to jest UDF?

Odpowiedź: UDF (funkcje zdefiniowane przez użytkownika) umożliwia kodowanie niestandardowych funkcji, których można używać do przetwarzania wartości kolumn podczas zapytania Impala.

Co to jest DistCp?

Odpowiedź: DistCp lub Distributed Copy, w skrócie, jest użytecznym narzędziem do kopiowania dużych danych między klastrami lub wewnątrz klastra. Korzystając z MapReduce, DistCp skutecznie wdraża rozproszoną kopię dużej ilości danych, między innymi zadaniami, takimi jak obsługa błędów, odzyskiwanie i raportowanie.

Odpowiedź: Hive metastore to usługa, która przechowuje metadane Apache Hive dla tabel Hive w relacyjnej bazie danych, takiej jak MySQL. Zapewnia interfejs API usługi magazynu metadanych, który umożliwia centowy dostęp do metadanych.

Zdefiniuj RDD.

Odpowiedź: RDD, co oznacza Resilient Distributed Datasets, to struktura danych Sparka i niezmienny rozproszony zbiór elementów danych, który jest obliczany na różnych węzłach klastra.

W jaki sposób można uwzględnić biblioteki natywne w zadaniach YARN?

Odpowiedź: Możesz to zaimplementować, używając -Djava.library. path w poleceniu lub ustawiając LD+LIBRARY_PATH w pliku .bashrc w następującym formacie:

<property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value>
</property>

Wyjaśnij „WAL” w HBase.

Odpowiedź: Dziennik zapisu z wyprzedzeniem (WAL) to protokół odzyskiwania, który rejestruje zmiany danych MemStore w HBase w magazynie opartym na plikach. WAL odzyskuje te dane, jeśli RegionalServer ulegnie awarii lub przed opróżnieniem MemStore.

Czy YARN zastępuje Hadoop MapReduce?

Odpowiedź: Nie, YARN nie jest zamiennikiem Hadoop MapReduce. Zamiast tego zaawansowana technologia o nazwie Hadoop 2.0 lub MapReduce 2 obsługuje MapReduce.

Jaka jest różnica między ORDER BY a SORT BY w HIVE?

Odpowiedź: Podczas gdy oba polecenia pobierają dane w Hive w sposób posortowany, wyniki użycia SORTUJ WEDŁUG mogą być uporządkowane tylko częściowo.

Ponadto SORTOWANIE WEDŁUG wymaga reduktora w celu uporządkowania wierszy. Te reduktory wymagane do końcowego wyniku mogą być również wielokrotne. W takim przypadku produkt końcowy może być częściowo uporządkowany.

Z drugiej strony ORDER BY wymaga tylko jednego reduktora dla całkowitego zamówienia na wyjściu. Możesz także użyć słowa kluczowego LIMIT, które skraca całkowity czas sortowania.

Jaka jest różnica między Spark a Hadoop?

Odpowiedź: Chociaż zarówno Hadoop, jak i Spark to struktury przetwarzania rozproszonego, kluczową różnicą między nimi jest przetwarzanie. Tam, gdzie Hadoop jest wydajny do przetwarzania wsadowego, Spark jest wydajny do przetwarzania danych w czasie rzeczywistym.

Dodatkowo Hadoop głównie odczytuje i zapisuje pliki w HDFS, podczas gdy Spark wykorzystuje koncepcję Resilient Distributed Dataset do przetwarzania danych w pamięci RAM.

Opierając się na ich opóźnieniach, Hadoop to platforma obliczeniowa o dużym opóźnieniu bez interaktywnego trybu przetwarzania danych, podczas gdy Spark to platforma obliczeniowa o niskim opóźnieniu, która interaktywnie przetwarza dane.

Porównaj Sqoop i Flume.

Odpowiedź: Sqoop i Flume to narzędzia Hadoop, które zbierają dane zebrane z różnych źródeł i ładują je do HDFS.

  • Sqoop (SQL-to-Hadoop) wyodrębnia ustrukturyzowane dane z baz danych, w tym Teradata, MySQL, Oracle itp., podczas gdy Flume jest przydatny do wyodrębniania nieustrukturyzowanych danych ze źródeł baz danych i ładowania ich do HDFS.
  • Jeśli chodzi o zdarzenia sterowane, Flume jest sterowany zdarzeniami, podczas gdy Sqoop nie jest sterowany zdarzeniami.
  • Sqoop wykorzystuje architekturę opartą na konektorach, w której konektory wiedzą, jak połączyć się z innym źródłem danych. Flume wykorzystuje architekturę opartą na agencie, a napisany kod jest agentem odpowiedzialnym za pobieranie danych.
  • Ze względu na rozproszony charakter Flume może łatwo gromadzić i agregować dane. Sqoop jest przydatny do równoległego przesyłania danych, co powoduje, że dane wyjściowe znajdują się w wielu plikach.

Wyjaśnij plik BloomMapFile.

Odpowiedź: BloomMapFile jest klasą rozszerzającą klasę MapFile i wykorzystuje dynamiczne filtry Bloom, które zapewniają szybki test członkostwa dla kluczy.

Wypisz różnicę między HiveQL a PigLatin.

Odpowiedź: Podczas gdy HiveQL jest językiem deklaratywnym podobnym do SQL, PigLatin jest proceduralnym językiem przepływu danych wysokiego poziomu.

Co to jest czyszczenie danych?

Odpowiedź: Oczyszczanie danych to kluczowy proces usuwania lub naprawiania zidentyfikowanych błędów danych, które obejmują nieprawidłowe, niekompletne, uszkodzone, zduplikowane i źle sformatowane dane w zbiorze danych.

Proces ten ma na celu poprawę jakości danych oraz dostarczenie dokładniejszych, spójniejszych i rzetelniejszych informacji niezbędnych do sprawnego podejmowania decyzji w organizacji.

Wniosek💃

Przy obecnym wzroście ofert pracy w Big Data i Hadoop możesz chcieć zwiększyć swoje szanse na dostanie się do pracy. Pytania i odpowiedzi na rozmowę kwalifikacyjną w Hadoop zawarte w tym artykule pomogą ci wygrać nadchodzącą rozmowę kwalifikacyjną.

Następnie możesz sprawdzić dobre zasoby do nauki Big Data i Hadoop.

Powodzenia! 👍