Wprowadzenie do pytań i odpowiedzi podczas wywiadu Sqoop

Sqoop to narzędzie do przesyłania danych typu open source, narzędzie Sqoop do przesyłania danych między ekosystemem Hadoop a serwerami relacyjnych baz danych (RDBMS). Importuje dane do systemu plików Hadoop (HDFS), z relacyjnych baz danych, takich jak Oracle, MySQL itp., A także eksportuje dane z systemu plików Hadoop do RDMS.

Poniżej znajduje się 15 ważnych pytań i odpowiedzi na rozmowę kwalifikacyjną w 2019 r .:

W końcu znalazłeś swoją wymarzoną pracę w Sqoop, ale zastanawiasz się, jak złamać rozmowę kwalifikacyjną z Sqoop i jakie mogą być prawdopodobne pytania do rozmowy kwalifikacyjnej w 2019 roku. Każda rozmowa kwalifikacyjna jest inna, a zakres pracy również inny. Mając to na uwadze, opracowaliśmy najczęstsze pytania i odpowiedzi podczas wywiadu Sqoop, aby pomóc Ci odnieść sukces w rozmowie.

Te pytania są podzielone na dwie części:

Część 1 - pytania do wywiadu Sqoop (podstawowe)

Ta pierwsza część obejmuje podstawowe pytania i odpowiedzi dotyczące wywiadu Sqoop.

1. Zdefiniuj Sqoop i dlaczego używamy Sqoop?

Odpowiedź:
Sqoop to narzędzie do przesyłania danych typu open source, które zostało zaprojektowane do przesyłania danych między ekosystemem Hadoop a serwerami relacyjnych baz danych (RDBMS). Sqoop służy do importowania danych z relacyjnych baz danych, takich jak Oracle, MySQL itp., Do systemu plików Hadoop (HDFS), a także do eksportowania danych z systemu plików Hadoop do relacyjnych baz danych.

2. Jakie są różne funkcje Sqoop?

Odpowiedź:
Poniżej znajdują się różne funkcje obsługiwane przez Sqoop -

  1. Ładowność
  2. Ładowanie pełne i ładowanie przyrostowe
  3. Techniki kompresji danych
  4. Importowanie wyników zapytań SQL
  5. Złącza danych dla wszystkich głównych baz danych
  6. Obsługa bezpośredniego ładowania danych do systemów plików Hadoop
  7. Konfiguracje zabezpieczeń, takie jak Kerberos
  8. Jednoczesne funkcje importu lub eksportu

Przejdźmy do następnych pytań do wywiadu Sqoop.

3. Nazwij relacyjne bazy danych i źródła ekosystemu Hadoop obsługiwane w Sqoop?

Odpowiedź:
Sqoop obsługuje obecnie MySQL, PostgreSQL, Oracle, MSSQL, Teradata i IBM Netezza jako część Relacyjnych baz danych.

Obecnie obsługiwane usługi docelowe Hadoop Eco-system to HDFC, Hive, HBase, H Catalog i Accumulo.

Sqoop używa MySQL jako domyślnej bazy danych.

4. Jak działa Sqoop?

Odpowiedź:
To typowe pytania do wywiadu Sqoop zadawane podczas wywiadu. Aby wykonać transfer danych, Sqoop używa poleceń eksportu i importu. Program Map Reduce będzie używany wewnętrznie w Sqoop do przechowywania zestawu danych na HDFS. Polecenia będą powiązane z zadaniami mapy w celu pobierania danych z relacyjnych baz danych; Zadanie zmniejszania będzie odpowiedzialne za umieszczenie pobranych danych w miejscach docelowych (HDFS / HBase / Hive)

Sqoop używa również różnych łączników API do łączenia się z kilkoma bazami danych. Sqoop zapewnia również możliwość tworzenia niestandardowych łączników spełniających określone wymagania.

Zobaczmy przykładowe polecenia poniżej dotyczące importu i eksportu

Polecenie połączenia z bazą danych MySQL w celu zaimportowania danych z tabeli „Log”

import sqoop –connect jdbc: mysql: // localhost / –username –password –table –m 1
import sqoop –connect jdbc: mysql: // localhost / mytestdb –username root - hasło admin123 –tab log –m 1

Polecenie eksportowania danych z HDFS do relacyjnej bazy danych

eksport sqoop –connect jdbc: mysql: // localhost / sqoop_export –table export-dir / sqoop / emp_last / part-m-00000 –update-key id
eksport sqoop –connect jdbc: mysql: // localhost / sqoop_export –table log_table – export-dir / sqoop / data / foler1 / part-m-00000

5. Co to jest Sqoop Metastore? Wyjaśnić?

