hive job sql 优化 之CPU占有过高
发表于:2024-10-07 作者:千家信息网编辑
千家信息网最后更新 2024年10月07日,最近有个SQL运行时长超过两个小时,所以准备优化下首先查看hive sql 产生job的counter数据发现总的CPU time spent 过高估计100.4319973小时每个map的CPU t
千家信息网最后更新 2024年10月07日hive job sql 优化 之CPU占有过高
最近有个SQL运行时长超过两个小时,所以准备优化下
首先查看hive sql 产生job的counter数据发现
总的CPU time spent 过高估计100.4319973小时
每个map的CPU time spent
排第一的耗了2.0540889小时
建议设置如下参数:
1、mapreduce.input.fileinputformat.split.maxsize现在是256000000 往下调增加map数(此招立竿见影,我设为32000000产生了500+的map,最后任务由原先的2小时提速到47分钟就完成)
2、优化UDF getPageID getSiteId getPageValue (这几个方法用了很多正则表达式的文本匹配)
2.1 正则表达式处理优化可以参考
http://www.fasterj.com/articles/regex1.shtml
http://www.fasterj.com/articles/regex2.shtml
2.2 UDF优化见
1 Also you should use class level privatete members to save on object incantation and garbage collection.2 You also get benefits by matching the args with what you would normally expect from upstream. Hive converts text to string when needed, but if the data normally coming into the method is text you could try and match the argument and see if it is any faster. Exapmle: 优化前: >>>> import org.apache.hadoop.hive.ql.exec.UDF;>>>> import java.net.URLDecoder;>>>>>>>> public final class urldecode extends UDF {>>>>>>>> public String evaluate(final String s) {>>>> if (s == null) { return null; }>>>> return getString(s);>>>> }>>>>>>>> public static String getString(String s) {>>>> String a;>>>> try {>>>> a = URLDecoder.decode(s);>>>> } catch ( Exception e) {>>>> a = "";>>>> }>>>> return a;>>>> }>>>>>>>> public static void main(String args[]) {>>>> String t = "%E5%A4%AA%E5%8E%9F-%E4%B8%89%E4%BA%9A";>>>> System.out.println( getString(t) );>>>> }>>>> }
优化后:
import java.net.URLDecoder;public final class urldecode extends UDF { private Text t = new Text(); public Text evaluate(Text s) { if (s == null) { return null; } try { t.set( URLDecoder.decode( s.toString(), "UTF-8" )); return t; } catch ( Exception e) { return null; } } //public static void main(String args[]) { //String t = "%E5%A4%AA%E5%8E%9F-%E4%B8%89%E4%BA%9A"; //System.out.println( getString(t) ); //}}
3 继承实现GenericUDF
3、如果是Hive 0.14 + 可以开启hive.cache.expr.evaluation UDF Cache功能
小时
正则
表达式
立竿见影
两个
任务
功能
参数
建议
数据
文本
方法
时长
UTF-8
准备
参考
处理
提速
运行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江西机电软件开发要多少钱
互联网高科技生物
DB2属于什么类型的数据库
浙江有软件开发公司吗
东城区正规软件开发推荐
山西全威互联网信息科技怎么样
node静态服务器读取文件
数据库系统及应用 课后题
我想在旧世经典服务器
数据库db实例名称
主机屋云服务器怎么用
网络安全周评价
数据库变量长度类型
监控服务器
服务器电源分配板
网络技术交换机实验报告
星际穿越服务器连接不了
b2c商城数据库设计
超云服务器价格
软件开发结题报告
科技兴国中国互联网
2019网络安全考试题库
大众钥匙数据库
国外服务器虚拟化技术市场调研
东城区正规软件开发推荐
数据库查询最近记录
软件开发是软件学院里的哪个专业
网络安全讲些什么
网络技术题库有多少题
温州推广网络技术报价