Mi az az Apache Hadoop az Azure HDInsightban?
Az Apache Hadoop volt a big data jellegű adatkészletek fürtökön végzett elosztott feldolgozásának, tárolásának és elemzésének eredeti nyílt forráskódú keretrendszere. A Hadoop-ökoszisztéma olyan kapcsolódó szoftvereket és segédprogramokat tartalmaz, mint az Apache Hive, az Apache HBase, a Spark, a Kafka és még sok más.
Az Azure HDInsight egy teljes körűen felügyelt, nyílt forráskódú elemzési szolgáltatás a felhőben nagyvállalatok számára. Az Apache Hadoop-fürt típusa az Azure HDInsightban lehetővé teszi az Apache Hadoop elosztott fájlrendszer (HDFS), az Apache Hadoop YARN erőforrás-kezelés és egy egyszerű MapReduce programozási modell használatát a kötegelt adatok párhuzamos feldolgozásához és elemzéséhez. A HDInsight-alapú Hadoop-fürtök kompatibilisek az Azure Blob Storage, az Azure Data Lake Storage Gen1 vagy az Azure Data Lake Storage Gen2 szolgáltatással.
A HDInsighton elérhető Hadoop-technológiák összetevőinek megtekintése: A HDInsighttal elérhető összetevők és verziók. További tudnivalók a HDInsightban használt Hadoopról az Azure-szolgáltatások HDInsightra vonatkozó oldalán olvashatók.
Mi az a MapReduce?
Az Apache Hadoop MapReduce egy szoftveres keretrendszer olyan feladatok írásához, amelyek nagy mennyiségű adatot dolgoznak fel. A bemeneti adatok független adattömbökre oszlanak. Az egyes adattömbök feldolgozása párhuzamosan történik a fürt csomópontjai között. A MapReduce-feladat két függvényből áll:
Leképező: Felhasználja a bemeneti adatokat, elemzi azokat (általában szűrési és rendezési műveletekkel), és lekérdezéseket bocsát ki (kulcs-érték párok)
Csökkentő: Felhasználja a Mapper által kibocsátott összesítéseket, és egy összegző műveletet hajt végre, amely kisebb, kombinált eredményt hoz létre a Mapper-adatokból
Az alábbi ábrán egy egyszerű szószámláló MapReduce-feladat példája látható:
A feladat kimenete azt adja meg, hogy az egyes szavak hányszor fordulnak elő a szövegben.
- A leképező a bemeneti szöveg minden sorát bemenetként veszi fel, és szavakra bontja. Minden alkalommal kibocsát egy kulcs/érték párt, amikor egy szó előfordul, és egy 1 követi. A kimenet rendezve lesz, mielőtt elküldené a csökkentési osztálynak.
- A csökkentő összeadja ezeket az egyes számokat minden szóhoz, és egyetlen kulcs/érték párt bocsát ki, amely tartalmazza a szót, majd az előfordulások összegét.
A MapReduce különböző nyelveken implementálható. A Java a leggyakoribb implementáció, amely bemutató célokra szolgál ebben a dokumentumban.
Fejlesztési nyelvek
A Javán és a Java virtuális gépen alapuló nyelvek vagy keretrendszerek közvetlenül MapReduce-feladatként futtathatók. A dokumentumban használt példa egy Java MapReduce-alkalmazás. A nem Java-nyelveknek, például a C#-nak, a Pythonnak vagy az önálló végrehajtható fájloknak Hadoop-streamelést kell használniuk.
A Hadoop-streamelés a leképezővel és a csökkentésivel kommunikál az STDIN és az STDOUT használatával. A leképező és a csökkentési eszköz soronként beolvassa az adatokat az STDIN-ből, és a kimenetet az STDOUT-ba írja. A leképező és a csökkentő által beolvasott vagy kibocsátott minden sornak kulcs/érték pár formátumban kell lennie, tabulátor karakterrel elválasztva:
[key]\t[value]
További információ: Hadoop Streaming.
Példák a Hadoop-streamelés HDInsighttal való használatára:
Hol kezdjem?
- Rövid útmutató: Apache Hadoop-fürt létrehozása az Azure HDInsightban az Azure Portal használatával
- Oktatóanyag: Apache Hadoop-feladatok elküldése a HDInsightban
- Java MapReduce-programok fejlesztése a HDInsight-alapú Apache Hadoophoz
- Az Apache Hive használata kinyerési, átalakítási és betöltési (ETL) eszközként
- Nagy léptékű kinyerés, átalakítás és betöltés (ETL)
- Adatelemzési folyamat üzembe helyezése