你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Apache Phoenix 在 Azure HDInsight 中查询 Apache HBase
在本快速入门中,你将学习如何使用 Apache Phoeni 在 Azure HDInsight 中运行 HBase 查询。 Apache Phoenix 是 Apache HBase 的 SQL 查询引擎。 该引擎以 JDBC 驱动程序的形式供用户访问,并且支持使用 SQL 来查询和管理 HBase 表。 SQLLine 是用于执行 SQL 的命令行实用工具。
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
先决条件
Apache HBase 群集。 若要创建 HDInsight 群集,请参阅创建群集。 确保选择 HBase 群集类型。
SSH 客户端。 有关详细信息,请参阅使用 SSH 连接到 HDInsight (Apache Hadoop)。
识别 ZooKeeper 节点
在连接到 HBase 群集时,需要连接到 Apache ZooKeeper 节点之一。 每个 HDInsight 群集都有三个 ZooKeeper 节点。 可以使用 Curl 来快速识别 ZooKeeper 节点。 编辑以下 curl 命令,将 PASSWORD
和 CLUSTERNAME
替换为相关的值,然后在命令提示符下输入该命令:
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 表以及插入和查询数据。
使用
ssh
命令连接到 HBase 群集。 编辑以下命令,将CLUSTERNAME
替换为群集的名称,然后输入该命令:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
将目录更改到 Phoenix 客户端。 输入以下命令:
cd /usr/hdp/current/phoenix-client/bin
启动 SQLLine。 编辑以下命令,将
ZOOKEEPER
替换为群集的名称,然后输入该命令:./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
创建一个 HBase 表。 输入以下命令:
CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
使用 SQLLine
!tables
命令列出 HBase 中的所有表。 输入以下命令:!tables
在表中插入值。 输入以下命令:
UPSERT INTO Company VALUES(1, 'Microsoft'); UPSERT INTO Company VALUES(2, 'Apache');
查询表。 输入以下命令:
SELECT * FROM Company;
删除记录。 输入以下命令:
DELETE FROM Company WHERE COMPANY_ID=1;
删除表。 输入以下命令:
DROP TABLE Company;
使用 SQLLine
!quit
命令退出 SQLLine。 输入以下命令:!quit
清理资源
完成本快速入门后,可以删除群集。 有了 HDInsight,便可以将数据存储在 Azure 存储中,因此可以在群集不用时安全地删除群集。 此外,还需要支付 HDInsight 群集费用,即使未使用。 由于群集费用高于存储空间费用数倍,因此在不使用群集时将其删除可以节省费用。
若要删除群集,请参阅使用浏览器、PowerShell 或 Azure CLI 删除 HDInsight 群集。
后续步骤
在本快速入门中,你已学习了如何使用 Apache Phoenix 在 Azure HDInsight 中运行 HBase 查询。 若要详细了解 Apache Phoenix,下一篇文章将提供更深层次的介绍。