You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (Jira)" <ji...@apache.org> on 2020/05/14 19:25:00 UTC

[jira] [Resolved] (IMPALA-1964) Improve Write Performance

     [ https://issues.apache.org/jira/browse/IMPALA-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Armstrong resolved IMPALA-1964.
-----------------------------------
    Resolution: Cannot Reproduce

> Improve Write Performance
> -------------------------
>
>                 Key: IMPALA-1964
>                 URL: https://issues.apache.org/jira/browse/IMPALA-1964
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Perf Investigation
>    Affects Versions: Impala 2.3.0
>            Reporter: Prateek Rungta
>            Priority: Major
>              Labels: performance
>         Attachments: Profile_After_Hashing.txt, Profile_Before_Hashing.txt
>
>
> Impala write performance is bottlenecked by the single threaded HDFSTableSink.  Consider the following usecase – 
> — For a baremetal cluster with 3 managers & 7 datanodes; 11 drives/datanode 
> - Each drive gave me respectable ~100MB/s read and write performance
> ```
> [root@c3kuhdpnode1 ~]# hdparm -t -T /dev/sdk1
> /dev/sdk1:
>  Timing cached reads:   18650 MB in  1.99 seconds = 9349.32 MB/sec
>  Timing buffered disk reads: 348 MB in  3.00 seconds = 115.88 MB/sec
> [root@c3kuhdpnode1 ~]# time dd if=/dev/sdk1 of=/$drive/sdk1.zero bs=1024 count=10000000
> 10000000+0 records in
> 10000000+0 records out
> 10240000000 bytes (10 GB) copied, 90.6001 s, 113 MB/s
> real
> 1m30.602s
> user
> 0m0.929s
> sys
> 0m35.295s
> ```
> — For a single CTAS Query
>     — The query running by itself on the cluster took 37 min. See Profile_Before_Hashing.txt for the explain plan
>     — 10, modified versions of the query, each performing a 1/10 of the writes, took ~22m running concurrently. See Profile_After_Hashing.txt for one of the 10 explain plans. 
> In both cases, I found majority of the time is spent in HDFSTableSink. I'd expect that portion of the query to be able to write nearly as fast as a Teragen on the cluster could, which is not what we are observing. 
> This is pretty terrible for a few different reasons, primarily that, we can't use Hive to generate parquet because it might generate multiple hdfs blocks.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)