Bigtable
Google Cloud Platform предоставляет хостинг базы данных Google Bigtable, которая послужила первоначальным вдохновением для HBase и многих систем NoSQL хранения данных. Поскольку HBase очень похожа на Bigtable, запуск OpenTSDB 2.3 и более поздних версий с бэкендом Google прост. Действительно, схемы (см. Схему HBase) абсолютно идентичны, поэтому всё, что вам нужно сделать, это создать ваш экземпляр Bigtable, создать ваши таблицы TSDB с помощью оболочки HBase, и запустить TSD.
Примечание
Клиенты для Bigtable находятся в бета-версии и подвергаются ряду изменений. Производительность должна улучшиться по мере корректировки кода и выявления новых параметров настройки. Помогите нам на почтовом списке или изменив код в GitHub.
Настройка
- Настройте свою учётную запись Google Cloud Platform.
- Следуйте инструкциям в создании кластера Cloud Bigtable.
- Следуйте инструкциям в быстром руководстве по оболочке HBase, обращая внимание на то, где вы скачиваете свой JSON-ключевой файл.
- Установите переменную окружения HBASE_HOME в каталог вашей оболочки Bigtable, убедитесь, что переменные окружения HBASE_CLASSPATH, JAVA_HOME и GOOGLE_APPLICATION_CREDENTIALS установлены в соответствии со значениями в документе создание кластера Cloud BigTable, и запустите скрипт src/create_table.sh. Если скрипт не запускает оболочку, попробуйте запустить оболочку вручную и выполнить команды create, заменив соответствующие значения.
- Соберите TSDB, выполнив sh build-bigtable.sh (или, если вы предпочитаете Maven, sh build-bigtable.sh pom.xml)
- Подготовьте файл opentsdb.conf с необходимыми и/или необязательными параметрами конфигурации ниже.
- Запустите TSD с помощью build/tsdb tsd --config=<path>/opentsdb.conf
Конфигурация
Ниже приведена таблица необходимых и необязательных параметров для запуска OpenTSDB с Bigtable. Это дополнение к стандартным параметрам конфигурации TSD из Конфигурации.
| Свойство | Тип | Необходимо | Описание | По умолчанию |
|---|---|---|---|---|
| google.bigtable.project.id | Строка | Необходимо | Идентификатор проекта, на котором размещён ваш кластер Bigtable. | |
| google.bigtable.cluster.name | Строка | Необходимо | Идентификатор кластера, который вы присвоили вашему кластеру Bigtable при создании. | |
| google.bigtable.zone.name | Строка | Необходимо | Зона, в которой работает ваш кластер Bigtable; выбрана при создании. | |
| hbase.client.connection.impl | Строка | Необходимо | Класс, который будет использоваться для реализации API HBase. AsyncBigtable будет использовать его в качестве прослойки между клиентом Bigtable и OpenTSDB. Установите значение com.google.cloud.bigtable.hbase1_0.BigtableConnection | |
| google.bigtable.auth.service.account.enable | Булево | Необходимо | Указывает, использовать ли учётную запись службы Google Cloud для подключения. Установите значение true | false |
| google.bigtable.auth.json.keyfile | Строка | Необходимо | Полный путь к файлу ключей в формате JSON, связанному с учётной записью службы, которую вы хотите использовать для доступа к Bigtable. Скачайте его из консоли облака. | |
| google.bigtable.grpc.channel.count | Целое число | Необязательно | Количество сокетов, открытых для API Bigtable для обработки RPC. Для более высокой пропускной способности рассмотрите увеличение количества каналов. | 4 |
Примечание
Клиент Bigtable от Google взаимодействует с их серверами по протоколу HTTP2 с TLS с использованием ALPN. Поскольку в Java 7 и 8 (не знаю насчёт 9) отсутствует собственная поддержка ALPN, необходимо загрузить библиотеку библиотеку во время запуска JVM, чтобы изменить байт-код JVM. Скрипт сборки OpenTSDB попытается определить вашу версию JDK и загрузить соответствующую версию ALPN, но если у вас есть пользовательская JVM или что-то кроме Hotspot или OpenJDK, у вас могут возникнуть проблемы. Попробуйте разные версии JAR alpn-boot, чтобы увидеть, что работает для вас.
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/backends/bigtable.html