Megosztás a következőn keresztül:


Apache Hive-lekérdezések futtatása a Data Lake Tools for Visual Studióval

Megtudhatja, hogyan kérdezheti le az Apache Hive-t a Visual Studio Data Lake-eszközeivel. A Data Lake-eszközökkel egyszerűen hozhat létre, küldhet el és figyelhet Hive-lekérdezéseket az Azure HDInsighton futó Apache Hadoopba.

Előfeltételek

Apache Hive-lekérdezések futtatása a Visual Studióval

Hive-lekérdezések létrehozására és futtatására két lehetősége van:

  • Alkalmi lekérdezések létrehozása.
  • Hozzon létre egy Hive-alkalmazást.

Alkalmi Hive-lekérdezés létrehozása

Az alkalmi lekérdezések Batch vagy Interaktív módban is végrehajthatók.

  1. Indítsa el a Visual Studiót , és válassza a Folytatás kód nélkül lehetőséget.

  2. A Kiszolgálókezelőben kattintson a jobb gombbal az Azure-ra, válassza a Csatlakozás a Microsoft Azure-előfizetéshez... lehetőséget, és fejezze be a bejelentkezési folyamatot.

  3. Bontsa ki a HDInsightot, kattintson a jobb gombbal arra a fürtre, ahol futtatni szeretné a lekérdezést, majd válassza a Hive-lekérdezés írása lehetőséget.

  4. Adja meg a következő hive-lekérdezést:

    SELECT * FROM hivesampletable;
    
  5. Válassza a Végrehajtás lehetőséget. A végrehajtási mód alapértelmezés szerint interaktív.

    Interaktív Hive-lekérdezés végrehajtása a Visual Studióban.

  6. Ha ugyanazt a lekérdezést Batch módban szeretné futtatni, állítsa a legördülő listát interaktívról Batchre. A végrehajtási gomb a Végrehajtásról a Küldésre változik.

    Batch Hive-lekérdezés elküldése, Visual Studio.

    A Hive szerkesztője támogatja az IntelliSense-t. A Data Lake Tools for Visual Studio támogatja a távoli metaadatok betöltését a Hive-szkript szerkesztésekor. Ha például beírja SELECT * FROM, az IntelliSense felsorolja az összes javasolt táblanevet. Amikor megad egy táblanevet, az IntelliSense listázza az oszlopneveket. Az eszközök a legtöbb Hive DML-utasítást, -segédlekérdezést és beépített UDF-et támogatják. Az IntelliSense csak a HDInsight eszköztáron kijelölt fürt metaadatait javasolja.

  7. A lekérdezési eszköztáron (a lekérdezési lap alatti területen és a lekérdezés szövege fölött) válassza a Küldés lehetőséget, vagy válassza a Lekérés gomb melletti lekéréses nyilat, és válassza a Speciális lehetőséget a lekéréses listából. Ha az utóbbi lehetőséget választja,

  8. Ha a speciális küldési lehetőséget választotta, konfigurálja a feladat nevét, argumentumait, további konfigurációit és állapotkönyvtárát a Szkript elküldése párbeszédpanelen. Ezután válassza a Küldés lehetőséget.

    Szkript küldése párbeszédpanel, HDInsight Hadoop Hive-lekérdezés.

Hive alkalmazás létrehozása

