如何提高Apache Drill

时间:2016-07-04 16:55:36

标签: java apache-drill

我正在使用CTAS语句从Apache Drill中的csv创建一个镶木地板文件。 我尝试过更改各种配置参数的多个实验,甚至尝试写入tmpfs。

我的测试总是花费相同的时间。我不是IO界限。我可能是CPU绑定的,大多数情况下,一个java线程始终处于100%。

尝试了实验:

store.parquet.compression=none
store.parquet.page-size=8192
planner.slice_target=10000
store.parquet.block-size=104857600
store.text.estimated_row_size_bytes=4k

我已经得出结论,也许Drill是单线程的写作,任何人都可以证实这一点吗?

使用12核服务器,我有足够的空间可供使用。

是否可以在单个服务器上运行多个钻取钻头?

更新: 无论CTAS输出格式是csv还是镶木地板,性能似乎都是相同的,因此一般情况下Drill可以写入数据。

更新2: 使用csv文件作为输入切换到没有标题的CTAS语句,使用以下形式的语句:

CREATE TABLE(col1,col2,col3,...)来自filename的AS SELECT列[0],列[1],列[2];

使用带有标题的CSV文件,即将语句更改为:

CREATE TABLE(name1,name2,name3,...)AS SELECT name1,name2,name3 from filename;

在标题行中定义name1,name2等时,性能有显着差异,从执行整个过程的一致13分钟到9分钟。

1 个答案:

答案 0 :(得分:0)

您无法在单个服务器上运行多个drillibits。

是的,在我的观察中,当我们计算大量数据时,钻头使用大量的过程功率,CPU使用率达到300-400%。我认为它使用单线程作为镶木地板文件。