60 лучших Hadoop & MapReduce Вопросы и ответы на собеседовании Ответы

Anonim

Скачать PDF

Ниже приведены часто задаваемые вопросы в интервью для новичков, а также для опытных разработчиков.

1) Что такое Hadoop Map Reduce?

Для параллельной обработки больших наборов данных в кластере Hadoop используется фреймворк Hadoop MapReduce. Анализ данных использует двухэтапную карту и процесс сокращения.

2) Как работает Hadoop MapReduce?

В MapReduce на этапе отображения он подсчитывает слова в каждом документе, а на этапе сокращения он объединяет данные в соответствии с документом, охватывающим всю коллекцию. На этапе сопоставления входные данные разделяются на части для анализа задачами сопоставления, выполняемыми параллельно в рамках Hadoop.

3) Объясните, что тасует в MapReduce?

Процесс, с помощью которого система выполняет сортировку и передает выходные данные карты редуктору в качестве входных данных, известен как перемешивание.

4) Объясните, что такое распределенный кеш в MapReduce Framework?

Распределенный кэш - важная функция, предоставляемая платформой MapReduce. Если вы хотите поделиться некоторыми файлами между всеми узлами в кластере Hadoop, используется распределенный кэш. Файлы могут быть исполняемыми файлами jar или простым файлом свойств.

5) Объясните, что такое NameNode в Hadoop?

NameNode в Hadoop - это узел, на котором Hadoop хранит всю информацию о местоположении файлов в HDFS (распределенная файловая система Hadoop). Другими словами, NameNode является центральным элементом файловой системы HDFS. Он ведет учет всех файлов в файловой системе и отслеживает данные файлов в кластере или на нескольких машинах.

6) Объясните, что такое JobTracker в Hadoop? Какие действия выполняет Hadoop?

В Hadoop для отправки и отслеживания заданий MapReduce используется JobTracker. Трекер заданий работает в собственном процессе JVM

Job Tracker выполняет следующие действия в Hadoop

  • Клиентское приложение отправляет вакансии в систему отслеживания вакансий
  • JobTracker связывается с режимом имени для определения местоположения данных
  • Рядом с данными или с доступными слотами JobTracker находит узлы TaskTracker
  • На выбранных узлах TaskTracker отправляет работу
  • Когда задача не выполняется, Job tracker уведомляет и решает, что делать дальше.
  • Узлы TaskTracker контролируются JobTracker

7) Объясните, что такое сердцебиение в HDFS?

Heartbeat - это сигнал, используемый между узлом данных и узлом имени, а также между устройством отслеживания задач и устройством отслеживания заданий, если узел имени или средство отслеживания заданий не отвечает на сигнал, то считается, что есть некоторые проблемы с узлом данных или задачей. трекер

8) Объясните, что такое комбайнеры и когда их следует использовать в MapReduce Job?

Для повышения эффективности программы MapReduce используются комбайнеры. Объем данных можно уменьшить с помощью объединителя, который необходимо передать редукторам. Если выполняемая операция коммутативна и ассоциативна, вы можете использовать код редуктора в качестве объединителя. Выполнение комбайнера в Hadoop не гарантируется.

9) Что происходит при выходе из строя узла данных?

Когда узел данных выходит из строя

  • Jobtracker и namenode обнаруживают сбой
  • На отказавшем узле все задачи переназначаются
  • Namenode реплицирует данные пользователя на другой узел

10) Объясните, что такое спекулятивное исполнение?

В Hadoop во время спекулятивного выполнения запускается определенное количество повторяющихся задач. На другом подчиненном узле несколько копий одной и той же карты или задачи сокращения могут быть выполнены с помощью спекулятивного выполнения. Проще говоря, если конкретному диску требуется много времени для выполнения задачи, Hadoop создаст дублирующую задачу на другом диске. Диск, который первым завершает задачу, сохраняется, а диски, которые не завершили задачу первым, уничтожаются.

11) Объясните, каковы основные параметры картографа?