Odpowiedź:
Sqoop Metastore to narzędzie dostępne w Sqoop, które będzie używane do skonfigurowania aplikacji Sqoop w celu umożliwienia hostowania wspólnego repozytorium w postaci metadanych. Metastore może służyć do wykonywania zadań i zarządzania wieloma użytkownikami na podstawie ról i działań użytkowników. Wszyscy wielu użytkowników może wykonywać wiele zadań lub operacji jednocześnie, aby skutecznie realizować zadania. Sqoop Metastore zostanie domyślnie zaimplementowany jako reprezentacja w pamięci. Kiedy zadanie jest tworzone w Sqoop, definicja zadania jest przechowywana w Metastore i będzie wyświetlana na liście za pomocą zadań Sqoop, jeśli zajdzie taka potrzeba.

6. Jakie formaty plików obsługuje Sqoop podczas importowania danych?

Odpowiedź:
Sqoop używa dwóch formatów plików do importu danych. Są to: - Ograniczony format pliku testowego i format pliku sekwencji.

Format pliku tekstowego z ogranicznikami : Format plików tekstowych z ogranicznikami to domyślny format plików do importowania. Nadal możemy wyraźnie określić za pomocą argumentu –as- tekstylnego. Podobnie przekazanie argumentu ustawi znaki separatora między wierszami i kolumnami.

Format pliku sekwencji : ten format pliku możemy powiedzieć, że jest to format pliku binarnego. Ten typ rekordów plików formatu jest przechowywany w niestandardowych typach danych specyficznych dla rekordów, które są widoczne jako klasy Java.

Przejdźmy do następnych pytań do wywiadu Sqoop.

7. Czy możemy kontrolować liczbę twórców map w sqoop? Jeśli tak to jak?

Odpowiedź:
Tak, możemy kontrolować liczbę maperów w Sqoop, określając parametr „-num-mappers” w komendzie sqoop. Ten parametr może kontrolować liczbę zadań mapowania, czyli nic innego, jak stopień równoległości będzie używany przez sqoop. Liczba zostanie ustalona na podstawie wymagań.

Składnia: użyj tych flag, aby kontrolować liczbę mapujących: m, -num- mappers

Część 2 - pytania do wywiadu Sqoop (zaawansowane)

Rzućmy teraz okiem na zaawansowane pytania do wywiadu Sqoop.

8. Co to jest scalanie Sqoop i wyjaśnienie jego zastosowania?

Odpowiedź:
Scalanie Sqoop to narzędzie, które łączy dwa różne zestawy danych, które utrzymują jedyną wersję, zastępując wpisy w starszej wersji zestawu danych nowymi plikami, aby był to najnowszy zestaw danych. Zdarza się proces spłaszczania podczas łączenia dwóch różnych zestawów danych, który chroni dane bez strat oraz z wydajnością i bezpieczeństwem. Aby wykonać tę operację, użyte zostanie polecenie scalania, takie jak „–klucz-klucz”

9. Jakie są różnice między Sqoop, flume i distcp?

Odpowiedź:
Zarówno Distcp, jak i Sqoop są używane do przesyłania danych. Sqoop służy do przesyłania dowolnego rodzaju danych z jednego klastra Hadoop do innego klastra, podczas gdy Sqoop przesyła dane między relacyjnymi bazami danych i ekosystemem Hadoop, takimi jak Hive, HDFS i HBase itp. Ale obie metody wykorzystują to samo podejście do kopiowania danych, czyli pull / transfer.

Flume rozpowszechnił narzędzie oparte na architekturze opartej na agentach do przesyłania strumieniowego dzienników do ekosystemu Hadoop. Natomiast Sqoop jest architekturą opartą na złączach.

Flume zbiera i agreguje ogromną ilość danych dziennika. Flume może zbierać dane z różnego rodzaju zasobów; nie uwzględnia schematu ani danych strukturalnych / nieustrukturyzowanych. Flume może pobierać dowolne dane. Podczas gdy Sqoop może importować tylko dane relacyjnej bazy danych, więc schemat jest obowiązkowy dla sqoop do przetworzenia. Ogólnie rzecz biorąc, w przypadku przenoszenia dużych obciążeń, koryto jest najlepszą opcją.

Przejdźmy do następnych pytań do wywiadu Sqoop.

10. Jakie źródła danych są obsługiwane przez Apache Sqoop?

Odpowiedź:
Różne źródła danych z różnych aplikacji obsługiwanych przez Apache Sqoop są następujące:

  1. Ul
  2. HBase
  3. Hadoop Distributed File System (HDFS)
  4. HCatalog
  5. Accumulo

11. Jakie są najczęściej używane polecenia / funkcje w Sqoop?

Odpowiedź:

