Документация по Hive http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_ig_hive_installation.html
Архитектура Hive:
Hive High Availability
Для обеспечения высокой доступности и балансировки нагрузки для HiveServer2, Hive предоставляет функцию динамического обнаружения службы, где несколько экземпляров HiveServer2 могут регистрироваться с Zookeeper. Вместо подключения к определенному HiveServer2 напрямую, клиенты подключаются к Zookeeper, который возвращает случайно выбранный зарегистрированный экземпляр HiveServer2.
Схематично работа выглядит так:
Действия при настройке 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.>
Готово.