On this page
Bigtable
Google Cloud Platform提供了 Google Bigtable 数据库的托管,HBase 和许多 NoSQL 存储系统的原始灵感。由于 HBase 与 Bigtable 非常相似,因此使用 Google 后端运行 OpenTSDB 2.3 和更高版本非常简单。实际上,架构(请参阅HBase Schema)完全相同,因此您要做的就是创建 Bigtable 实例,使用 Bigtable HBase Shell 创建 TSDB 表,并启动 TSD。
Note
Bigtable 的 Client 处于测试阶段,并且正在进行许多更改。随着我们调整代码并发现新的调整参数,性能应会提高。请通过邮件列表或通过修改 GitHub 中的代码来帮助我们。
Setup
设置您的 Google Cloud Platform 帐户。
请遵循创建云大表集群中的步骤。
请遵循HBase Shell 快速入门中的步骤,注意下载 JSON 密钥文件的位置。
将 HBASE_HOME 环境变量设置到您的 Bigtable Shell 目录中,确保已根据“创建 Cloud BigTable 群集”文档中的值设置了 HBASE_CLASSPATH,JAVA_HOME 和 GOOGLE_APPLICATION_CREDENTIALS 环境变量,然后运行 src/create_table.sh 脚本。如果脚本无法启动 Shell,请尝试手动运行 Shell 并执行 create 语句替换正确的值。
通过执行 sh build-bigtable.sh 来构建 TSDB(或者,如果您更喜欢 Maven,则执行 sh build-bigtable.sh pom.xml)。
使用下面的必需和/或可选配置参数准备 opentsdb.conf 文件。
通过 build/tsdb tsd --config =<path> /opentsdb.conf 运行 TSD
Configuration
下表是使用 Bigtable 运行 OpenTSDB 的必需和可选参数的表。这些是来自Configuration的标准 TSD 配置参数的补充。
Property | Type | Required | Description | Default |
---|---|---|---|---|
google.bigtable.project.id | String | Required | 托管 Bigtable 集群的项目 ID。 | |
google.bigtable.instance.id | String | Required | 创建时分配给 Bigtable 集群的集群 ID。请注意,在 AsyncBigtable 0.3.0 之前,该值为google.bigtable.cluster.name 。 |
|
google.bigtable.zone.id | String | Required | 您的 Bigtable 集群运行所在的区域;在创建时选择。请注意,在 AsyncBigtable 0.3.0 之前,该值为google.bigtable.zone.name 。 |
|
hbase.client.connection.impl | String | Required | 将用于实现 HBase API AsyncBigtable 的类将用作 BigtableClient 端和 OpenTSDB 之间的填充程序。将此设置为com.google.cloud.bigtable.hbase1_2.BigtableConnection (或 AsyncBigtable 0.3.0 com.google.cloud.bigtable.hbase1_0.BigtableConnection 之前)。 |
|
google.bigtable.auth.service.account.enable | Boolean | Required | 是否使用 Google 云服务帐户进行连接。设置为 true | false |
google.bigtable.auth.json.keyfile | String | Required | 与您要用于 Bigtable 访问的服务帐户相关联的 JSON 格式的密钥文件的完整路径。从您的云控制台下载此文件。 | |
google.bigtable.grpc.channel.count | Integer | Optional | 向 Bigtable API 打开的用于处理 RPC 的套接字数。为了获得更高的吞吐量,请考虑增加通道数。 | 4 |
Note
在较旧版本的 Client 端中,Google 的 BigtableClient 端使用 ALPN 通过 TLS 通过 HTTP2 与服务器通信。由于 Java 7 和 8(大约 9)不支持本机 ALPN,因此必须在 JVM 开始时加载library来修改 JVM 的字节码。 OpenTSDB 的构建脚本将尝试检测您的 JDK 版本并下载正确版本的 ALPN,但是如果您具有自定义 JVM 或 Hotspot 或 OpenJDK 之外的其他内容,则可能会遇到问题。尝试使用不同版本的 alpn-boot JAR,以了解适合您的方法。对于 AsyncBigtable 0.3.0,使用了 JDK 不可知库,因此不再需要 ALPN。