Snabbstart: Fråga Apache HBase i Azure HDInsight med Apache Phoenix

I den här snabbstarten får du lära dig hur du använder Apache Phoenix för att köra HBase-frågor i Azure HDInsight. Apache Phoenix är en SQL-frågemotor för Apache HBase. Den används som en JDBC-drivrutin, och gör att du kan ställa frågor och hantera HBase-tabeller med SQL. SQLLine är ett kommandoradsverktyg för att köra SQL.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Förutsättningar

Identifiera en ZooKeeper-nod

När du ansluter till ett HBase-kluster måste du ansluta till en av Apache ZooKeeper-noderna. Varje HDInsight-kluster har tre ZooKeeper-noder. Curl kan användas för att snabbt identifiera en ZooKeeper-nod. Redigera curl-kommandot nedan genom att PASSWORD ersätta och CLUSTERNAME med relevanta värden och ange sedan kommandot i en kommandotolk:

curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER

En del av utdata ser ut ungefär så här:

    {
      "href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
      "HostRoles" : {
        "cluster_name" : "myCluster",
        "component_name" : "ZOOKEEPER_SERVER",
        "host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
      }

Anteckna värdet för host_name senare användning.

Skapa en tabell och ändra data

Du kan använda SSH för att ansluta till HBase-kluster och sedan använda Apache Phoenix för att skapa HBase-tabeller, infoga data och fråga efter data.

  1. Använd ssh kommandot för att ansluta till ditt HBase-kluster. Redigera kommandot nedan genom att CLUSTERNAME ersätta med namnet på klustret och ange sedan kommandot:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Ändra katalogen till Phoenix-klienten. Ange följande kommando:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. Starta SQLLine. Redigera kommandot nedan genom att ZOOKEEPER ersätta med zookeeper-noden som identifierades tidigare och ange sedan kommandot:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. Skapa en HBase-tabell. Ange följande kommando:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. Använd SQLLine-kommandot !tables för att visa alla tabeller i HBase. Ange följande kommando:

    !tables
    
  6. Infoga värden i tabellen. Ange följande kommando:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. Fråga tabellen. Ange följande kommando:

    SELECT * FROM Company;
    
  8. Ta bort en post. Ange följande kommando:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. Släpp tabellen. Ange följande kommando:

    DROP TABLE Company;
    
  10. Använd SQLLine-kommandot !quit för att avsluta SQLLine. Ange följande kommando:

    !quit
    

Rensa resurser

När du har slutfört snabbstarten kanske du vill ta bort klustret. Med HDInsight lagras dina data i Azure Storage så att du på ett säkert sätt kan ta bort ett kluster när det inte används. Du debiteras också för ett HDInsight-kluster, även när det inte används. Eftersom avgifterna för klustret är flera gånger större än avgifterna för lagring är det ekonomiskt sett bra att ta bort kluster när de inte används.

Information om hur du tar bort ett kluster finns i Ta bort ett HDInsight-kluster med webbläsaren, PowerShell eller Azure CLI.

Nästa steg

I den här snabbstarten har du lärt dig hur du använder Apache Phoenix för att köra HBase-frågor i Azure HDInsight. Om du vill veta mer om Apache Phoenix ger nästa artikel en djupare undersökning.