Основные параметры Mapper:

  • LongWritable и текст
  • Текст и IntWritable

12) Объясните, в чем заключается функция разделителя MapReduce?

Функция разделителя MapReduce состоит в том, чтобы убедиться, что все значение одного ключа передается одному и тому же редуктору, что в конечном итоге помогает равномерно распределять вывод карты по редукторам.

13) Объясните, в чем разница между разделением ввода и блоком HDFS?

Логическое разделение данных известно как разделение, а физическое разделение данных известно как блок HDFS.

14) Объясните, что происходит в текстовом формате?

В текстовом формате ввода каждая строка в текстовом файле представляет собой запись. Value - это содержимое строки, а Key - смещение строки в байтах. Например, Key: longWritable, Value: text

15) Укажите, какие основные параметры конфигурации необходимо указать пользователю для запуска задания MapReduce?

Пользователь фреймворка MapReduce должен указать

  • Расположение ввода задания в распределенной файловой системе
  • Расположение вывода задания в распределенной файловой системе
  • Формат ввода
  • Формат вывода
  • Класс, содержащий функцию карты
  • Класс, содержащий функцию уменьшения
  • JAR-файл, содержащий классы сопоставителя, редуктора и драйвера.

16) Объясните, что такое WebDAV в Hadoop?

Для поддержки редактирования и обновления файлов WebDAV представляет собой набор расширений HTTP. В большинстве операционных систем общие ресурсы WebDAV могут быть смонтированы как файловые системы, поэтому можно получить доступ к HDFS как к стандартной файловой системе, открыв HDFS через WebDAV.

17) Объясните, что такое Sqoop в Hadoop?

Для передачи данных между управлением реляционными базами данных (RDBMS) и Hadoop HDFS используется инструмент, известный как Sqoop. С помощью Sqoop данные можно переносить из СУБД, например MySQL или Oracle, в HDFS, а также экспортировать данные из файла HDFS в СУБД.

18) Объясните, как JobTracker планирует задачу?

Трекер задач обычно отправляет контрольные сообщения в Jobtracker каждые несколько минут, чтобы убедиться, что JobTracker активен и функционирует. Сообщение также информирует JobTracker о количестве доступных слотов, поэтому JobTracker может быть в курсе того, как можно делегировать работу кластера.

19) Объясните, что такое Sequencefileinputformat?

Формат Sequencefileinputformat используется для последовательного чтения файлов. Это особый формат сжатого двоичного файла, который оптимизирован для передачи данных между выходом одного задания MapReduce и входом другого задания MapReduce.

20) Объясните, что делает класс conf.setMapper?

Conf.setMapperclass устанавливает класс сопоставителя и все, что связано с заданием сопоставления, например, чтение данных и создание пары ключ-значение из сопоставителя.

21) Объясните, что такое Hadoop?

Это программная среда с открытым исходным кодом для хранения данных и запуска приложений на кластерах стандартного оборудования. Он обеспечивает огромную вычислительную мощность и массивное хранилище для любого типа данных.

22) Упомяните, в чем разница между СУБД и Hadoop?

СУБД Hadoop
RDBMS - это система управления реляционными базами данных Hadoop - это плоская структура на основе узлов
Он используется для обработки OLTP, тогда как Hadoop В настоящее время используется для аналитики и обработки БОЛЬШИХ ДАННЫХ.
В СУБД кластер базы данных использует те же файлы данных, которые хранятся в общем хранилище. В Hadoop данные хранилища могут храниться независимо на каждом узле обработки.
Вам необходимо предварительно обработать данные перед их сохранением вам не нужно предварительно обрабатывать данные перед их сохранением

23) Упомянули основные компоненты Hadoop?

Основные компоненты Hadoop включают:

  • HDFS
  • Уменьшение карты

24) Что такое NameNode в Hadoop?

NameNode в Hadoop - это место, где Hadoop хранит всю информацию о местоположении файлов в HDFS. Это главный узел, на котором выполняется отслеживание заданий, и он состоит из метаданных.

25) Укажите, какие компоненты данных использует Hadoop?

