你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Apache Phoenix 查询 Azure HDInsight 中的 Apache HBase

本快速入门介绍如何使用 Apache Phoenix 在 Azure HDInsight 中运行 HBase 查询。 Apache Phoenix 是 Apache HBase 的 SQL 查询引擎。 它作为 JDBC 驱动程序进行访问,它支持使用 SQL 查询和管理 HBase 表。 SQLLine 是用于执行 SQL 的命令行实用工具。

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

先决条件

标识 ZooKeeper 节点

连接到 HBase 群集时,需要连接到其中一个 Apache ZooKeeper 节点。 每个 HDInsight 群集都有三个 ZooKeeper 节点。 Curl 可用于快速标识 ZooKeeper 节点。 通过替换 PASSWORD 和相关 CLUSTERNAME 值来编辑下面的 curl 命令,然后在命令提示符中输入命令:

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

输出的一部分将类似于:

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

请记下 host_name 的值,以便以后使用。

创建表并操作数据

可以使用 SSH 连接到 HBase 群集,然后使用 Apache Phoenix 创建 HBase 表、插入数据和查询数据。

  1. 使用 ssh 命令连接到 HBase 群集。 编辑以下命令,将 CLUSTERNAME 替换为群集的名称,然后输入该命令:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. 将目录切换到 Phoenix 客户端。 输入以下命令:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. 启动 SQLLine。 编辑以下命令,将 ZOOKEEPER 替换为群集的名称,然后输入该命令:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. 创建 HBase 表。 输入以下命令:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. 使用 SQLLine !tables 命令列出 HBase 中的所有表。 输入以下命令:

    !tables
    
  6. 在表中插入值。 输入以下命令:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. 查询表。 输入以下命令:

    SELECT * FROM Company;
    
  8. 删除记录。 输入以下命令:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. 删除表。 输入以下命令:

    DROP TABLE Company;
    
  10. 使用 SQLLine !quit 命令退出 SQLLine。 输入以下命令:

    !quit
    

清理资源

完成本快速入门后,可以删除群集。 使用 HDInsight 时,数据存储在 Azure 存储中,因此可以在不使用群集时安全地删除群集。 即使未使用 HDInsight 群集,也会向你收费。 由于群集的费用是存储费用的倍数,因此在不使用群集时删除群集具有经济意义。

若要删除群集,请参阅 使用浏览器、PowerShell 或 Azure CLI 删除 HDInsight 群集

后续步骤

本快速入门介绍了如何使用 Apache Phoenix 在 Azure HDInsight 中运行 HBase 查询。 若要了解有关 Apache Phoenix 的详细信息,下一篇文章将提供更深入的检查。