Топ 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 він подає роботу
  • Коли завдання не вдається, відстежувач завдань повідомляє і вирішує, що робити тоді.
  • Вузли TaskTracker контролюються JobTracker

7) Поясніть, що таке серцебиття у HDFS?

Серцебиття відноситься до сигналу, що використовується між вузлом даних та вузлом імені, а також між трекером завдань і трекером завдань, якщо вузол імені або трекер завдань не реагує на сигнал, тоді вважається, що є деякі проблеми з вузлом даних або завданням трекер

8) Поясніть, що таке комбайнери та коли слід використовувати комбайнер у завданні MapReduce?

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

9) Що відбувається, коли вузол даних виходить з ладу?

Коли вузол даних виходить з ладу

  • Jobtracker і namenode виявляють несправність
  • На невдалому вузлі всі завдання переплановано
  • Namenode копіює дані користувача на інший вузол

10) Поясніть, що таке спекулятивне виконання?

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

11) Поясніть, які основні параметри Mapper?

Основними параметрами Mapper є

  • Довгий запис і текст
  • Текстовий та інтурологічний

12) Поясніть, яка функція розділювача MapReduce?

Функція розділювача MapReduce полягає в тому, щоб переконатися, що все значення одного ключа надходить до одного і того ж редуктора, що врешті-решт допомагає рівномірному розподілу виводу карти за редукторами

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

Логічний поділ даних відомий як Спліт, а фізичний поділ даних - Блок HDFS

14) Поясніть, що відбувається в текстовому форматі?

У форматі введення тексту кожен рядок текстового файлу є записом. Значення - це вміст рядка, тоді як Key - зміщення байтів рядка. Наприклад, Key: longWritable, Value: text

15) Згадайте, які основні параметри конфігурації потрібно вказати користувачеві для запуску завдання MapReduce?

Користувач фреймворку MapReduce повинен вказати

  • Місце введення завдання у розподіленій файловій системі
  • Розташування завдання у розподіленій файловій системі
  • Формат введення
  • Вихідний формат
  • Клас, що містить функцію карти
  • Клас, що містить функцію зменшення
  • Файл JAR, що містить класи відображення, редуктора та класи драйверів

16) Поясніть, що таке WebDAV у Hadoop?

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

17) Поясніть, що таке Sqoop у Hadoop?

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

18) Поясніть, як JobTracker планує завдання?

Засіб відстеження надсилає повідомлення про серцебиття, як правило, кожні кілька хвилин, щоб переконатися, що JobTracker активний і функціонує. Повідомлення також повідомляє JobTracker про кількість доступних слотів, тому JobTracker може залишатися в курсі того, де робота кластера може бути делегована

19) Поясніть, що таке Sequencefileinputformat?

Sequencefileinputformat використовується для послідовного читання файлів. Це специфічний стислий формат двійкового файлу, який оптимізовано для передачі даних між результатами одного завдання MapReduce на вхід іншого завдання MapReduce.

20) Поясніть, що робить клас conf.setMapper?

Conf.setMapperclass встановлює клас mapper та всі матеріали, пов’язані із завданнями карти, такі як читання даних та генерація пари ключ-значення з mapper

21) Поясніть, що таке Hadoop?

Це програмне забезпечення з відкритим кодом для зберігання даних та запуску додатків на кластерах товарного обладнання. Це забезпечує величезну обробну потужність та масивне зберігання даних будь-якого типу.

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

RDBMS Hadoop
СУБД - це реляційна система управління базами даних Hadoop - це плоска структура, що базується на вузлі
Він використовувався для обробки OLTP, тоді як Hadoop В даний час він використовується для аналітичної та для обробки великих даних
У СУБД кластер баз даних використовує ті самі файли даних, що зберігаються у спільному сховищі У Hadoop дані зберігання можуть зберігатися незалежно в кожному вузлі обробки.
Вам потрібно попередньо обробити дані, перш ніж зберігати їх Вам не потрібно попередньо обробляти дані перед їх зберіганням

23) Згадайте основні компоненти Hadoop?

Основні компоненти Hadoop включають,

  • HDFS
  • MapReduce

24) Що таке NameNode у Hadoop?

NameNode у Hadoop - це місце, де Hadoop зберігає всю інформацію про розташування файлів у HDFS. Це головний вузол, на якому працює відстежувач завдань і складається з метаданих.

