我在amazonemr上使用hive将csv数据转换成parquet数据(并应用强类型模式)。我正在使用thrift从我的sqs侦听器应用程序连接到hiveserver2,最多有250个打开的连接。
etl看起来像:设置参数、创建外部表(源)、创建外部表(目标)、插入覆盖、删除表
当一次运行大约100个或更少的etl时,set、create和drop语句的性能是亚秒级的。通过mr作业插入大约需要100秒。
现在,当我一次将其提升到250个etl时,set、create和drop语句的性能会下降几个数量级。尽管每个etl都在一个单独的连接上,但看起来这些简单的语句都被卡在insert语句后面了。
我试着增加 hive.server2.async.exec.threads
以及 hive.server2.async.exec.wait.queue.size
但我看不出有什么区别。我是否缺少其他可调配置?
我基本上无法通过推动足够的工作来占用集群资源。我知道批处理是一种策略,但我希望保持数据的生动性。
暂无答案!
目前还没有任何答案,快来回答吧!