Apache Sqoop használata a Hadooppal a HDInsightban

Megtudhatja, hogyan használhatja az Apache Sqoopot a HDInsightban az adatok HDInsight-fürtök és Azure SQL-adatbázis közötti importálásához és exportálásához.

Bár az Apache Hadoop természetes választás strukturálatlan és félig strukturált adatok, például naplók és fájlok feldolgozására, szükség lehet a relációs adatbázisokban tárolt strukturált adatok feldolgozására is.

Az Apache Sqoop egy olyan eszköz, amelyet hadoop-fürtök és relációs adatbázisok közötti adatátvitelre terveztek. Segítségével adatokat importálhat egy relációs adatbázis-kezelő rendszerből (RDBMS), például SQL Server, MySQL vagy Oracle a Hadoop elosztott fájlrendszerébe (HDFS), átalakíthatja az adatokat a Hadoopban a MapReduce vagy az Apache Hive használatával, majd exportálhatja az adatokat egy RDBMS-be. Ebben a cikkben Azure SQL Adatbázist használja a relációs adatbázishoz.

Fontos

Ez a cikk egy tesztkörnyezetet állít be az adatátvitel végrehajtásához. Ezután a Sqoop-feladatok futtatása szakasz egyik metódusából választhatja ki a környezethez tartozó adatátviteli módszert.

A HDInsight-fürtökön támogatott Sqoop-verziókért lásd: A HDInsight által biztosított fürtverziók újdonságai?

A forgatókönyv megismerése

A HDInsight-fürt tartalmaz néhány mintaadatot. A következő két mintát használja:

  • Egy Apache-naplófájl Log4j , amely a címen /example/data/sample.logtalálható. A következő naplók lesznek kinyerve a fájlból:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
  • Egy nevű Hive-tábla hivesampletable, amely a következő helyen található adatfájlra /hive/warehouse/hivesampletablehivatkozik: . A táblázat tartalmaz néhány mobileszköz-adatot.

    Mező Adattípus
    clientid sztring
    lekérdezési idő sztring
    piac sztring
    deviceplatform sztring
    devicemake sztring
    devicemodel sztring
    állapot sztring
    ország sztring
    querydwelltime double
    Munkamenet bigint
    sessionpagevieworder bigint

Ebben a cikkben ezt a két adatkészletet használja a Sqoop importálásának és exportálásának teszteléséhez.

Tesztkörnyezet beállítása

A fürt, az SQL-adatbázis és más objektumok a Azure Portal keresztül jönnek létre egy Azure Resource Manager-sablon használatával. A sablon az Azure rövid útmutatósablonjaiban található. A Resource Manager sablon bacpac-csomagot hív meg a táblaséma SQL-adatbázisban való üzembe helyezéséhez. Ha privát tárolót szeretne használni a bacpac-fájlokhoz, használja a következő értékeket a sablonban:

"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",

Megjegyzés

Az importálás sablonnal vagy a Azure Portal csak BACPAC-fájl Azure Blob Storage-ból való importálását támogatja.

  1. Az alábbi kép kiválasztásával nyissa meg a Resource Manager sablont a Azure Portal.

    Üzembe helyezés az Azure-ban gomb új fürthöz

  2. Adja meg a következő tulajdonságokat:

    Mező Érték
    Előfizetés Válassza ki azure-előfizetését a legördülő listából.
    Erőforráscsoport Válassza ki az erőforráscsoportot a legördülő listából, vagy hozzon létre egy újat
    Hely Válasszon ki egy régiót a legördülő listából.
    Fürt neve Adja meg a Hadoop-fürt nevét. Csak kisbetűket használjon.
    Fürt bejelentkezési felhasználóneve Tartsa meg az előre kitöltött értéket admin.
    Fürt bejelentkezési jelszava Adjon meg egy jelszót.
    Ssh-felhasználónév Tartsa meg az előre kitöltött értéket sshuser.
    Ssh-jelszó Adjon meg egy jelszót.
    Sql Rendszergazda Bejelentkezés Tartsa meg az előre kitöltött értéket sqluser.
    Sql Rendszergazda jelszava Adjon meg egy jelszót.
    _artifacts hely Használja az alapértelmezett értéket, hacsak nem szeretné a saját bacpac-fájlját egy másik helyen használni.
    _artifacts Location Sas-token Hagyja üresen.
    Bacpac-fájl neve Csak akkor használja az alapértelmezett értéket, ha saját bacpac-fájlt szeretne használni.
    Hely Használja az alapértelmezett értéket.

    A logikai SQL-kiszolgáló neve .<ClusterName>dbserver Az adatbázis neve .<ClusterName>db A tárfiók alapértelmezett neve .e6qhezrh2pdqu

  3. Válassza az Elfogadom a fenti feltételeket.

  4. Válassza a Beszerzés lehetőséget. Megjelenik egy új csempe a Sablon üzembe helyezéséhez üzembe helyezés elküldése címmel. A fürt és az SQL-adatbázis létrehozása nagyjából 20 percet vesz igénybe.

Sqoop-feladatok futtatása

A HDInsight különböző módszerekkel futtathat Sqoop-feladatokat. Az alábbi táblázat segítségével döntse el, hogy melyik módszer a megfelelő az Ön számára, majd kövesse az útmutató hivatkozását.

Használja ezt a műveletet, ha szeretné... ... interaktív rendszerhéj ... kötegelt feldolgozás ... ebből az ügyfél operációs rendszerből
SSH ? ? Linux, Unix, Mac OS X vagy Windows
.NET SDK a Hadoophoz   ? Windows (egyelőre)
Azure PowerShell   ? Windows

Korlátozások

  • Tömeges exportálás – A Linux-alapú HDInsighttal az adatok Microsoft SQL Server vagy SQL Database való exportálásához használt Sqoop-összekötő jelenleg nem támogatja a tömeges beszúrásokat.
  • Kötegelés – Linux-alapú HDInsight esetén a Sqoop a -batch beszúrási műveletek kötegelése helyett több beszúrást hajt végre a kapcsoló használatakor.

Következő lépések

Most már megtanulta, hogyan használhatja a Sqoopot. További információ: