Выбор правильного количества корзин в таблице Hive

У меня есть текстовые файлы, имеющие 16 столбцов (user_id,date,other_attributes......), размер целых файлов составляет 200 ГБ, а количество строк - 1800 миллионов +. Я создал внешнюю таблицу (ex_raw_data) для чтения этих данных. У меня есть сценарий агрегации, который генерирует более 200+ производных переменных. Когда я выполнил свой запрос к моей внешней таблице (ex_raw_data), потребовалось много времени для вычислений, поскольку мои файлы - это простые текстовые файлы, а количество строк и вычисляемых переменных огромно. Сейчас я планирую создать новую таблицу кустов, в которой будут храниться данные в формате ORC, но проблема в том, как определить правильное количество сегментов при создании таблицы. Ниже моя конфигурация кластера (на AWS) и структура таблицы ORC:

    Namenode: 32 cores,60 GB RAM, 180GB SSD
    4 Data Nodes: 8 cores (on each data node), 30G RAM (on each data node),
    Total HDFS size 1.5 TB SSD 


create table raw_data_orc
(
user_id string,
date int,
attrib1 string,
attrib1 string,
attrib1 int,
.
.
.
)
CLUSTERED BY(user_id) INTO 32 BUCKETS 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
STORED AS ORC tblproperties ("orc.compress"="ZLIB");

INSERT OVERWRITE TABLE raw_data_orc select * from ex_raw_data;

Что может быть лучшим решением для определения количества сегментов в моей таблице ORC (в соответствии с указанными выше конфигурациями кластера)? Ценю твою помощь!

0 ответов

Другие вопросы по тегам