Compartilhar via


Guia de início rápido: consultar o Apache HBase no Azure HDInsight usando o Apache Phoenix

Neste início rápido, você aprenderá a usar o Apache Phoenix para executar consultas do HBase no Azure HDInsight. O Apache Phoenix é um mecanismo de consulta SQL para o Apache HBase. Ele é acessado como um driver JDBC e permite consultar e gerenciar tabelas do HBase utilizando o SQL. SQLLine é um utilitário de linha de comando para executar o SQL.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Identificar um nó do ZooKeeper

Quando se conectar a um cluster HBase, você precisará se conectar a um dos nós do Apache ZooKeeper. Cada cluster HDInsight tem três nós do ZooKeeper. É possível usar o Curl para identificar rapidamente um nó do ZooKeeper. Para editar o comando curl a seguir, substitua PASSWORD e CLUSTERNAME pelos valores relevantes e, em seguida, digite o comando em um prompt de comando:

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

Uma parte da saída será semelhante a:

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

Anote o valor de host_name para uso posterior.

Criar uma tabela e manipular dados

Você pode usar o SSH para se conectar a clusters HBase e, em seguida, usar o Apache Phoenix para criar tabelas do HBase, inserir dados e consultar dados.

  1. Use o comando ssh para se conectar ao cluster HBase. Edite o comando abaixo substituindo CLUSTERNAME pelo nome do cluster e, em seguida, digite o comando:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Altere o diretório para o cliente do Phoenix. Digite o seguinte comando:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. Inicie o SQLLine. Edite o comando abaixo substituindo ZOOKEEPER pelo nome do nó do ZooKeeper identificado anteriormente e, em seguida, insira o comando:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. Crie uma tabela do HBase. Digite o seguinte comando:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. Use o comando !tables do SQLLine para listar todas as tabelas no HBase. Digite o seguinte comando:

    !tables
    
  6. Insira os valores na tabela. Digite o seguinte comando:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. Consulte a tabela. Digite o seguinte comando:

    SELECT * FROM Company;
    
  8. Exclua um registro. Digite o seguinte comando:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. Descarte a tabela. Digite o seguinte comando:

    DROP TABLE Company;
    
  10. Use o comando !quit do SQLLine para sair do SQLLine. Digite o seguinte comando:

    !quit
    

Limpar os recursos

Após concluir o início rápido, poderá ser conveniente excluir o cluster. Com o HDInsight, seus dados são armazenados no Armazenamento do Azure, assim você poderá excluir, com segurança, um cluster quando ele não estiver em uso. Você também é cobrado por um cluster HDInsight, mesmo quando ele não está em uso. Como os encargos para o cluster são muitas vezes maiores do que os encargos para armazenamento, faz sentido, do ponto de vista econômico, excluir os clusters quando não estiverem em uso.

Para excluir um cluster, confira Delete an HDInsight cluster using your browser, PowerShell, or the Azure CLI (Excluir um cluster HDInsight usando o navegador, o PowerShell ou a CLI do Azure).

Próximas etapas

Neste início rápido, você aprendeu a usar o Apache Phoenix para executar consultas do HBase no Azure HDInsight. Para saber mais sobre o Apache Phoenix, o próximo artigo fornecerá uma análise mais detalhada.