В этой статье для дата-инженеров и администраторов SQL-on-Hadoop рассмотрим, что такое Cloudera Data Platform Operational Database, как это связано с Apache HBase и Phoenix. Также разберем, каким образом перенести данные из кластера HBase в Cloudera Operational Database, избежав их потери и других подводных камней.
Что такое Cloudera Operational Database: назначение и состав
Cloudera Operational Database (COD) – это одновременно реляционная СУБД и NoSQL-хранилище на Apache HBase для поддержки OLTP-приложений с большими данными. COD состоит из следующих компонентов с открытым исходным кодом:
- Apache HBase – масштабируемое аналитическое NoSQL-хранилище поверх Hadoop HDFS, куда пишутся HFile-данные и записи WAL-журнала. HBase реализует колоночную архитектуру хранения данных, которая использует базовые функции HDFS и дополняет их, обеспечивая масштабируемость и быструю обработку большого объема запросов на чтение и запись данных в режиме реального времени, равномерно распределяя их по кластеру.
- Apache Phoenix – слой поверх HBase, позволяющий использовать инструментарий SQL-запросов для доступа к данным. Apache Phoenix реализует не только ANSI SQL, но и методы оптимизации HBase. С Phoenix можно создавать таблицы и взаимодействовать с ними в форме типичных SQL-операторов, используя стандартные API JDBC, ODBC и Phoenix DB API. Также Phoenix обеспечивает поддержку схемы данных при чтении и доступ к данным, хранящимся и создаваемым в других компонентах, таких как Apache Spark и Hive.
- Apache ZooKeeper – сервис распределенной конфигурации и синхронизации, а также реестр имен в пространстве кластера;
- Apache Knox Gateway обеспечивает защиту периметра для корпоративных пользователей. Частью службы аутентификации Apache Knox является IDBroker – RESTfull API, который позволяет аутентифицированному и авторизованному пользователю обменивать набор учетных данных или токен на токены доступа провайдера облачных услуг.
- Облачные объектные хранилища объектов, такие как Amazon S3 и Microsoft ADLS Gen2, для хранения HBase-файлов;
- Shared Data Experience (SDX) на базе Apache Ranger и Atlas обеспечивает безопасность и управление кластером. В частности, политики безопасности и управления устанавливаются один раз и применяются ко всем данным и рабочим нагрузкам. Atlas предоставляет возможности управления метаданными и управления для создания каталога всех активов, а также их классификации и управления, включая средства автоматического отслеживания и контроля. Ranger обеспечивает управление ключами безопасности с отдельным входом в систему для администраторов ключей, использующих службу Ranger KMS. Также Ranger предоставляет функции безопасности, такие как маскирование столбцов и фильтрация строк. Наконец, политики доступа в Ranger можно настраивать в динамическом контексте с использованием различных атрибутов, таких как «географический регион» или «время суток».
Переход с кластера Apache HBase в комплексную платформу данных Cloudera
Благодаря наличию вышеуказанных компонентов, Cloudera Operational Database может вести себя как операционная база данных с автоматическим масштабированием в режиме реального времени на базе Apache HBase и Phoenix в рамках платформы данных Cloudera (CDP). Доступ к COD можно получить прямо из консоли CDP. COD позволяет быстро создать новую рабочую базу данных и автоматически масштабируется в зависимости от рабочей нагрузки.
Для работы Cloudera Operational Database необходимо загрузить и установить Apache Maven, Java, а также Python 3.8. Перед началом настройки следует войти в среду COD как ODAdmin, имея права на создание базы данных. В рабочую COD можно перенести нагрузку HBase с помощью подключаемого модуля Cloudera Replication. Плагин Cloudera Replication обеспечивает связь между кластером с поддержкой Kerberos в COD и исходным кластером, который может быть незащищенным или иметь другую область Kerberos.
Процесс миграции с HBase на COD состоит из трех этапов:
- настройка репликации;
- использование моментальных снимков для переноса данных;
- проверка корректности перехода.
Настройка репликации включает настройку ранее упомянутого подключаемого модуля репликации Cloudera, настройку служб HBase и HDFS и использование инструмента ReplicationSetupTool. После настройки репликации можно перенести данные. Чтобы начать процесс, сначала нужно отключить узел репликации, прежде чем делать моментальный снимок. После отключения узла репликации возможно создавать, экспортировать, проверять и восстанавливать snapshot’ы. После восстановления моментального снимка в целевом кластере следует включить узел репликации в исходном кластере, чтобы процесс репликации. Убедиться, что репликация прошла успешно и что данные в исходном и целевом кластерах синхронизированы, поможет инструмент HashTable/CldrSyncTable.
Разобраться со всеми тонкостями администрирования и использования Apache HBase для эффективной аналитики больших данных вам помогут специализированные курсы в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники