Коли бізнес або будь-яка діяльність, пов'язана з обчисленнями, зростає настільки, що одного комп'ютера стає недостатньо, відразу переходять на багатокомп'ютерні мережі для більш ефективної обробки навантаження. Це стало звичайною практикою — сьогодні майже всі операції у галузях на кшталт науки про дані виконуються саме через такі мережі. Хоча виконання складних обчислювальних завдань таким чином набагато ефективніше, це також надзвичайно складно: потрібно налаштувати кожен комп'ютер окремо, а потім керувати всією мережею під час виконання завдань. Саме для цього існують програми на кшталт Hadoop.
- Що таке Apache Hadoop?
- Варіанти використання Hadoop
- Огляд архітектури Hadoop
- Встановлення Hadoop на Ubuntu 20.04 – Пошаговий посібник
- Передумови
- Крок 1: Створення користувача без прав root для Hadoop
- Крок 2: Налаштування ключів SSH
- Крок 3: Завантаження та встановлення Hadoop на Ubuntu
- Крок 4: Налаштування середовища Hadoop
- Крок 5: Редагування файлів конфігурації
- Крок 6: Форматування HDFS
- Крок 7: Запуск служб Hadoop
- Крок 8: Перевірка встановлення
- Крок 9: Доступ до веб-інтерфейсів
- Крок 10: Запуск прикладу MapReduce
- Крок 11: Встановлення змінних середовища
- Висновок
- Часто задавані питання
Hadoop — це набір інструментів від Apache, який дозволяє об'єднувати комп'ютери в мережу набагато ефективніше та простіше. У цій статті я розберу Hadoop, розгляну його варіанти використання, обговорю переваги та недоліки, дам огляд його архітектури, а потім надам покрокову інструкцію з встановлення Hadoop на Ubuntu 20.04. Це повний Hadoop-туторіал на 2024 рік.
Що таке Apache Hadoop?
Hadoop — це набір інструментів від Apache, які протягом понад 15 років трансформують налаштування та використання мереж. За допомогою Hadoop можна максимально використати наявну обчислювальну потужність для складних завдань без дорогих оновлень. Набір складається з чотирьох модулів: HDFS, YARN, MapReduce та Hadoop Common — кожен розроблений для конкретних завдань.
Сила Hadoop в тому, що він дозволяє окремим людям та організаціям об'єднати наявні обчислювальні ресурси в одну систему, здатну вирішувати складні завдання. Без Hadoop вони були б змушені купувати все більш потужні комп'ютери, що коштує дорого.
Варіанти використання Hadoop
Тепер ви знаєте, що таке Hadoop. Але як його використовувати на практиці? Теорія — це добре, але потрібно бачити реальне застосування. Наведемо кілька прикладів перед тим, як перейти до туторіалу.
Аналіз ризиків
Як вже згадувалось, Hadoop дозволяє об'єднати кілька комп'ютерів в одну мережу для обробки та аналізу великих обсягів даних швидше за звичайно. У бізнесі завжди є ризики, які потребують аналізу. Hadoop цінний саме тут. Багато лікарень використовують його для аналізу ризиків різних методів лікування та прогнозування результатів для пацієнтів. Про роль Hadoop у сфері охорони здоров'я можна прочитати більше тут.
Виявлення порушень безпеки
Зі збільшенням кількості пристроїв та сервісів у мережі зростає і кількість потенційних уразливостей. Hadoop допомагає проаналізувати роботу всієї системи, обробляючи великі обсяги даних та виявляючи вузькі місця.
Перегляд Карт
Багато компаній покладаються на відгуки клієнтів для поліпшення продуктів та розробки нових стратегій. Людині знадобиться вік, щоб прочитати великий файл відгуків, а Hadoop справляється за лічені хвилини.
Аналіз ринку
Якщо говорити про стратегії, то аналіз відгуків — це лише малу частку порівняно з аналізом ринку для нового продукту. Hadoop дозволяє навіть малим стартапам ефективно оцінити можливості ринку кількома комп'ютерами за розумний час.
Аналіз файлів журналів
Зі зростанням бізнесу кількість програмного забезпечення збільшується, і це створює більше помилок та проблем. Потрібна особа для моніторингу логів. Hadoop швидко проаналізує логи та допоможе виявити та усунути помилки.
Є багато інших варіантів використання Hadoop, але щоб залишитись у фокусі статті, ми не обговорюватимемо їх далі.
Огляд архітектури Hadoop
Припустимо, ви вже чули про Hadoop та його варіанти використання. Але тепер потрібно розібратися, з чого він складається та як його компоненти працюють разом. Як згадувалось, Hadoop має чотири основні рівні: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce та Hadoop Common. Оскільки Hadoop Common не має багато особливостей для пояснення, основи його називаються Zookeeper. У цьому розділі туторіалу я розберу архітектуру та екосистему Hadoop простими словами, а потім перейду до встановлення Hadoop на Ubuntu 20.04.
HDFS
HDFS у екосистемі Hadoop — це система зберігання, яку використовують усі компоненти для доступу, передачі та збереження даних. HDFS як файлова система Hadoop відповідає за усі операції кластера. Це надійна файлова система, яка ділить дані на блоки по 128 МБ і оптимізує їх для послідовних операцій.
HDFS забезпечує дані як частину загального сховища, якими можна маніпулювати через різні namenode і вторинні стійки для організації операцій аналізу. Ви можете використовувати інші опції, як журнальні стійки, QJM, HA, fsimage та edit log файли, щоб відстежувати та виконувати інші завдання.
YARN
YARN — це компонент Hadoop, який розподіляє обчислювальні ресурси між додатками в екосистемі. Він дозволяє використовувати диспетчер ресурсів для розподілу цих ресурсів через різні вузли різним завданням. У YARN є реєстр для відстеження розподілених ресурсів. YARN складається з трьох частин: Resource Manager, Application Master та Node Manager.
Кожна з цих трьох частин створює новий екземпляр для кожного кластера, додатку та вузла відповідно. YARN дозволяє розподіляти ресурси та планувати їх зміну з часом для складних робочих процесів. YARN часто використовується з іншими рівнями архітектури, як HDFS і Zookeeper.
Hadoop MapReduce
Hadoop MapReduce — ще один основний компонент екосистеми. Він дозволяє обробити великий обсяг даних розподіленим способом кількома комп'ютерами. MapReduce працює так: ви вводите велику карту даних. Ці дані розбиваються та розподіляються по мережевим комп'ютерам. Потім за допомогою скоротення дані зводяться до найсуттєвіших компонентів. Кожна така операція називається Job.
Припустимо, у вас є речення з трьох слів: «Ведмідь полює кролика». MapReduce розбиває це речення на три партії з одним словом кожна, потім змішує їх з подібними даними з інших завдань, створюючи фіналізовану партію даних без зайвої інформації, яку легко аналізувати.
Zookeeper
Zookeeper — це компонент екосистеми Hadoop, який набув популярності з виходом Hadoop 2.0. Його основна роль — координувати різні операції в межах одного екземпляра Hadoop. Zookeeper часто використовується з Resource Manager у YARN та компонентами HDFS. Він виявляє та виправляє потенційні точки відмови, використовуючи ZKFailoverController та Zookeeper Quorum.
У цих процесах вузли даних, якими керують інші компоненти архітектури Hadoop, категоризуються як активні namenode під наглядом користувача. Потім кожен з цих namenode проходить перевірку в обох підсистемах Zookeeper для виявлення проблем та потенційних відмов.
Встановлення Hadoop на Ubuntu 20.04 — покрокова інструкція
Тепер, коли ви ознайомилися з архітектурою Hadoop, час перейти до головного — встановлення Hadoop на Ubuntu 20.04 як завершальної частини цього посібника. Перед переходом до покроково інструкції розглянемо необхідні умови. Майте на увазі, що цей посібник також підходить для Ubuntu 18.04.
Передумови
Вимоги для встановлення Hadoop на Ubuntu досить прості. Вам потрібен комп'ютер з Ubuntu та правами root — локально або через VPS сервер. З програм переконайтеся, що Java 11 та SSH вже встановлені. Якщо ні, установіть їх командами нижче (одна за одною):
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y
Щодо ліцензії — вона не потрібна, оскільки Hadoop вільний і з відкритим кодом. Це все. Переходимо до першого кроку.
Крок 1: Створення користувача без прав root для Hadoop
Створіть непривілейованого користувача для Hadoop командою нижче. Це частина попередніх налаштувань перед завантаженням та встановленням Hadoop:
sudo adduser hdoop
su - hdoop
Крок 2: Налаштування ключів SSH
Щоб встановити Hadoop на Ubuntu, скористаємося користувачем Hadoop та SSH. Командою нижче генеруємо пару SSH ключів:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Коли ключі створені, наступна команда позначить їх як authorized_keys та збереже їх у SSH директорії:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Командою нижче переконаємося, що SSH з'єднання має необхідні дозволи:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Підтвердьте зміни, і ви зможете легко підключатися до localhost з цим користувачем:
ssh localhost
Крок 3: Завантаження та встановлення Hadoop на Ubuntu
Можете відвідати веб-сайт Apache Hadoop щоб переглянути список версій і їхній журнал змін. Виберіть цікаву версію — отримаєте посилання для завантаження та встановлення Hadoop на Ubuntu. Тут я вибираю версію 3.3.6. При необхідності замініть '3.3.6' на останню стабільну версію:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
Після завантаження виконайте цю команду, щоб завершити розпакування та встановлення:
tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop
Крок 4: Налаштування середовища Hadoop
Встановити JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:
echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Крок 5: Редагування файлів конфігурації
Оновіть конфігураційні файли Hadoop XML параметрами вашого кластера.
nano /usr/local/hadoop/etc/hadoop/core-site.xml
Крок 6: Форматування HDFS
Ініціалізуйте простір імен файлової системи Hadoop.
/usr/local/hadoop/bin/hdfs namenode -format
Крок 7: Запуск служб Hadoop
Запустіть служби HDFS та YARN.
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
Крок 8: Перевірка встановлення
Перевірте Java процеси, щоб підтвердити роботу Hadoop.
jps
Крок 9: Доступ до веб-інтерфейсів
Відкрийте браузер та перейдіть до інтерфейсів NameNode та ResourceManager Hadoop.
NameNode: http://localhost:9870
ResourceManager: http://localhost:8088
Крок 10: Запуск прикладу MapReduce
Виконайте приклад завдання MapReduce для перевірки налаштувань.
/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*
Крок 11: Встановлення змінних середовища
Додати Hadoop's bin та sbin директорії до системного PATH.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
І готово! Ви успішно налаштували та встановили Apache Hadoop на Ubuntu 20.04!
Висновок
Підсумовуючи, встановлення Hadoop на Ubuntu 20.04 — це ретельний процес, що вимагає уважності до деталей та готовності розібратися в тонкощах налаштування. Дотримуючись кроків з цього посібника, користувачі Ubuntu зможуть розпочати роботу з потужними можливостями Hadoop та максимально використати потенціал своїх проектів аналітики даних.
Я рекомендую розгорнути Hadoop як однопотоковий сервер з обмеженою дистрибуцією, якщо ви хочете лише поекспериментувати та навчатися. Для цього ідеально підійде VPS. Cloudzy пропонує вам безліч варіантів Linux VPS-сервіси включаючи надійне Ubuntu VPS яке можна налаштувати за кілька хвилин і перетворити на ідеальне середовище для навчання Hadoop. Починаючи з $4.95 на місяць, ви можете отримати власний Ubuntu VPS з більш ніж 12 локаціями та цілодобовою підтримкою!
Очевидний вибір
Більшість серверів на Linux працюють на Ubuntu. Чому б і вам не спробувати? Дізнайтеся, чому всі обирають Ubuntu, і отримайте оптимізований Ubuntu VPS
Отримайте Ubuntu VPSЧасто задавані питання
Які різниці між HDFS та MapReduce?
Хоча обидва модулі існують в екосистемі Hadoop, вони служать різним цілям. HDFS функціонує як розподілена файлова система, забезпечуючи доступ до даних. MapReduce же спеціалізується на розбитті та ефективній обробці великих обсягів даних.
Чи можна вважати Hadoop базою даних?
Hadoop — це не база даних, хоча така помилка поширена. Насправді це розподілена файлова система, яка дозволяє зберігати та обробляти величезні обсяги даних за допомогою мережі взаємопов'язаних комп'ютерів. Її не варто використовувати як пряму заміну традиційної бази даних.
Які чотири основні компоненти Hadoop?
Hadoop складається з чотирьох основних компонентів: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce та Hadoop Common. Деякі джерела також розглядають ZooKeeper як компонент, хоча офіційно він не визнається таким.
Де зазвичай використовується Hadoop?
Hadoop застосовується в різних сферах, де необхідно керувати, зберігати, обробляти та аналізувати великомасштабні дані. Він використовується компаніями від середніх підприємств та лікарень до стартапів, забезпечуючи рішення на основі даних.