Használja az Apache Beeline klienst az Apache Hive szolgáltatással

Ez a cikk leírja, hogyan kell használni a parancssori Apache Beeline klienst Apache Hive-lekérdezések SSH-kapcsolaton keresztül történő létrehozásához és végrehajtásához.

beeline

Háttér

A Beeline egy Hive kliens, amely szerepel a HDInsight-fürt fejcsomópontjain. Csatlakozáshoz a HDInsight-fürtbe telepített Beeline klienshez, vagy a Beeline helyi telepítéséhez lásd: Csatlakozás az Apache Beeline-hez vagy telepítése. A Beeline a JDBC segítségével csatlakozik a HiveServer2 szolgáltatáshoz, amely a HDInsight-fürtön tárolt szolgáltatás. A Beeline használatával hozzáférhet a Hive-hez a HDInsight-on is, távolról az interneten keresztül. Az alábbi példák bemutatják a HDInsight-hoz való csatlakozáshoz használt leggyakoribb kapcsolati karakterláncokat a Beeline-ből.

A példák előfeltételei

Figyelje meg a fürt elsődleges tárolójának URI-sémáját. Például: wasb: // az Azure Storage esetén, abfs: // az Azure Data Lake Storage Gen2 esetében, vagy az adl: // az Azure Data Lake Storage Gen1 esetében. Ha a biztonságos átvitel engedélyezve van az Azure Storage szolgáltatásban, akkor az URI wasbs: //. További információ: biztonságos továbbítás.

SSH kliens. További információ: Csatlakozás a HDInsight-hoz (Apache Hadoop) az SSH használatával. A jelen dokumentum legtöbb lépése feltételezi, hogy a Beeline-t egy SSH munkamenetből a fürtbe használja. Használhat helyi Beeline klienst is, de ezek a lépések nem szerepelnek ebben a cikkben.

Futtasson Hive lekérdezést

Ez a példa a Beeline ügyfél SSH kapcsolaton keresztül történő használatán alapul.

Nyisson meg egy SSH kapcsolatot a fürtrel az alábbi kóddal. Cserélje le az sshuser-t a fürt SSH-felhasználójára, a CLUSTERNAME-t pedig a fürt nevére. Amikor a rendszer kéri, írja be az SSH felhasználói fiók jelszavát.

Csatlakozzon a HiveServer2-hez a Beeline klienssel a nyílt SSH munkamenetből a következő parancs megadásával:

A Beeline parancsok a! -Vel kezdődnek. karakter, például! A help megjeleníti a segítséget. Azonban a ! egyes parancsoknál elhagyható. Például a segítség is működik.

Van! Sql, amely a HiveQL utasítások végrehajtására szolgál. A HiveQL azonban annyira elterjedt, hogy az előző! Sql-t kihagyhatja. A következő két állítás egyenértékű:

Egy új fürtön csak egy táblázat szerepel: csalánkiütéses.

A következő paranccsal jelenítse meg a hivesampletable sémáját:

Ez a parancs a következő információkat adja vissza:

Ez az információ a táblázat oszlopait írja le.

Írja be a következő utasításokat nevű tábla létrehozásához log4jLogs a HDInsight-fürthöz kapott mintaadatok felhasználásával: (Szükség szerint módosítsa az URI-séma alapján.)

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

Nyilatkozat leírása
DROP TÁBLÁZAT Ha a táblázat létezik, akkor törli.
KÜLSŐ TÁBLÁZAT LÉTREHOZÁSA Létrehoz egy külső asztal a kaptárban. A külső táblák csak a táblázat definícióját tárolják a Hive-ban. Az adatokat az eredeti helyen hagyják.
Sorformátum Az adatok formázása. Ebben az esetben az egyes naplók mezőit szóköz választja el.
TEKINTETT TELEFONHELYEKEN TÁROLTÁK Hol és milyen fájlformátumban tárolják az adatokat.
SELECT Kiválasztja az oszlopok sorainak számát t4 tartalmazza az értéket [HIBA]. Ez a lekérdezés értéket ad vissza 3 mivel három sor tartalmazza ezt az értéket.
INPUT__FILE__NAME LIKE '% .log' A Hive megkísérli a séma alkalmazását a könyvtár összes fájljára. Ebben az esetben a könyvtár olyan fájlokat tartalmaz, amelyek nem felelnek meg a sémának. Az eredményekben szereplő szemétadatok elkerülése érdekében ez az utasítás azt mondja a Hive-nek, hogy csak a .log végződésű fájlokból kell adatokat visszaküldenie.

Külső táblákat kell használni, ha azt várja, hogy az alapul szolgáló adatokat külső forrás frissítse. Például egy automatizált adatfeltöltési folyamat vagy egy MapReduce művelet.

Külső tábla eldobása igen nem törölje az adatokat, csak a táblázat definícióját.

A parancs kimenete hasonló a következő szöveghez:

Futtasson egy HiveQL fájlt

Ez a példa az előző példa folytatása. A következő lépésekkel hozzon létre egy fájlt, majd futtassa a Beeline használatával.

A következő paranccsal hozzon létre egy nevű fájlt query.hql:

Használja a következő szöveget a fájl tartalmaként. Ez a lekérdezés új „belső” táblát hoz létre errorLogs:

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

Nyilatkozat leírása
LÉTREHOZ TÁBLÁZAT, HA NEM LÉT Ha a táblázat még nem létezik, akkor létrejön. Mivel a KÜLSŐ kulcsszó nem használatos, ez az utasítás létrehoz egy belső táblázatot. A belső táblákat a Hive adattárházban tárolják, és azokat teljesen a Hive kezeli.
ORC-ként tárolva Az adatokat optimalizált soroszlopos (ORC) formátumban tárolja. Az ORC formátum egy nagyon optimalizált és hatékony formátum a Hive adatok tárolására.
BEÍRJA A TELJESÍTÉST. SELECT Kiválasztja a sorokat a log4jLogs táblázat tartalmazza [HIBA], majd beilleszti az adatokat a errorLogs asztal.

A külső táblákkal ellentétben a belső tábla eldobása az alapul szolgáló adatokat is törli.

A fájl mentéséhez használja a Ctrl+x, akkor lépjen be Y, és végül Belép.

Az alábbiak szerint futtassa a fájlt a Beeline használatával:

Az -i paraméter elindítja a Beeline-t és futtatja a lekérdezéseket a query.hql fájlban. A lekérdezés befejezése után megérkezik a jdbc: hive2: // headnodehost: 10001 /> parancssorba. Futtathat egy fájlt az -f paraméterrel is, amely a lekérdezés befejezése után lép ki a Beeline-ból.

Annak ellenőrzésére, hogy a errorLogs táblázat létrejött, a következő utasítással adja vissza az összes sort innen errorLogs:

Három adatsort kell visszaküldeni, amelyek mind tartalmazzák [HIBA] a t4 oszlopban:

Következő lépések

A Hive-ről a HDInsight-ban általánosabb információkért lásd: Apache Hive használata Apache Hadoop-tal a HDInsight-on

Ha további információt szeretne megtudni a Hadoop alkalmazásról a HDInsighton, olvassa el a MapReduce használata az Apache Hadoop alkalmazással a HDInsight alkalmazásban