在 Azure 虚拟网络中的 HDInsight 上创建 Apache HBase 群集

了解如何在 Azure 虚拟网络中创建 Azure HDInsight Apache HBase 群集。

通过虚拟网络集成,可以将 Apache HBase 群集部署到应用程序所在的虚拟网络,以便应用程序直接与 HBase 进行通信。 优点包括:

  • 将 Web 应用程序直接连接到 HBase 群集节点,通过 HBase Java 远程过程调用 (RPC) API 实现通信。
  • 提高性能,因为流量不必通过多个网关和负载均衡器。
  • 能够以更安全的方式处理敏感信息,而无需公开公共终结点。

如果没有 Azure 订阅,请在开始前创建一个试用版订阅

在虚拟网络中创建 Apache HBase 群集

在本部分中,通过 Azure 资源管理器模板在 Azure 虚拟网络中使用从属 Azure 存储帐户创建基于 Linux 的 Apache HBase 群集。 若要了解其他群集创建方法以及设置,请参阅创建 HDInsight 群集。 有关使用模板在 HDInsight 中创建 Apache Hadoop 群集的详细信息,请参阅使用 Azure 资源管理器模板在 HDInsight 中创建 Apache Hadoop 群集

注意

某些属性已在模板中硬编码。 例如:

  • 位置:中国东部 2
  • 群集版本:3.6
  • 群集工作节点计数:2
  • 默认存储帐户:唯一字符串
  • 虚拟网络名称:CLUSTERNAME-vnet
  • 虚拟网络地址空间:10.0.0.0/16
  • 子网名称:subnet1
  • 子网地址范围:10.0.0.0/24

CLUSTERNAME 会替换为使用模板时提供的群集名称。

  1. 选择下面的图像即可在 Azure 门户中打开该模板。 该模板位于 Azure 快速启动模板中。

    Deploy to Azure button for new cluster

  2. 从“自定义部署” 对话框中,选择“编辑模板” 。

  3. 在第 165 行中,将值 Standard_A3 更改为 Standard_A4_V2。 再选择“保存” 。

  4. 使用以下信息完成剩余模板:

    属性
    订阅 选择用来创建 HDInsight 群集的 Azure 订阅、相关存储帐户和 Azure 虚拟网络。
    资源组 选择“新建” ,并指定新的资源组名称。
    位置 选择资源组的位置。
    群集名称 为要创建的 Hadoop 群集输入名称。
    群集登录用户名和密码 默认的“用户名”为 admin。提供密码。
    SSH 用户名和密码 默认的“用户名”为 sshuser。 提供密码。

    选择“我同意条款和条件”。

  5. 选择“购买”。 创建群集大约需要 20 分钟时间。 创建群集之后,便可以在门户中选择群集以打开它。

完成本文后,可能需要删除群集。 有了 HDInsight,便可以将数据存储在 Azure 存储中,因此可以在群集不用时安全地删除群集。 此外,还需要支付 HDInsight 群集费用,即使未使用。 由于群集费用高于存储空间费用数倍,因此在不使用群集时将其删除可以节省费用。 有关删除群集的说明,请参阅使用 Azure 门户在 HDInsight 中管理 Apache Hadoop 群集

要开始处理新 HBase 群集,可以按照开始在 HDInsight 中将 Apache HBase 与 Apache Hadoop 配合使用中的步骤进行操作。

使用 Apache HBase Java RPC API 连接到 Apache HBase 群集。

创建虚拟机

将基础结构即服务 (IaaS) 虚拟机创建到相同的 Azure 虚拟网络和子网中。 有关创建新 IaaS 虚拟机的说明,请参阅创建运行 Windows Server 的虚拟机。 按照本文档中的步骤操作时,必须使用以下值进行网络配置:

  • 虚拟网络:CLUSTERNAME-vnet
  • 子网:subnet1

重要

CLUSTERNAME 替换为在先前步骤中创建 HDInsight 群集时使用的名称。

通过使用这些值,可将虚拟机放置在与 HDInsight 群集相同的虚拟网络和子网中。 此配置让它们能够直接相互通信。 有一种方法可使用空的边缘节点创建 HDInsight 群集。 该边缘节点可用于管理群集。 有关详细信息,请参阅在 HDInsight 中使用空边缘节点

获取完全限定的域名

在使用 Java 应用程序远程连接到 HBase 时,必须使用完全限定域名 (FQDN)。 要确定这一点,必须获取 HBase 群集的连接特定的 DNS 后缀。 为此,可以使用以下方法之一:

  • 使用 Web 浏览器进行 Apache Ambari 调用:

    浏览到 https://CLUSTERNAME.azurehdinsight.cn/api/v1/clusters/CLUSTERNAME/hosts?minimal_response=true。 它会返回带 DNS 后缀的 JSON 文件。

  • 使用 Ambari 网站:

    1. 浏览到 https://CLUSTERNAME.azurehdinsight.cn
    2. 在顶部菜单中选择“主机” 。
  • 使用 Curl 发出 REST 调用:

    curl -u <username>:<password> -k https://CLUSTERNAME.azurehdinsight.cn/ambari/api/v1/clusters/CLUSTERNAME.azurehdinsight.cn/services/hbase/components/hbrest
    

在返回的 JavaScript 对象表示法 (JSON) 数据中,找到“host_name”条目。 此条目包含群集中的节点的 FQDN。 例如:

"host_name" : "hn*.hjfrnszlumfuhfk4pi1guh410c.bx.internal.chinacloudapp.cn"

以群集名称开头的域名的部分是 DNS 后缀。 例如,hjfrnszlumfuhfk4pi1guh410c.bx.internal.chinacloudapp.cn

验证虚拟网络内的通信

要验证虚拟机是否可与 HBase 群集进行通信,请从虚拟机使用 ping headnode0.<dns suffix> 命令。 例如,ping hn*.hjfrnszlumfuhfk4pi1guh410c.bx.internal.chinacloudapp.cn

要在 Java 应用程序中使用此信息,可以按照使用 Apache Maven 构建将 Apache HBase 与 HDInsight (Hadoop) 配合使用的 Java 应用程序中的步骤来创建应用程序。 若要让应用程序连接到远程 HBase 服务器,请修改本示例中的 hbase-site.xml 文件,以对 Zookeeper 使用 FQDN。 例如:

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>zookeeper0.<dns suffix>,zookeeper1.<dns suffix>,zookeeper2.<dns suffix></value>
</property>

注意

有关 Azure 虚拟网络中的名称解析的详细信息,包括如何使用自己的 DNS 服务器,请参阅名称解析 (DNS)

后续步骤

在本文中,你已学习了如何创建 Apache HBase 群集。 若要了解更多信息,请参阅以下文章: