超过100个连接上的HiveServer2吞吐量问题

时间:2017-10-12 21:01:41

标签: hive emr parquet

我在Amazon EMR上使用Hive将CSV数据的ETL转换为Parquet数据(并应用强类型模式)。我使用最多250个打开连接的thrift从我的SQS监听器应用程序连接到HiveServer2。

ETL看起来像:SET参数,CREATE EXTERNAL TABLE(源),CREATE EXTERNAL TABLE(目标),INSERT OVERRIDE,DROP TABLE

一次运行~100或更少的ETL时,SET,CREATE和DROP语句的性能是亚秒。 INSERT通过MR作业需要约100秒。

现在,当我一次将这个增加到大约250个ETL时,SET,CREATE和DROP语句的性能会变得更糟。即使每个ETL都在一个单独的连接上,看起来这些简单的语句也会被卡在INSERT语句后面。

我尝试增加hive.server2.async.exec.threadshive.server2.async.exec.wait.queue.size,但我没有看到差异。我错过了其他一些可调配置吗?

我基本上无法通过占用集群资源来推动足够的工作。我知道批处理是一种策略,但我想保持数据的生动性。

0 个答案:

没有答案