HIVE跑个insert into select xxx 为什么CPU飙高
近期做一款数据湖的选型性能比对,发现跑个Hive的insert into select xxx做入库的性能测试时,想着按理map阶段都是从一张表里面读取数据对磁盘IO有压力而已,结果发现集群的cpu也伴随着比较高,我们来分析分析吧!
执行HIVE SQL如下:
跑完,发现磁盘IO与CPU都有一个峰值的高
1. 现象展示
修改hdfs写磁盘的策略,这边集群的盘为异构盘态。
修改写磁盘的策略
<property>
<name>dfs.datanode.fsdataset.volume.choosing.policy</name>
<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
<description>
datanode数据副本存放的磁盘选择策略,有2种方式:
一种是轮询方式(org.apache.hadoop.hdfs.server.datanode.fsdataset.RoundRobinVolumeChoosingPolicy,为默认方式)
另一种为选择可用空间足够多的磁盘存储方式,这个为了防止各个节点上的各个磁盘的存储均匀采用这个方式。
</description>
</property>
<property>
<name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold</name>
<value>912680550400</value>
<description>
850G
当在上面datanode数据副本存放的磁盘选择可用空间足够多的磁盘存储方式