Подтвердить что ты не робот

Что делает метастабильность улья и имя node в кластере?

В кластере с установленным улей Что такое метастор и наменода? Я понимаю, что у Metastore есть все схемы таблиц, детали разделов и метаданные. Теперь, что это за метаданные? то что у наменода? и где этот метастор присутствует в кластере?

4b9b3361

Ответ 1

NameNode хранит дерево каталогов всех файлов в файловой системе и отслеживает, где в кластере хранятся данные файла. Он также отслеживает все данные DataNode (Dead + Live) через механизм сердечного ритма. Он также помогает клиенту считывать/записывать, получая их запросы и перенаправляя их в соответствующий DataNode.

Метаданные, в которых хранятся метасторы, содержат такие вещи, как:

Идентификаторы базы данных

Идентификаторы таблиц

Идентификаторы индекса

Время создания индекса

Время создания таблицы

Идентификаторы ролей, назначенных конкретному пользователю

InputFormat, используемый для таблицы

OutputFormat, используемый для таблицы и т.д.

Это то, что вы хотели знать?

И не обязательно иметь метастор в самом кластере. Любая машина (внутри или вне кластера), имеющая базу данных, совместимую с JDBC, может использоваться для метастора.

НТН

P.S: Вы можете найти диаграмму E/R метастара полезной.

Ответ 2

Данные Hive (а не метаданные) распространяются через серверы Hadoop HDFS DataNode. Как правило, каждый блок данных хранится на трех разных DataNodes. NameNode отслеживает, какие DataNodes имеют, какие блоки фактических данных.

Для рабочей среды для улья служба метастор должна работать в изолированной JVM. Процессы улья могут связываться с службой метастор с помощью Thrift. Данные метастара Hive сохраняются в базе данных ACID, такой как Oracle DB или MySQL. Вы можете использовать SQL, чтобы узнать, что находится в метафоре улья:

Вот таблицы в метастаре улья:

SQL> select table_name from user_tables;

DBS
DATABASE_PARAMS
SEQUENCE_TABLE
SERDES
TBLS
SDS
CDS
BUCKETING_COLS
TABLE_PARAMS
PARTITION_KEYS
SORT_COLS
SD_PARAMS
COLUMNS_V2
SERDE_PARAMS

Вы можете описать структуру каждой таблицы:

SQL> describe partition_keys;

TBL_ID                       NUMBER
PKEY_COMMENT                 VARCHAR2(4000)
PKEY_NAME                    VARCHAR2(128)
PKEY_TYPE                    VARCHAR2(767)
INTEGER_IDX                  NUMBER(10)

И найдите содержимое каждой таблицы:

SQL> select * from partition_keys;

Итак, если в Hive вы "CREATE TABLE xxx (...) PARTITIONED BY (...)" данные разбиения Hive хранятся в базе метастор (Oracle, MySQL...).

Например, в Hive, если вы создаете таблицу следующим образом:

hive> create table employee_table (id bigint, name string) partitioned by (region string);

Вы найдете это в метасторе:

SQL> select tbl_id,pkey_name from partition_keys;

TBL_ID PKEY_NAME
------ ---------
     8    region

SQL> select tbl_name from tbls where tbl_id=8;

TBL_NAME
--------
employee_table

Когда вы вставляете данные в employee_table, данные будут храниться в HDFS в Hadoop DataNodes, а NameNode будет отслеживать, какие данные DataNodes имеют данные.

Ответ 3

Metastore - его база данных, в которой хранятся метаданные a.k.a, все подробности о таблицах, которые вы создаете в HIVE. По умолчанию, HIVE поставляется с базой данных Derby. Но вы можете использовать любую другую базу данных, такую ​​как MySQL или Oracle.

Использование Metastore. Всякий раз, когда вы запускаете запрос из своего CLI Hive, движок Execution собирает все сведения о таблице и создает план выполнения (Job). Эти данные взяты из Metastore. Наконец, механизм выполнения отправляет задание в Hadoop. Отсюда выполняется общая работа по сокращению карты Hadoop, и результат отправляется обратно в Hive. Имя node связывается с механизмом выполнения для успешного выполнения задания MR.

введите описание изображения здесь

Ответ 4

Выше диаграммы отлично видно, чтобы понять связь улья и хаопа.

Относительно Hive-Metastore (не hadoop-metastore):

  • Не обязательно/обязательно иметь метастор в вашей среде hadoop, поскольку это требуется только в том случае, если вы используете HIVE поверх своего HDFS-кластера.

  • Metastore - это репозиторий метаданных только для HIVE и используемый HIVE для хранения только метаинформации созданной базы данных (а не фактические данные, которые уже находятся в HDFS, потому что HIVE не хранит данные. Hive использует уже сохраненную datain файловую систему )

  • Для реализации Hive требуется служба метастара, использующая любые РСУБД.

Относительно Namenode (hadoop -namenode):

  • основная часть Hadoop, которая ведет себя как метастор для кластера.

  • Не СУБД. Сохраняет метаинформацию файловой системы только в Файловой системе.