从hadoop到hive的CSV加载 - 可扩展性问题20GB / h

时间:2016-09-03 18:12:11

标签: csv hadoop hive presto tez

我正在寻找一种方法来加速从hadoop到hive的数据加载,我从presto查询。在我的工作流程中,我从hadoop上的单个csv文件开始。

CREATE EXTERNAL TABLE src_x (KEY INT, X2 INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ","
STORED AS TEXTFILE
LOCATION "${SRC_X_DIR}"
TBLPROPERTIES('skip.header.line.count'='1');

即时,它只在csv上创建视图 然后算一切都很慢......

select count(*) from src_x;
5000000000
Time taken: 1547.581 seconds, Fetched: 1 row(s)

目标表格准备如下:

CREATE TABLE IF NOT EXISTS x (KEY INT, X2 INT)
STORED AS ORC
TBLPROPERTIES("orc.compress"="SNAPPY");

并加载:

INSERT OVERWRITE TABLE x SELECT * FROM src_x;
Loading data to table benchmark.x
Table benchmark.x stats: [numFiles=1, numRows=5000000000, totalSize=18528938624, rawDataSize=17179977764]
Time taken: 19429.984 seconds

这张单人表需要大约5小时才能从hadoop加载到hive。具有两个整数列的103GB csv不是太长了吗?理想情况下,我的目标不仅仅是为了更好地扩展5e9而且还有更大的设置 250GB的10台机器的集群应该处理它。是否与我的版本有某种关联(hive-0.14.0.2.2.6.3)或某些自定义设置可以在这里发挥作用?

0 个答案:

没有答案