Установите размер выходного блока S3 в Hive Activity, выполняемой в AWS EMR 4.7.0 - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь выяснить, как настроить размер блока (или размер фрагмента) отдельных объектов, записанных в s3, с помощью операции Hive, выполняемой в AWS EMR 4.7.0.

Для моего варианта использования мыя задал конвейер данных AWS, настроенный для выгрузки данных в s3 из таблицы DynamoDB с помощью операции Hive, и я пытаюсь выяснить, есть ли способ настроить размер блока при записи данных в s3 в конвейере данных?На данный момент размер фрагмента по умолчанию для отдельных объектов s3 составляет 256 МБ (немногие из них могут достигать 300 МБ).

Когда я смотрю журналы, я вижу, что количество объектов, записанных в S3 (39)равны количеству картографов, созданных на этапе Hadoop.

Hadoop job information for Stage-3: number of mappers: 39; number of reducers: 0
Table default.s3temptable stats: [numFiles=39, numRows=5318545, totalSize=10334527796, rawDataSize=10329329351]

Итак, я попытался установить следующие параметры в своем запросе Hive (также добавлены соответствующие таблицы, которые я создаю для справки), которые могут ограничиватьразмер разделения и, следовательно, количество картографов, но пока ничего не получалось -

SET dfs.block.size=67108864;
SET mapreduce.input.fileinputformat.split.minsize=67108864;
SET mapreduce.input.fileinputformat.split.maxsize=67108864;
SET mapred.min.split.size=67108864;
SET mapred.max.split.size=67108864;
SET dfs.block.size=67108864;
SET hive.merge.mapfiles=false;

CREATE EXTERNAL TABLE tempHiveTable(
XXX
)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "XXX", "dynamodb.column.mapping" = “XXX”;

CREATE EXTERNAL TABLE s3TempTable (
XXX)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION 's3://XXX'
TBLPROPERTIES ('serialization.null.format' = '');

INSERT OVERWRITE TABLE s3TempTable SELECT * FROM tempHiveTable;
-- I want these output s3 objects/chunks to be of size 64MB or less, but they’re 256 MB!

Есть ли какие-либо другие параметры, которые я могу установить в своем скрипте Hive, чтобы ограничить размер фрагментов s3?

Может кто-нибудь сообщить мне, что я делаю не так?Есть ли способ добиться этого?Я перепробовал все варианты, и пока ни один из них мне не помог.

Действительно ценю любую помощь, связанную с этим.Спасибо!

...