В последнее время я много читаю о HBase, и я немного смущен относительно роли HMaster и Zookeeper в архитектуре HBase.HMaster vs Zookeeper - HBase
- Когда клиент запрашивает данные, кто получает этот запрос? Предполагая, что это первый запрос. Я понимаю, что последующие запросы могут быть напрямую переданы серверам региона. Но для этого необходимо найти местоположения метафайлов, а затем выполнить поиск или сканирование на конкретной мета-таблице на сервере региона.
Причина, по которой я спрашиваю, если я использую Java, я бы использовал класс HConnectionManager для создания соединения. Похоже, что HConnectionManager уже имеет кэш доступных регионов. Причина, по которой создается кеш, будет заключаться в том, что некоторое количество запросов выполняется раньше, но что делать, если кеша там нет, и это первый запрос.
Кто берет первый запрос на HBase, будет ли он кворумом zookeeper? Мы отправляем файл hbase-site.xml для класса HBaseConfiguration.
- Также я немного смущен тем, как мы определяем «клиент»?
Другая вещь, которую я прочитал, - это метаинформация, которую кэшируется на «клиенте», это правда даже в случае HBase REST? Будет ли здесь клиент HMaster или фактическим пользователем, который делает вызов REST. Если это так, это не создает угрозу безопасности, если метаданные подвергаются воздействию клиента.