在配置单元表中选择正确的buket数

uubf1zoe  于 2021-05-30  发布在  Hadoop
关注(0)|答案(0)|浏览(232)

我有16列的文本文件(用户id、日期、其他属性……),整个文件的大小是200gb,行数是18亿+。我已经创建了一个外部表(exraw数据)来读取这些数据。我有一个aggregation脚本,它可以生成200多个派生变量。当我在我的外部表(exraw数据)上运行查询时,由于我的文件是简单的文本文件,行数和计算变量都很大,所以计算要花费很多时间。现在我计划创建一个新的配置单元表,它将以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表中存储桶的数量的最佳实践是什么(根据我上面的集群配置)??谢谢你的帮助!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题