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 sok más.
Az Azure HDInsight egy teljes körű, teljes spektrumú, 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 HDInsightban található Hadoop-fürtök kompatibilisek az Azure Data Lake Storage Gen2-vel.
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:
Mapper: Felhasználja a bemeneti adatokat, elemzi azokat (általában szűrési és rendezési műveletekkel), és csuplokat bocsát ki (kulcs-érték párok)
Redukátor: Felhasználja a Mapper által kibocsátott összesítő műveletet, amely kisebb, kombinált eredményt hoz létre a Mapper-adatokból
Az alábbi ábrán egy egyszerű szószámú MapReduce-feladat látható:
A feladat kimenete annak a száma, hogy az egyes szavak hányszor történtek a szövegben.
- A leképező a bemeneti szöveg minden sorát bemenetként veszi fel, és szavakra bontja. Kulcs-érték párokat bocsát ki minden alkalommal, amikor egy szó előfordul a szóból, és egy 1 követi. A kimenet rendezve van, mielőtt elküldené a redukátornak.
- A redukátor összegzi az egyes szavak számát, és egyetlen kulcs/értékpá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ó, és bemutató célokra használatos ebben a dokumentumban.
Fejlesztői 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ése az STDIN és az STDOUT használatával kommunikál a mapperrel és a reduktóval. A leképező és a redukátor egyszerre olvas be adatokat az STDIN-ből, és írja a kimenetet az STDOUT-ba. A leképező és a redukátor által beolvasott vagy kibocsátott soroknak kulcs/érték pár formátumban kell lenniük, 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, lásd a következő dokumentumot:
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 beküldése a HDInsightban
- Java MapReduce-programok fejlesztése az Apache Hadoophoz a HDInsighton
- 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