Snelstart: Query Apache HBase in Azure HDInsight met Apache Phoenix

In deze quickstart leert u hoe u Apache Phoenix kunt gebruiken om HBase-query's uit te voeren in Azure HDInsight. Apache Phoenix is a SQL-query-engine voor Apache HBase. Deze is toegankelijk als een JDBC-stuurprogramma en maakt het uitvoeren van query's en beheren van HBase-tabellen SQL mogelijk. SQLLine is een opdrachtregelprogramma voor het uitvoeren van SQL.

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Vereisten

Een ZooKeeper-knooppunt identificeren

Wanneer u verbinding maakt met een HBase-cluster, moet u verbinding maken met een van de Apache ZooKeeper-knooppunten. Elk HDInsight-cluster heeft drie ZooKeeper-knooppunten. cURL kan worden gebruikt om snel een ZooKeeper-knooppunt te identificeren. Bewerk de onderstaande cURL-opdracht door PASSWORD en CLUSTERNAME te vervangen door de relevante waarden, en voer vervolgens deze opdracht uit in een opdrachtprompt:

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

Een deel van de uitvoer ziet er ongeveer als volgt uit:

    {
      "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"
      }

Noteer de waarde van host_name voor later gebruik.

Een tabel maken en gegevens bewerken

U kunt SSH gebruiken om verbinding te maken met HBase-clusters en vervolgens Apache Phoenix gebruiken om HBase-tabellen te maken, gegevens in te voegen, en gegevens te doorzoeken.

  1. Gebruik de opdracht ssh om verbinding te maken met uw HBase-cluster. Bewerk de onderstaande opdracht door CLUSTERNAME te vervangen door de naam van uw cluster.Voer vervolgens deze opdracht in:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Wijzig de map in de map van de Phoenix-client. Voer de volgende opdracht in:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. Start SQLLine. Bewerk de onderstaande opdracht door ZOOKEEPER te vervangen door het eerder geïdentificeerde ZooKeeper-knooppunt. Voer vervolgens deze opdracht in:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. Maak een HBase-tabel. Voer de volgende opdracht in:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. Gebruik de SQLLine-opdracht !tables om alle tabellen in HBase weer te geven. Voer de volgende opdracht in:

    !tables
    
  6. Voeg waarden in de tabel in. Voer de volgende opdracht in:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. Voer een query op de tabel uit. Voer de volgende opdracht in:

    SELECT * FROM Company;
    
  8. Verwijder een record. Voer de volgende opdracht in:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. Verwijder de tabel. Voer de volgende opdracht in:

    DROP TABLE Company;
    
  10. Gebruik de SQLLine-opdracht !quit om SQLLine af te sluiten. Voer de volgende opdracht in:

    !quit
    

Resources opschonen

Nadat u de quickstart hebt voltooid, kunt u het cluster verwijderen. Met HDInsight worden uw gegevens opgeslagen in Azure Storage zodat u een cluster veilig kunt verwijderen wanneer deze niet wordt gebruikt. Voor een HDInsight-cluster worden ook kosten in rekening gebracht, zelfs wanneer het niet wordt gebruikt. Aangezien de kosten voor het cluster vaak zoveel hoger zijn dan de kosten voor opslag, is het financieel gezien logischer clusters te verwijderen wanneer ze niet worden gebruikt.

Als u een cluster wilt verwijderen, raadpleegt u HDInsight-cluster verwijderen met behulp van uw browser, PowerShell of de Azure CLI.

Volgende stappen

In deze quickstart leert u hoe u Apache Phoenix moet gebruiken om HBase-query's uit te voeren in Azure HDInsight. Als u zich verder wilt verdiepen in Apache Phoenix, raadpleegt u het volgende artikel.