HIVE High Availability

Документация по Hive http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_ig_hive_installation.html

Архитектура Hive:

Архитектура Hive

Hive High Availability

Для обеспечения высокой доступности и балансировки нагрузки для HiveServer2, Hive предоставляет функцию динамического обнаружения службы, где несколько экземпляров HiveServer2 могут регистрироваться с Zookeeper. Вместо подключения к определенному HiveServer2 напрямую, клиенты подключаются к Zookeeper, который возвращает случайно выбранный зарегистрированный экземпляр HiveServer2.

Схематично работа выглядит так:

Hive High Availability

Действия при настройке HA:

1. Cloudera Manager Console->Hive->Configuration

В Scope жмем Hive Metastore Server, затем в Category -> Advanced. Ищем “Hive Metastore Delegation Token Store” и выбираем “org.apache.hadoop.hive.thrift.DBTokenStore”. (как пишет сам cloudera: The delegation token store implementation class. Use DBTokenStore for Highly Available Metastore Configuration, так и сделаем). Жмем сохранить.

2. Добавить роли Hive Metastore Server.

3. Добавить роль HiveServer2.

Затем идем в Hive -> Configuration -> Category -> Advanced.

Находим “HiveServer2 Advanced Configuration Snippet (Safety Valve)” и вписываем:

Name: hive.server2.support.dynamic.service.discovery
Value: true

4. Рестартим Hive сервис.

Проверяем работу:

$ beeline -u "jdbc:hive2://master1.hadoop.stage.int.nic.ru:2181,master2.hadoop.stage.int.nic.ru:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2"

Connecting to jdbc:hive2://master1.hadoop.stage.int.nic.ru:2181,master2.hadoop.stage.int.nic.ru:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2

17/01/10 11:18:27 [main]: INFO jdbc.HiveConnection: Connected to master1.hadoop.stage.int.nic.ru:10000

Connected to: Apache Hive (version 1.1.0-cdh5.9.0)

Driver: Hive JDBC (version 1.1.0-cdh5.9.0)

Transaction isolation: TRANSACTION_REPEATABLE_READ

Beeline version 1.1.0-cdh5.9.0 by Apache Hive

0: jdbc:hive2://master1.hadoop.stage.int.nic.>  

Готово.

 

unix-way