V dnešní době se aplikuje jednoduchý princip: jakmile se podnikání nebo jakákoli počítačová operace rozroste natolik, že zvládá jen jeden počítač, začneme používat více počítačů propojených do jedné sítě. Takto efektivněji rozdělíme zátěž. Dnes je to pravidlem, zejména v oborech jako datová věda, kde síťově propojené počítače provádějí téměř všechny operace. Nesporno je to efektivnější, ale také složitější, protože musíte každý počítač nakonfigurovat jednotlivě a pak spravovat celou síť během jejího provozu. Právě na to se zaměřují nástroje jako Hadoop.
- Co je Apache Hadoop?
- Případy použití Hadoopu
- Přehled architektury Hadoopu
- Instalace Hadoopu na Ubuntu 20.04 - Podrobný průvodce
- Předpoklady
- Krok 1: Vytvoření uživatele bez root oprávnění pro Hadoop
- Krok 2: Nastavení klíčů SSH
- Krok 3: Stažení a instalace Hadoopu na Ubuntu
- Krok 4: Konfigurace prostředí Hadoopu
- Krok 5: Úprava konfiguračních souborů
- Krok 6: Formátování HDFS
- Krok 7: Spuštění služeb Hadoopu
- Krok 8: Ověření instalace
- Krok 9: Přístup k webovým rozhraním
- Krok 10: Spuštění příkladu MapReduce
- Krok 11: Nastavení proměnných prostředí
- Závěr
- Často kladené otázky
Hadoop je sada nástrojů vydaná společností Apache, která umožňuje propojit více počítačů v síť mnohem efektivněji a snadněji. V tomto článku si projdu Hadoop, podívám se na jeho případy použití, zmíním jeho výhody i nevýhody a představím jeho pokročilou architekturu. Nakonec vám ukážu, jak krok za krokem nainstalovat Hadoop na Ubuntu 20.04. Toto je kompletní průvodce Hadoopem pro rok 2024.
Co je Apache Hadoop?
Hadoop, sada nástrojů od společnosti Apache, více než 15 let transformuje způsob, jak se sítě nastavují a využívají. Uživatelé si mohou vzít své stávající výpočetní kapacity a použít je na náročné úlohy bez potřeby drahých upgradů. Sada se skládá ze čtyř modulů: HDFS, YARN, MapReduce a Hadoop Common, z nichž každý je určen pro specifické případy použití.
Síla Hadoopu spočívá v tom, jak chytře pomáhá jednotlivcům i firmám spojit své stávající výpočetní prostředky a řešit tak složité výpočetní problémy. Bez Hadoopu by musely investovat do nových, výkonnějších počítačů, což je drahé.
Případy použití Hadoopu
Teď už víme, co je Hadoop. Ale jak se to uplatňuje v praxi? Teoretické chápání je dobré, ale skutečné aplikace v reálných operacích jsou úplně jiné. Zde si ukážeme pár příkladů, než se vrhneme na samotný tutorial Hadoopu.
Analýza rizik
Jak jsme už zmínili, Hadoop vám umožňuje spojit více počítačů do jedné sítě a efektivně analyzovat velké datové sady rychleji než normálně. V každém podnikání existují rizika, která je třeba analyzovat. Hadoop je zde nenahraditelný. Mnoho renomovaných nemocnic ho používá k analýze rizik různých léčebných metod a k predikci výsledků operací pro své pacienty. Více o roli Hadoopu ve zdravotnictví se dozvíte v našem detailním článku.
Detekce porušení zabezpečení
S růstem počtu zařízení v síti roste i počet potenciálních bezpečnostních hrozeb. Jednou ze základních funkcí Hadoopu je analyzovat celou operaci, prohlédnout velké datové sady a identifikovat slabá místa v systému.
Mapování recenzí
Mnoho podniků se spoléhá na zpětnou vazbu od zákazníků. Zatímco člověk by potřeboval dlouho na analýzu velkého souboru recenzí, Hadoop ji zvládne za zlomek času.
Analýza trhu
Pokud jde o tržní strategie, analýza recenzí není nic proti analýze trhu pro zcela nový produkt. Zde se Hadoop opravdu hodí, protože umožňuje i malým startupům efektivně zhodnotit trh pomocí několika počítačů v rozumném čase.
Analýza souborů protokolů
S růstem firmy se zvyšuje i počet nástrojů, které používá. To přináší více potenciálních chyb a potřebu správy logů. Ručně by to trvalo dlouho, ale Hadoop vám umožňuje rychle procházet logy, najít problémy a je odstranit.
Existuje mnoho dalších případů použití Hadoopu, ale abychom se drželi tématu, nebudeme je zde rozebírat.
Přehled architektury Hadoopu
Možná jste už slyšeli o Hadoopu a jeho případech použití. Pokud ne, tento článek vám to vysvětlil. Teď je čas pochopit, z čeho se Hadoop skládá a jak jednotlivé části fungují. Jak jsme zmínili, Hadoop má čtyři hlavní vrstvy. V této části tutorialu se naučíte více o HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce a Hadoop Common. Protože Hadoop Common nemá tolik funkcí k vysvětlení, jeho podstata se nazývá Zookeeper. V této části se pokusím zjednodušit pokročilou architekturu a ekosystém Hadoopu a jeho čtyři části, než se přesuneme k instalaci Hadoopu na Ubuntu 20.04.
HDFS
HDFS v ekosystému Hadoopu je skladovací systém, který všechny subsystémy a aplikace Hadoopu používají k přístupu, přenosu a ukládání dat. Klíčový rozdíl HDFS je v tom, že na rozdíl od samotného Hadoopu, který je open-source, je HDFS souborový systém zodpovědný za spouštění všech operací jednoho Hadoop clusteru. HDFS je velmi odolný souborový systém, který rozděluje data na chunky po 128 MB a optimalizuje je pro sekvenční operace.
Primární role HDFS je poskytnout všechna data jako součást datového racku, který lze pak manipulovat pomocí různých namenodů a sekundárních racků do subsekci pro organizaci vaší operace analýzy dat. Můžete pak použít další možnosti jako Journal racky, QJM, HA, fsimage a edit log soubory a celkový log pro sledování a další úkoly.
YARN
YARN je další hlavní součást Hadoopu, která slouží k přidělování výpočetních prostředků konkrétním aplikacím v ekosystému Hadoopu. V podstatě vám umožňuje použít správce prostředků pro přidělování těchto prostředků prostřednictvím různých nodů různým úkolům a aplikacím. YARN má také systém sledování, který vám pomáhá udržovat přehled o přidělených prostředcích a operacích. YARN se dělí na tři subsekce: Resource Manager, Application Master a Node Manager.
Každá z těchto tří subsekci vytváří novou instanci sebe sama na cluster, aplikaci a node. YARN vám nejen umožňuje přidělovat prostředky různým úkolům, ale také je můžete plánovat tak, aby se měnily v čase a vytvářely pokročilé algoritmické workflowy. YARN se neomezuje jen na své subsekce. Budete jej často používat spolu s jinými architekturními vrstvami jako HDFS a Zookeeper.
Hadoop MapReduce
Hadoop MapReduce je další hlavní součást ekosystému Hadoopu. Jakmile nainstalujete Hadoop na Ubuntu, můžete tuto funkci použít k analýze velkého datového souboru distribuovaně na více počítačích. MapReduce funguje takto: vložíte velkou datovou mapu do programu. Tato mapa se rozdělí a distribuuje across váš síťový počítač. Poté se pomocí speciálních protokolů zvaných reducery data zredukují na jejich nejzákladnější prvky. Každá taková operace se nazývá Job.
Řekněme, že máte tříslovnou větu, kterou chcete analyzovat s MapReducem. Věta je Bear Hunt Rabbit. Hadoop MapReduce ji rozdělí a zredukuje na tři batche, každý s jedním slovem. Pak tato slova kombinuje s podobnými daty z ostatních jobů a vytvoří finální homogenizovanou datovou batch bez zbytečných dat, kterou lze snadno analyzovat.
Zookeeper
Zookeeper je další subsekce ekosystému Hadoopu, která se stala běžnou s vydáním Hadoop verze 2.0. Primárním účelem Zookeeperů je koordinace mezi různými operacemi, které spouštíte v jedné instanci Hadoopu. Zookeeper se proto téměř vždy používá spolu s YARN Resource Managerem a různými funkcemi HDFS. Jeho hlavním použitím je detekce a náprava potenciálních bodů selhání. K tomu používá dvě nástroje: ZKFiloverControer a Zookeeper Quorum.
V těchto postupech jsou datové uzly spravované ostatními komponentami Hadoop architektury kategorizovány jako aktivní namenody, které dohlíží uživatel. Každý z těchto namenodů pak prochází kontrolou v obou zmíněných subsekciích Zookeeperů. To je pro identifikaci problémů a potenciálních selhání.
Instalace Hadoopu na XQNT0073ZZ 20.04 – Podrobný průvodce
Konečně, po prozkoumání Hadoop architektury, je čas na instalaci Hadoopu na Ubuntu 20.04, což je závěrečná část tohoto tutorialu. Nejdříve si projděme předpoklady, než se pustíme do podrobného průvodce instalací Hadoopu na Ubuntu 20.04. Pamatujte, že tento průvodce lze použít i pro Ubuntu 18.04.
Předpoklady
Předpoklady pro instalaci Hadoop na Ubuntu jsou jednoduché. Potřebujete počítač poháněný Ubuntu s přístupem root - buď lokálně, nebo vzdáleně přes server VPS. Ujistěte se, že máte nainstalované Java 11 a SSH. Pokud je nemáte, spusťte postupně tyto příkazy:
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y
Licenci nepotřebujete, protože Hadoop je volně dostupný a s otevřeným kódem. To je vše, co potřebujete. Přejděme na první krok.
Krok 1: Vytvoření uživatele bez root oprávnění pro Hadoop
Vytvořte uživatele bez práv root pro váš Hadoop pomocí tohoto příkazu. Toto je součást přípravy, kterou musíme provést před stažením a instalací Hadoop:
sudo adduser hdoop
su - hdoop
Krok 2: Nastavení klíčů SSH
K instalaci Hadoop na Ubuntu budeme používat uživatele Hadoop, kterého jste právě vytvořili, a vytvoříme s ním připojení SSH. Pomocí tohoto příkazu vygenerujte pár klíčů SSH a uložte ho:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Jakmile jsou klíče vygenerovány, následující řádek vám umožní je označit jako authorized_keys a uložit je v adresáři SSH:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Nyní pomocí tohoto příkazu ověřte, že vaše připojení SSH má všechna potřebná oprávnění:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Potvrďte změny a budete moci snadno se připojit ke svému localhost s vytvořeným uživatelem:
ssh localhost
Krok 3: Stažení a instalace Hadoopu na Ubuntu
Můžete navštívit web Hadoop Apache abyste viděli seznam verzí s jejich posledními změnami. Vyberte si verzi podle svého výběru a dostanete odkaz, který můžete použít v následujícím příkazu k stažení a instalaci Hadoop na Ubuntu. Zde volím verzi 3.3.6. Nahraďte '3.3.6' nejnovější stabilní verzí, pokud je to nutné:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
Po dokončení stažení použijte tento řádek k dokončení procesu rozbalení a instalace:
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
Krok 4: Konfigurace prostředí Hadoopu
Nastavit 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
Krok 5: Úprava konfiguračních souborů
Aktualizujte konfigurační XML soubory Hadoop podle nastavení vašeho clusteru.
nano /usr/local/hadoop/etc/hadoop/core-site.xml
Krok 6: Formátování HDFS
Inicializujte obor názvů Hadoop filesystem.
/usr/local/hadoop/bin/hdfs namenode -format
Krok 7: Spuštění služeb Hadoopu
Spusťte služby HDFS a YARN.
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
Krok 8: Ověření instalace
Zkontrolujte spuštěné procesy Java a potvrďte, že Hadoop běží.
jps
Krok 9: Přístup k webovým rozhraním
Otevřete webové prohlížeče na rozhraní NameNode a ResourceManager Hadoop.
NameNode: http://localhost:9870
Správce prostředků: http://localhost:8088
Krok 10: Spuštění příkladu MapReduce
Spusťte vzorový MapReduce job k ověření nastavení.
/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/*
Krok 11: Nastavení proměnných prostředí
Přidat Hadoop bin a sbin adresáře do systémové PATH.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
A to je vše! Úspěšně jste nakonfigurovali a nainstalovali Apache Hadoop na Ubuntu 20.04!
Závěr
Stručně řečeno, instalace Hadoop na Ubuntu 20.04 je důkladný proces vyžadující pečlivou pozornost a ochotu seznámit se s detaily nastavení. Pokud budete postupovat podle kroků uvedených v tomto průvodci, uživatelé Ubuntu si budou moci plně využít značné možnosti Hadoop k realizaci svých cílů v analýze dat.
Pokud se chcete pouze učit a experimentovat s Hadoopem, doporučuji nasadit jej jako jednouzlový cluster s omezenou distribucí. Na to vám stačí VPS. Cloudzy vám nabízí řadu dalších Linux VPS služby včetně spolehlivé infrastruktury Ubuntu VPS kterou můžete nakonfigurovat během minut a vytvořit si tak dokonalé testovací prostředí pro Hadoop. Za pouhých $4.95 měsíčně si pořídíte Ubuntu VPS s více než 12 umístěními a 24/7 podporou!
Jasná volba
Většina serverů s Linux běží na Ubuntu – proč ne vy? Zjistěte, proč si ho tolik lidí oblíbilo, a pořiďte si optimalizovaný Ubuntu VPS.
Získejte svůj Ubuntu VPSČasto kladené otázky
Jaké jsou rozdíly mezi HDFS a MapReduce?
Oba moduly patří do ekosystému Hadoopu, ale mají odlišné účely. HDFS funguje jako distribuovaný souborový systém pro přístup k datům. MapReduce se zase skvěle hodí na rozdělování a efektivní analýzu velkých datových sad.
Je Hadoop považován za databázi?
Hadoop není databáze, i když se o něm často takto mluví. Jde o distribuovaný souborový systém, který umožňuje ukládání a zpracování rozsáhlých dat v síti propojených počítačů. Není vhodné jej používat jako přímou náhradu za tradiční databázový systém.
Jaké jsou čtyři primární komponenty Hadoopu?
Hadoop se skládá ze čtyř hlavních komponent: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce a Hadoop Common. Některé zdroje zmiňují i ZooKeeper, ten však oficiálně mezi komponenty nepatří.
Kde se Hadoop typicky používá?
Hadoop se používá v mnoha oblastech, kde je potřeba spravovat, ukládat, zpracovávat a analyzovat velké objemy dat. Hodí se pro podniky, zdravotnická zařízení i startupů, kteří potřebují data-driven řešení.