标签:Map enabled 开启 模式 调优 hive Hive execution 向量
什么是向量模式
hive.vectorized.execution.enabled表示是否开启向量模式,默认为false,熟悉MapReduce编程的都知道Mapper类,在run()方法中map()方法逐行处理数据,这样操作容易产生更多的Cpu指令和Cpu上下文切换,这样会导致系统性能处理不高。那么有没有方式优化这个操作呢?答案当然有,采用批量的操作方式避免单行处理数据。Hive提供了向量的模式,将一次处理一条数据变为一次处理一万条数据来提高性能。
在hive提供的向量模式,并不是重写了Mapper函数,而是通过实现Inputformat接口,创建VertorizedOrcInputFormat类,来构建一个批量输入的数组。
计算引擎对向量模式支持
目前MapReduce计算引擎支支持Map端的向量化,Tez和Spark计算引擎可以支持Map和Reduce端的向量执行计划。
应用测试
开启向量命令:set hive.vectorized.execution.enabled=true;
测试1默认不开启:
select count(*) from dwd_level_info where dt>='2021-05-01' and dt<='2021-05-31' ;
测试2开启:
set hive.vectorized.execution.enabled=true;
结论
开启向量模式要比不开启向量模式时间减少10%左右。
标签:Map,enabled,开启,模式,调优,hive,Hive,execution,向量 来源: https://blog.csdn.net/qq_30003943/article/details/121055109
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。