Freigeben über


Schnellstart: Ausführen von Abfragen mit Apache Hive in Azure HDInsight mit Apache Zeppelin

In dieser Schnellstartanleitung erfahren Sie, wie Sie Apache Zeppelin verwenden, um Apache Hive-Abfragen in Azure HDInsight auszuführen. HDInsight Interactive Query Cluster umfassen Apache Zeppelin-Notizbücher, mit denen Sie interaktive Hive-Abfragen ausführen können.

Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Voraussetzungen

Ein interaktiver HDInsight-Abfragecluster. Siehe Erstellen eines Clusters zum Erstellen eines HDInsight-Clusters. Stellen Sie sicher, dass Sie den Clustertyp "Interaktive Abfrage" auswählen.

Erstellen einer Apache-Zeppelin-Notiz

  1. Ersetzen Sie CLUSTERNAME durch den Namen Ihres Clusters in der folgenden URL https://CLUSTERNAME.azurehdinsight.net/zeppelin. Geben Sie dann die URL in einem Webbrowser ein.

  2. Geben Sie Ihren Benutzernamen und Ihr Kennwort für die Clusteranmeldung ein. Auf der Seite "Zeppelin" können Sie entweder eine neue Notiz erstellen oder vorhandene Notizen öffnen. HiveSample enthält einige Beispiel-Hive-Abfragen.

    HDInsight Interactive Query Zeppelin.

  3. Wählen Sie " Neue Notiz erstellen" aus.

  4. Geben Sie im Dialogfeld " Neue Notiz erstellen " die folgenden Werte ein, oder wählen Sie sie aus:

    • Hinweisname: Geben Sie einen Namen für die Notiz ein.
    • Standardinterpreter: Wählen Sie jdbc aus der Dropdown-Liste aus.
  5. Wählen Sie " Notiz erstellen" aus.

  6. Geben Sie die folgende Hive-Abfrage in den Codeabschnitt ein, und drücken Sie dann UMSCHALT+EINGABETASTE:

    %jdbc(hive)
    show tables
    

    HDInsight Interactive Query zeppelin führt Abfrage aus.

    Die %jdbc(hive) Anweisung in der ersten Zeile gibt an, dass das Notizbuch den Hive JDBC-Interpreter verwenden soll.

    Die Abfrage gibt eine Hive-Tabelle mit dem Namen "hivesampletable" zurück.

    Im Folgenden finden Sie zwei weitere Hive-Abfragen, die Sie für hivesampletable ausführen können:

    %jdbc(hive)
    select * from hivesampletable limit 10
    
    %jdbc(hive)
    select ${group_name}, count(*) as total_count
    from hivesampletable
    group by ${group_name=market,market|deviceplatform|devicemake}
    limit ${total_count=10}
    

    Im Vergleich zum herkömmlichen Hive kommen die Abfrageergebnisse deutlich schneller zurück.

Weitere Beispiele

  1. Erstellen sie eine Tabelle. Führen Sie den Code im Zeppelin-Notizbuch aus:

    %jdbc(hive)
    CREATE EXTERNAL TABLE log4jLogs (
        t1 string,
        t2 string,
        t3 string,
        t4 string,
        t5 string,
        t6 string,
        t7 string)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE;
    
  2. Laden Sie Daten in die neue Tabelle. Führen Sie den Code im Zeppelin-Notizbuch aus:

    %jdbc(hive)
    LOAD DATA
    INPATH 'wasbs:///example/data/sample.log'
    INTO TABLE log4jLogs;
    
  3. Fügen Sie einen einzelnen Datensatz ein. Führen Sie den Code im Zeppelin-Notizbuch aus:

    %jdbc(hive)
    INSERT INTO TABLE log4jLogs2
    VALUES ('A', 'B', 'C', 'D', 'E', 'F', 'G');
    

Lesen Sie das Hive-Sprachhandbuch für zusätzliche Syntaxregeln.

Bereinigen von Ressourcen

Nachdem Sie den Schnellstart abgeschlossen haben, können Sie den Cluster löschen. Mit HDInsight werden Ihre Daten in Azure Storage gespeichert, sodass Sie einen Cluster problemlos löschen können, wenn er nicht verwendet wird. Für einen HDInsight-Cluster fallen auch dann Gebühren an, wenn er nicht verwendet wird. Da die Gebühren für den Cluster erheblich höher sind als die Kosten für den Speicher, ist es sinnvoll, nicht verwendete Cluster zu löschen.

Informationen zum Löschen eines Clusters finden Sie unter "Löschen eines HDInsight-Clusters mit Ihrem Browser, PowerShell oder der Azure CLI".

Nächste Schritte

In dieser Schnellstartanleitung haben Sie erfahren, wie Sie Apache Zeppelin verwenden, um Apache Hive-Abfragen in Azure HDInsight auszuführen. Weitere Informationen zu Hive-Abfragen finden Sie im nächsten Artikel, wie Sie Abfragen mit Visual Studio ausführen.