25) Згадайте, які компоненти даних використовує Hadoop?

Компонентами даних, якими користується Hadoop, є

  • Свиня
  • Вулик

26) Згадайте, який компонент зберігання даних використовується Hadoop?

Компонентом зберігання даних, який використовує Hadoop, є HBase.

27) Згадайте, які найпоширеніші формати введення визначаються у Hadoop?

Найпоширеніші формати введення, визначені в Hadoop, є;

  • TextInputFormat
  • KeyValueInputFormat
  • SequenceFileInputFormat

28) У Hadoop що таке InputSplit?

Він розбиває вхідні файли на шматки і призначає кожен розділ картографу для обробки.

29) Для роботи Hadoop, як ви будете писати власний розділ?

Ви пишете власний розділ для роботи Hadoop, ви дотримуєтесь наступного шляху

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

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.

37) Поясніть, що таке „карта”, а що „редуктор” у Hadoop?

У Hadoop карта є етапом вирішення запитів HDFS. Карта зчитує дані з місця введення та виводить пару значень ключа відповідно до типу введення.

У Hadoop редуктор збирає вихідні дані, створені картографом, обробляє їх і створює власний кінцевий результат.

38) У Hadoop, який файл керує звітами в Hadoop?

У Hadoop файл hadoop-metrics.properties керує звітуванням.

39) Для використання списку Hadoop мережевих вимог?

Для використання Hadoop переліком мережевих вимог є:

  • SSH-з'єднання без пароля
  • Безпечна оболонка (SSH) для запуску серверних процесів

40) Згадайте, що таке обізнаність у стійці?

Поінформованість про стійку - це спосіб, яким namenode визначає спосіб розміщення блоків на основі визначень стійок.

41) Поясніть, що таке відстежувач завдань у Hadoop?

Відстежувач завдань у Hadoop - це демон веденого вузла в кластері, який приймає завдання від JobTracker. Він також розсилає повідомлення про серцебиття кожні кілька хвилин, щоб підтвердити, що JobTracker все ще живий.

42) Згадайте, які демони працюють на головному вузлі та ведених вузлах?

  • Демони, що працюють на головному вузлі, є "NameNode"
  • Демони, що працюють на кожному підпорядкованому вузлі, - це «Засіб відстеження» та «Дані»

43) Поясніть, як можна налагодити код Hadoop?

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

  • Використовуючи веб-інтерфейс, наданий фреймворком Hadoop
  • За допомогою лічильників

44) Поясніть, що таке вузли зберігання та обчислення?

  • Вузол зберігання - це машина або комп’ютер, де знаходиться ваша файлова система для зберігання даних обробки
  • Обчислювальний вузол - це комп'ютер або машина, де буде виконуватися ваша реальна ділова логіка.

45) Згадайте, для чого корисний контекстний об’єкт?

Контекстний об'єкт дає змогу картографу взаємодіяти з рештою Hadoop

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

46) Згадайте, що є наступним кроком після Mapper або MapTask?

Наступним кроком після Mapper або MapTask є те, що вихідні дані Mapper сортуються, і для виводу будуть створені розділи.

47) Згадайте, яка кількість секціонерів за замовчуванням у Hadoop?

У Hadoop розділом за замовчуванням є розділ “Хеш”.

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) Згадайте, яку роботу виконує клас конф?

Клас Job conf розділяє різні завдання, що виконуються в одному кластері. Він виконує такі налаштування рівня роботи, як оголошення роботи в реальному середовищі.

55) Згадайте, що таке контракт API Hadoop MapReduce для класу ключ і значення?

Для класу ключ і значення існує два контракти API 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 розділення для 64K файлів
  • 2 розділення для файлів розміром 65 Мб
  • 2 розділення для 127 Мб файлів

59) Згадайте, що розподілений кеш у Hadoop?

Розподілений кеш у Hadoop - це засіб, що надається фреймворком MapReduce. На момент виконання завдання воно використовується для кешування файлів. Framework копіює необхідні файли у підлеглий вузол перед виконанням будь-якого завдання на цьому вузлі.

60) Поясніть, як Hadoop Classpath відіграє життєво важливу роль у зупинці чи запуску в демонах Hadoop?

Classpath складатиметься зі списку каталогів, що містять файли jar для зупинки або запуску демонів.