Co je Apache Hadoop ve službě Azure HDInsight?
Apache Hadoop byl původní open source architekturou pro distribuované zpracování a analýzy velkých datových sad v clusterech. Ekosystém Hadoop zahrnuje související software a nástroje, včetně Apache Hive, Apache HBA, Spark, Kafka a mnoha dalších.
Azure HDInsight je plně spravovaná, plně spektrum Open Source služby pro analýzu v cloudu pro podniky. Typ clusteru Apache Hadoop v Azure HDInsight umožňuje používat Apache Hadoop systém souborů DFS (Distributed File System) (HDFS), Apache Hadoop správu prostředků příze a jednoduchý programovací model MapReduce pro souběžné zpracování a analýzu dat Batch. Clustery Hadoop ve službě HDInsight jsou kompatibilní se službou Azure Blob Storage, Azure Data Lake Storage Gen1nebo Azure Data Lake Storage Gen2.
Komponenty technologie Hadoop dostupné ve službě HDInsight najdete v tématu Dostupné komponenty a verze ve službě HDInsight. Další informace o platformě Hadoop v prostředí HDInsight najdete v tématu Funkce Azure pro HDInsight.
Co je MapReduce
Apache Hadoop MapReduce je softwarové rozhraní pro psaní úloh, které zpracovávají velké objemy dat. Vstupní data jsou rozdělená do nezávislých bloků dat. Jednotlivé bloky dat se zpracovávají paralelně napříč uzly ve vašem clusteru. Úloha MapReduce se skládá ze dvou funkcí:
Mapper: používá vstupní data, analyzuje je (obvykle pomocí operací filtrování a řazení) a generuje řazené kolekce členů (páry klíč-hodnota).
Redukce: spotřebovává řazené kolekce členů generovaných mapovačem a provede souhrnnou operaci, která vytvoří menší, kombinovaný výsledek z dat mapovače.
Příkladem MapReduce úlohy Basic Count (počet slov) je znázorněný v následujícím diagramu:
Výstupem této úlohy je počet, kolikrát se každé slovo v textu objevilo.
- Mapovač přebírá každý řádek ze vstupního textu jako vstup a přerušuje na slova. Vygeneruje dvojici klíč/hodnota pokaždé, když se slovo objeví v slově a následuje 1. Výstup je seřazen před odesláním do zmenšení.
- Tento oddělovač sečte jednotlivé počty jednotlivých slov a vygeneruje jeden pár klíč/hodnota, který obsahuje slovo následovaný součtem jeho výskytů.
MapReduce je možné implementovat v různých jazycích. Java je nejběžnější implementace, která se používá pro demonstrační účely v tomto dokumentu.
Vývojové jazyky
Jazyky nebo architektury založené na jazyce Java a prostředí Java Virtual Machine mohou být spuštěny přímo jako úloha MapReduce. Příkladem použitým v tomto dokumentu je aplikace Java MapReduce. Jazyky mimo jazyk Java, jako je C#, Python nebo samostatné spustitelné soubory, musí využívat streamování Hadoop.
Streamování Hadoop komunikuje s mapovačem a redukcí přes STDIN a STDOUT. Mapovač a zmenšování čtou data na řádek ze standardního vstupu a zápis výstupu do STDOUT. Každý řádek načtený nebo vygenerovaný mapovačem a redukcí musí být ve formátu dvojice klíč/hodnota, oddělený znakem tabulátoru:
[key]\t[value]
Další informace najdete v tématu streamování Hadoop.
Příklady použití streamování Hadoop v HDInsight najdete v tomto dokumentu:
Kde mám začít
- Rychlý Start: Vytvoření clusteru Apache Hadoop ve službě Azure HDInsight pomocí Azure Portal
- Kurz: odeslání Apache Hadoop úloh v HDInsight
- Vývoj programů Java MapReduce pro Apache Hadoop v HDInsight
- Použití Apache Hive jako nástroje pro extrakci, transformaci a načítání (ETL)
- Extrakce, transformace a načítání (ETL) ve velkém měřítku
- Zprovoznění kanálu datových analýz