Impala — это механизм выполнения запросов MPP (Massive Parallel Processing), который работает на нескольких системах в кластере Hadoop. В отличие от традиционных систем хранения, импала отделена от своего механизма хранения. Он состоит из трех основных компонентов, а именно: даемона Impala (Impalad) , Impala Statestore и метаданных Impala или metastore.
Импала Демон ( Импалад )
Демон Impala (также известный как impalad ) запускается на каждом узле, где установлена Impala. Он принимает запросы от различных интерфейсов, таких как оболочка Impala, браузер оттенков и т. Д., И обрабатывает их.
Всякий раз, когда запрос отправляется импаладу на конкретном узле, этот узел служит « координирующим узлом » для этого запроса. Impalad выполняет несколько запросов и на других узлах. После принятия запроса Impalad читает и записывает файлы данных и распараллеливает запросы, распределяя работу по другим узлам Impala в кластере Impala. Когда запросы обрабатываются в различных экземплярах Impalad , все они возвращают результат в центральный координирующий узел.
В зависимости от требования, запросы могут быть отправлены в отдельный Impalad или сбалансированным образом загружены другому Impalad в вашем кластере.
Импала Государственный Магазин
У Impala есть еще один важный компонент, который называется Impala State store, который отвечает за проверку работоспособности каждого Impalad, а затем часто передает здоровье каждого демона Impala другим демонам. Это может выполняться на том же узле, где работает сервер Impala или другой узел в кластере.
Имя процесса демона хранилища Impala State хранится в состоянии . Impalad сообщает о своем состоянии работоспособности демону хранилища State Impala, т.е.
В случае сбоя узла по какой-либо причине Statestore обновляет все другие узлы об этом сбое, и как только такое уведомление становится доступным для другого impalad , никакой другой демон Impala не назначает какие-либо дополнительные запросы уязвимому узлу.
Импала Метаданные и Мета Магазин
Импала метаданных и мета-хранилище является еще одним важным компонентом. Impala использует традиционные базы данных MySQL или PostgreSQL для хранения определений таблиц. Важные детали, такие как информация о таблицах и столбцах и определения таблиц, хранятся в централизованной базе данных, известной как мета-хранилище.
Каждый узел Impala локально кэширует все метаданные. При работе с чрезвычайно большим объемом данных и / или множеством разделов получение метаданных для конкретной таблицы может занять значительное время. Таким образом, локально сохраненный кэш метаданных помогает мгновенно предоставлять такую информацию.
Когда определение таблицы или данные таблицы обновляются, другие демоны Impala должны обновить свой кэш метаданных, извлекая самые последние метаданные, прежде чем отправлять новый запрос к рассматриваемой таблице.
Интерфейсы обработки запросов
Для обработки запросов Impala предоставляет три интерфейса, перечисленных ниже.
-
Impala-shell — После настройки Impala с использованием виртуальной машины Cloudera вы можете запустить оболочку Impala, введя команду impala-shell в редакторе. Мы обсудим больше о оболочке Impala в следующих главах.
-
Интерфейс Hue — Вы можете обрабатывать запросы Impala с помощью браузера Hue. В браузере Hue у вас есть редактор запросов Impala, в котором вы можете вводить и выполнять запросы Impala. Для доступа к этому редактору, прежде всего, вам необходимо войти в браузер Hue.
-
Драйверы ODBC / JDBC. Как и другие базы данных, Impala предоставляет драйверы ODBC / JDBC. Используя эти драйверы, вы можете подключаться к Impala через языки программирования, которые поддерживают эти драйверы, и создавать приложения, которые обрабатывают запросы в Impala, используя эти языки программирования.
Impala-shell — После настройки Impala с использованием виртуальной машины Cloudera вы можете запустить оболочку Impala, введя команду impala-shell в редакторе. Мы обсудим больше о оболочке Impala в следующих главах.
Интерфейс Hue — Вы можете обрабатывать запросы Impala с помощью браузера Hue. В браузере Hue у вас есть редактор запросов Impala, в котором вы можете вводить и выполнять запросы Impala. Для доступа к этому редактору, прежде всего, вам необходимо войти в браузер Hue.
Драйверы ODBC / JDBC. Как и другие базы данных, Impala предоставляет драйверы ODBC / JDBC. Используя эти драйверы, вы можете подключаться к Impala через языки программирования, которые поддерживают эти драйверы, и создавать приложения, которые обрабатывают запросы в Impala, используя эти языки программирования.
Процедура выполнения запроса
Всякий раз, когда пользователи передают запрос, используя любой из предоставленных интерфейсов, он принимается одним из Impalads в кластере. Этот Импалад рассматривается как координатор для этого конкретного запроса.
После получения запроса координатор запроса проверяет, является ли запрос соответствующим, используя схему таблиц из мета-хранилища Hive. Позже он собирает информацию о расположении данных, необходимых для выполнения запроса, из узла имени HDFS и отправляет эту информацию другим импаладам для выполнения запроса.
Все остальные демоны Impala читают указанный блок данных и обрабатывают запрос. Как только все демоны завершают свои задачи, координатор запросов собирает результат обратно и доставляет его пользователю.