Компоненты данных, используемые Hadoop:

  • Свинья
  • Улей

26) Укажите, какой компонент хранения данных используется в Hadoop?

Компонент хранения данных, используемый Hadoop, - это HBase.

27) Укажите, какие форматы ввода наиболее распространены в Hadoop?

Наиболее распространенные форматы ввода, определенные в Hadoop:

  • TextInputFormat
  • KeyValueInputFormat
  • SequenceFileInputFormat

28) Что такое InputSplit в Hadoop?

Он разбивает входные файлы на фрагменты и назначает каждое разбиение сопоставителю для обработки.

29) Как вы напишете собственный разделитель для работы с Hadoop?

Вы пишете собственный разделитель для задания Hadoop, вы следуете следующему пути

  • Создайте новый класс, расширяющий класс Partitioner
  • Переопределить метод getPartition
  • В оболочке, запускающей MapReduce
  • Добавьте пользовательский разделитель в задание с помощью набора методов Класс разделителя или - добавьте пользовательский разделитель в задание в качестве файла конфигурации.

30) Можно ли для задания в Hadoop изменить количество создаваемых мапперов?

Нет, изменить количество создаваемых картографов невозможно. Количество преобразователей определяется количеством входных разделений.

31) Объясните, что такое файл последовательности в Hadoop?

Для хранения двоичных пар ключ / значение используется файл последовательности. В отличие от обычного сжатого файла, файл последовательности поддерживает разделение, даже если данные внутри файла сжаты.

32) Когда Namenode не работает, что происходит с системой отслеживания вакансий?

Namenode - это единственная точка отказа в HDFS, поэтому, когда Namenode не работает, ваш кластер отключится.

33) Объясните, как делается индексация в HDFS?

У Hadoop есть уникальный способ индексирования. После того, как данные будут сохранены в соответствии с размером блока, HDFS продолжит хранить последнюю часть данных, которая говорит, где будет следующая часть данных.

34) Объясните, можно ли искать файлы с помощью подстановочных знаков?

Да, можно искать файлы с использованием подстановочных знаков.

35) Перечислите три файла конфигурации Hadoop?

Три файла конфигурации:

  • core-site.xml
  • mapred-site.xml
  • hdfs-site.xml

36) Объясните, как можно проверить, работает ли Namenode помимо команды jps?

Помимо использования команды jps, чтобы проверить, работает ли Namenode, вы также можете использовать

/etc/init.d/hadoop-0.20-namenode status.

37) Объясните, что такое «карта» и что такое «редуктор» в Hadoop?

В Hadoop карта - это этап в решении запросов HDFS. Карта считывает данные из места ввода и выводит пару значений ключа в соответствии с типом ввода.

В Hadoop редуктор собирает выходные данные, сгенерированные картографом, обрабатывает их и создает собственный окончательный результат.

38) Какой файл контролирует отчетность в Hadoop в Hadoop?

В Hadoop отчетами управляет файл hadoop-metrics.properties.

39) Для использования Hadoop перечислите сетевые требования?

Для использования Hadoop список требований к сети:

  • SSH-соединение без пароля
  • Secure Shell (SSH) для запуска серверных процессов

40) Упомяните, что такое осведомленность о стойках?

Осведомленность о стойке - это способ, которым именной узел определяет, как размещать блоки на основе определений стойки.

41) Объясните, что такое трекер задач в Hadoop?

Трекер задач в Hadoop - это демон подчиненного узла в кластере, который принимает задачи от JobTracker. Он также каждые несколько минут отправляет контрольные сообщения в JobTracker, чтобы подтвердить, что JobTracker все еще работает.

42) Упомяните, какие демоны работают на главном и подчиненном узлах?

  • Демоны, запущенные на главном узле, - это "NameNode"
  • Демоны, запускаемые на каждом подчиненном узле, - это «Трекер задач» и «Данные».

43) Объясните, как можно отладить код Hadoop?

Популярные методы отладки кода Hadoop:

  • Используя веб-интерфейс, предоставляемый фреймворком Hadoop
  • Используя счетчики

44) Объясните, что такое узлы хранения и вычисления?

  • Узел хранения - это машина или компьютер, на котором находится ваша файловая система для хранения обрабатываемых данных.
  • Вычислительный узел - это компьютер или машина, на которой будет выполняться ваша фактическая бизнес-логика.

45) Упомяните, в чем польза объекта контекста?

Объект контекста позволяет сопоставителю взаимодействовать с остальной частью Hadoop.

система. Он включает данные конфигурации для задания, а также интерфейсы, которые позволяют ему выдавать выходные данные.

46) Укажите, что будет следующим шагом после Mapper или MapTask?

Следующим шагом после Mapper или MapTask является сортировка вывода Mapper, и для вывода будут созданы разделы.

47) Укажите, какое количество разделителей по умолчанию в Hadoop?

В Hadoop разделителем по умолчанию является разделитель «Hash».

48) Объясните, какова цель RecordReader в Hadoop?

В Hadoop RecordReader загружает данные из своего источника и преобразует их в пары (ключ, значение), подходящие для чтения Mapper.

49) Объясните, как данные разделяются перед отправкой редуктору, если в Hadoop не определен пользовательский разделитель?

Если в Hadoop не определен пользовательский разделитель, то разделитель по умолчанию вычисляет хеш-значение для ключа и назначает раздел на основе результата.

50) Объясните, что происходит, когда Hadoop создает 50 задач для задания, а одна из них не выполняется?

Он снова перезапустит задачу на каком-то другом TaskTracker, если задача не удалась больше установленного лимита.

51) Укажите, как лучше всего копировать файлы между кластерами HDFS?

Лучший способ копировать файлы между кластерами HDFS - использовать несколько узлов и команду distcp, чтобы рабочая нагрузка распределялась.

52) Упомяните, в чем разница между HDFS и NAS?

Блоки данных HDFS распределяются по локальным дискам всех машин в кластере, а данные NAS хранятся на выделенном оборудовании.

53) Упомяните, чем Hadoop отличается от других инструментов обработки данных?

В Hadoop вы можете увеличивать или уменьшать количество картографов, не беспокоясь об объеме обрабатываемых данных.

54) Упомяните, какую работу выполняет класс conf?

Класс Job conf разделяет разные задания, выполняемые в одном кластере. Он выполняет настройки уровня задания, такие как объявление задания в реальной среде.

55) Упомяните, что такое контракт API Hadoop MapReduce для класса ключей и значений?

Для класса ключа и значения существует два контракта API Hadoop MapReduce.

  • Значение должно определять интерфейс org.apache.hadoop.io.Writable.
  • Ключ должен определять интерфейс org.apache.hadoop.io.WritableComparable.

56) Укажите, в каких трех режимах можно запустить Hadoop?

Три режима работы Hadoop:

  • Псевдораспределенный режим
  • Автономный (локальный) режим
  • Полностью распределенный режим

57) Упомяните, что делает формат ввода текста?

Формат ввода текста создаст объект строки, который является шестнадцатеричным числом. Значение рассматривается как весь текст строки, а ключ рассматривается как объект строки. Картограф получит значение как параметр 'text', а ключ как параметр 'longwriteable'.

58) Упомяните, сколько InputSplits делает Hadoop Framework?

Hadoop сделает 5 разделов

  • 1 раздел на файлы размером 64К
  • 2 раздела для файлов 65 Мб
  • 2 разделения для файлов 127 МБ

59) Упомяните, что такое распределенный кеш в Hadoop?

Распределенный кеш в Hadoop - это средство, предоставляемое платформой MapReduce. Во время выполнения задания он используется для кеширования файла. Платформа копирует необходимые файлы на подчиненный узел перед выполнением любой задачи на этом узле.

60) Объясните, как Hadoop Classpath играет жизненно важную роль в остановке или запуске демонов Hadoop?

Путь к классам будет состоять из списка каталогов, содержащих файлы jar для остановки или запуска демонов.