To są zaawansowane pytania do wywiadu Sqoop zadawane podczas wywiadu. Lista podstawowych poleceń używanych w Sqoop jest następująca:

Codegen -Codegen służy do generowania kodu do komunikacji z rekordami bazy danych.

Eval -Sqoop Eval pomaga w uruchamianiu przykładowych zapytań SQL względem baz danych i zapewnia wyniki na konsoli.

Pomoc - Pomoc wyświetla listę dostępnych poleceń

Import -Import zaimportuje tabelę do ekosystemu Hadoop

Eksport-eksport służy do eksportowania danych HDFS do relacyjnych baz danych.

Create-hive-table -To polecenie jest przydatne do importowania definicji tabeli do gałęzi

Importuj wszystkie tabele -Importuj wszystkie tabele zaimportuje tabele w celu utworzenia relacyjnych baz danych na HDFS.

Lista baz danych - wyświetli listę wszystkich baz danych obecnych na serwerze.

Listy-tabele - wyświetli listę wszystkich tabel obecnych w bazie danych.

Wersje - wyświetli informacje o wersji.

Funkcje - Równoległy import / eksport, pełne ładowanie, przyrostowe ładowanie, pełne ładowanie, porównanie, złącza do baz danych RDBMS, integracja Kerberos Security, ładowanie danych bezpośrednio do HDFS (Hive / HBase)

12. Wyjaśnić najlepsze praktyki podczas importowania tabel z MySQL lub innych baz danych za pomocą Sqoop?

Odpowiedź:
Podczas importowania tabel z MySQL powinniśmy upewnić się o kilku rzeczach, takich jak uwierzytelnianie i autoryzacja na docelowym serwerze i bazach danych. Musimy upewnić się, że przyznaliśmy niezbędne uprawnienia do baz danych, do których mamy dostęp, a także upewnić się co do rozpoznawania nazw hostów, gdy łączymy się z źródłowymi i docelowymi nazwami hostów. Jeśli nie mamy niezbędnych uprawnień, otrzymamy wyjątek błędu połączenia podczas łączenia się z bazą danych.

13. Jak zaktualizować dane lub wiersze już wyeksportowane?

Odpowiedź:
Aby zaktualizować wiersze, które zostały już wyeksportowane do miejsca docelowego, możemy użyć parametru „–update-key”. W tym przypadku używana jest lista kolumn oddzielona przecinkami, która jednoznacznie identyfikuje wiersz, a wszystkie te kolumny są używane w klauzuli WHERE wygenerowanego zapytania UPDATE. Część zapytania zapytania SET zajmie się wszystkimi pozostałymi kolumnami tabeli.

Przejdźmy do następnych pytań do wywiadu Sqoop.

14. Jak skonfigurować i zainstalować sterownik JDBC w Apache Sqoop?

Odpowiedź:
Sterowniki JDB w Apache Sqoop można skonfigurować w oparciu o dostawcę Hadoop, takiego jak Cloudera lub Hortonworks, gdzie różni się nieco konfiguracją w zależności od dostawcy Hadoop. JDBC w Cloudera można skonfigurować, tworząc folder biblioteki, taki jak / var / lib /. Można to zrobić dla dowolnej biblioteki strony trzeciej wymagającej konfiguracji zgodnie z wymaganiami. W ten sposób można skonfigurować dowolny typ bazy danych za pomocą sterownika JDBC. Oprócz sterownika JDBC Apache Sqoop wymaga konektora do ustanowienia połączenia między różnymi relacyjnymi bazami danych. Głównymi komponentami wymaganymi do nawiązania połączenia z bazami danych jest sterownik i konektor konkretnego dostawcy bazy danych.

15. Co to jest klauzula podziału i kiedy z niej korzystamy?

Odpowiedź:
Parametr podziału służy do dzielenia danych, które mają zostać zaimportowane na wiele równoległych zadań. Za pomocą tego parametru możemy określić nazwy kolumny, są to nazwy kolumn, na podstawie których sqoop podzieli dane do zaimportowania na wiele porcji i będą działały równolegle. Jest to jedna z technik dostrajania wydajności w Sqoop.

Polecane artykuły

Jest to przewodnik po liście pytań i odpowiedzi do wywiadu Sqoop, aby kandydat mógł łatwo zlikwidować te pytania podczas wywiadu Sqoop. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Hadoop vs Teradata - Co jest korzystne
  2. 13 niesamowitych pytań do wywiadu podczas testowania bazy danych
  3. 10 najbardziej przydatnych pytań do wywiadu HBase
  4. 10 najbardziej niesamowitych pytań do wywiadu PHP dla doświadczonych
  5. Poznaj 5 najważniejszych przydatnych pytań do wywiadu DBA