Hive-lekérdezés hive-alkalmazás létrehozásával történő futtatásához kövesse az alábbi lépéseket:

  1. Nyissa meg a Visual Studiót.

  2. A Start ablakban válassza az Új projekt létrehozása lehetőséget.

  3. Az Új projekt létrehozása ablakban, a Sablonok keresése mezőbe írja be a Hive kifejezést. Ezután válassza a Hive-alkalmazás lehetőséget, és válassza a Tovább gombot.

  4. Az új projekt konfigurálása ablakban adja meg a projekt nevét, válassza ki vagy hozza létre az új projekt helyét, majd válassza a Létrehozás lehetőséget.

  5. Nyissa meg a projekttel létrehozott Script.hql fájlt, és illessze be a következő HiveQL-utasításokat:

    set hive.execution.engine=tez;
    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4j Logs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs WHERE t4 = '[ERROR]' AND  INPUT__FILE__NAME LIKE '%.log' GROUP BY t4;
    

    Ezek az utasítások a következő műveleteket hajtják végre:

    • DROP TABLE: Törli a táblát, ha létezik.

    • CREATE EXTERNAL TABLE: Létrehoz egy új "külső" táblát a Hive-ben. A külső táblák csak a Hive-ben tárolják a tábladefiníciót. (Az adatok az eredeti helyen maradnak.)

      Feljegyzés

      A külső táblákat akkor érdemes használni, ha a mögöttes adatokat külső forrás, például MapReduce-feladat vagy Azure-szolgáltatás frissíti.

      Egy külső tábla elvetése nem törli az adatokat, csak a tábladefiníciót.

    • ROW FORMAT: Megmutatja a Hive-nek, hogyan formázza az adatokat. Ebben az esetben az egyes naplók mezőit szóköz választja el egymástól.

    • STORED AS TEXTFILE LOCATION: Azt jelzi a Hive-nek, hogy az adatok a példában/adatkönyvtárban tárolódnak, és szövegként lesznek tárolva.

    • SELECT: Kiválasztja az összes olyan sor számát, ahol az oszlop t4 tartalmazza az értéket [ERROR]. Ez az utasítás egy értéket 3ad vissza, mert három sor tartalmazza ezt az értéket.

    • INPUT__FILE__NAME LIKE '%.log': Arra utasítja a Hive-t, hogy csak .log végződő fájlokból adja vissza az adatokat. Ez a záradék az adatokat tartalmazó sample.log fájlra korlátozza a keresést.

  6. A lekérdezésfájl eszköztárán (amely hasonló az alkalmi lekérdezési eszköztárhoz) válassza ki a lekérdezéshez használni kívánt HDInsight-fürtöt. Ezután módosítsa az Interaktív beállítást Batchre (ha szükséges), és válassza a Küldés lehetőséget az utasítások Hive-feladatként való futtatásához.

    Megjelenik a Hive-feladat összegzése , és megjeleníti a futó feladat adatait. A Frissítés hivatkozással frissítse a feladat adatait, amíg a feladat állapota befejezettre nem változik.

    Befejezett Hive-feladat összefoglalása, Hive-alkalmazás, Visual Studio.

  7. Válassza a Feladat kimenete lehetőséget a feladat kimenetének megtekintéséhez. [ERROR] 3Megjeleníti a lekérdezés által visszaadott értéket.

További példa

Az alábbi példa az log4jLogs előző eljárásban létrehozott, Hive-alkalmazás létrehozása nevű táblára támaszkodik.

  1. A Kiszolgálókezelőben kattintson a jobb gombbal a fürtre, és válassza a Hive-lekérdezés írása lehetőséget.

  2. Adja meg a következő hive-lekérdezést:

    set hive.execution.engine=tez;
    CREATE TABLE IF NOT EXISTS errorLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string) STORED AS ORC;
    INSERT OVERWRITE TABLE errorLogs SELECT t1, t2, t3, t4, t5, t6, t7 FROM log4jLogs WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log';
    

    Ezek az utasítások a következő műveleteket hajtják végre:

    • CREATE TABLE IF NOT EXISTS: Létrehoz egy táblát, ha még nem létezik. Mivel a EXTERNAL kulcsszó nincs használatban, ez az utasítás létrehoz egy belső táblát. A belső táblák a Hive adattárházban vannak tárolva, és a Hive kezeli őket.

      Feljegyzés

      A táblákkal ellentétben EXTERNAL a belső táblák elvetése a mögöttes adatokat is törli.

    • STORED AS ORC: Optimalizált soroszlopos (ORC) formátumban tárolja az adatokat. Az ORC egy rendkívül optimalizált és hatékony formátum Hive-adatok tárolására.

    • INSERT OVERWRITE ... SELECT: Kijelöli a log4jLogs táblázat azon sorait, amelyek tartalmazzák [ERROR], majd beszúrja az adatokat a errorLogs táblába.

  3. Szükség esetén módosítsa az Interaktív beállítást Batchre, majd válassza a Küldés lehetőséget.

  4. Annak ellenőrzéséhez, hogy a feladat létrehozta-e a táblát, lépjen a Kiszolgálókezelőbe, és bontsa ki az Azure>HDInsightot. Bontsa ki a HDInsight-fürtöt, majd bontsa ki az alapértelmezett Hive Database-adatbázisokat>. Megjelenik a errorLogs tábla és a Log4jLogs tábla.

Következő lépések

Mint látható, a HdInsight Visual Studio-eszközökkel egyszerűen dolgozhat Hive-lekérdezésekkel a HDInsighton.