Hive简单优化;workflow调试
1. 定义job名字
SET mapred.job.name='customer_rfm_analysis_L1';
这样在job任务列表里可以第一眼找到自己的任务。
2. 少用distinct, 尽量用group by
因为会把数据弄在一个reduce中,造成数据倾斜。distinct数据数量大于1000条时。
3. join时小表最好放左边
否则会引起磁盘和内存的大量消耗
4. 小表和超大的表join时,可以使用map join
能把小表写入内存中,便于多次读写。
5. 如果union all的部分个数大于2
或者每个union部分数据量大,应该拆成多个insert into 语句
6. SQL里的通用设置
--每个sql的代码都一样
SET mapred.max.split.size=256000000;
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
set mapreduce.map.output.compress=true;
set mapred.map.output.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;
set mapreduce.reduce.shuffle.input.buffer.percent =0.6;
set mapreduce.reduce.shuffle.parallelcopies = 5;
set hive.exec.max.created.files=655350;
set hive.exec.max.dynamic.partitions=10000000;
set hive.exec.max.dynamic.partitions.pernode=10000000;
7. workflow
1) coordinator 动态日期获取
${coord:formatTime(coord:dateOffset(coord:nominalTime(),-2,'DAY'), 'yyyy-MM-dd')}
表示取当天的两天之前的日期(格式是 yyyy-MM-dd)
${coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')}
表示取当天的日期(格式是 yyyy-MM-dd)
注意: 当修改workflow后,需要重新提交coordinator才会生效。
2) coordinator 时间设置
要选用utc时区;
设置时间为需求的执行时间 - 8 hours;
3) coordinator 可以自动识别出 workflow中调用的参数,赋值给它即可。
SQL中的参数要设置成 ${参数名这种},如果是字符串,'${字符串名}'
workflow中设置参数为 ${参数名},不需要引号。
4)workflow 参数可以上传一个文件。 文件该是什么格式??
5) 半路结束,状态为failed。
Halting due to Out Of Memory Error...
GC overhead limit exceeded
尝试方法:调大oozie的heapsize,解决!
6)并发子workflow相互不能执行成功,状态为Succeeded。但实际上任务并未完成。是因为有相邻子workflow出现错误
GC overhead limit exceeded
Closing: 0: jdbc:hive2://spark-02:10000/default
Intercepting System.exit(2)
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.Hive2Main], exit code [2]
8 oozie 可以调用 Hive QL,Spark, Java,Shell
9 Bundle 跟workflow, coordinator 在同一个设置区。
可以把多个coordinator打包成一个。
Hive简单优化;workflow调试的更多相关文章
- GCC(警告.优化以及调试选项)
GCC(警告.优化以及调试选项) [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 预处 ...
- Hive 常用优化参数
常用调优测试语句 : ①显示当前hive环境的参数值: set 参数名; 如: hive> set mapred.map.tasks;mapred.map.tasks; ②设置hi ...
- Hive SQL 优化面试题整理
Hive优化目标 在有限的资源下,执行效率更高 常见问题: 数据倾斜 map数设置 reduce数设置 其他 Hive执行 HQL --> Job --> Map/Reduce 执行计划 ...
- Serverless 工程实践 | Serverless 应用优化与调试秘诀
作者|刘宇 前言:本文将以阿里云函数计算为例,提供了在线调试.本地调试等多种应用优化与调试方案. Serverless 应用调试秘诀 在应用开发过程中,或者应用开发完成,所执行结果不符合预期时,我 ...
- 一次千万级别的SQL查询简单优化体验
背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用 ...
- Hive性能优化
1.概述 继续<那些年使用Hive踩过的坑>一文中的剩余部分,本篇博客赘述了在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题.下面开始本篇文章的优化介绍. 2.介绍 首先 ...
- 双数组trie树的基本构造及简单优化
一 基本构造 Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现.它本质上是一个确定的有限状 ...
- [mysql] 2进制安装和简单优化
##################################mysql 2进制安装和简单优化################################################## ...
- Hive篇---Hive使用优化
一.前述 本节主要描述Hive的优化使用,Hive的优化着重强调一个 把Hive SQL 当做Mapreduce程序去优化 二.主要优化点 1.Hive运行方式:本地模式集群模式 本地模式开启本地模式 ...
随机推荐
- Unity-WIKI 之 DebugLine
脚本功能 在Unity中要使用画线功能,需要添加LineRenderer 组件,或打开Gizmos功能,下面这个组件为开发带来了方便 功能预览 搭建步骤 1.创建“Plugins” 文件夹 2.在“P ...
- WEB安全测试之XSS攻击
目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...
- 应用python编写简单新浪微博应用(一)
转载至:http://blog.sina.com.cn/s/blog_6c39196501016o7n.html 首先,你要有一个新浪微博账号. 申请页面:http://weibo.com 其次,你要 ...
- [转]Linux查看物理CPU个数、核数、逻辑CPU个数
From : http://www.cnblogs.com/emanlee/p/3587571.html # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个 ...
- win安装mysql5.1
https://dev.mysql.com/downloads/mysql/5.5.html 这里官网下载5.5的安装 我装了几次5.1的,不知道系统有问题还是咋滴,重启mysql服务启动不起来了.擦 ...
- C语言 结构体中属性的偏移量计算
//计算结构体偏移量 #include<stdio.h> #include<stdlib.h> #include<string.h> //详解:对于offscfof ...
- 基于IHttpAsyncHandler的UDP收发器
很难把UDP和Asp.net扯到一起,但是由于最近项目中需要通过网页发送控制指令到中间件,再由中间件发送到下位机的需求.所以就研究了一下是否可以通过asp.net操控UDP Socket实现数据的收发 ...
- springmvc中request的线程安全问题
SpringMvc学习心得(四)springmvc中request的线程安全问题 标签: springspring mvc框架线程安全 2016-03-19 11:25 611人阅读 评论(1) 收藏 ...
- Jsoup开发简单网站客户端之读取本地html文件
用jsoup解析网页,相比于那些返回api数据来说 肯定耗流量,加载慢,所以程序assts中预先放了一个最新的html文件,第一次进来不走网络,直接从本地取,以后会加上wifi离线功能. 首先离线网站 ...
- 用postgreSQL做基于地理位置的app(zz)
前言:项目中用到了postgreSQL中的earthdistance()函数功能计算地球上两点之间的距离,中文的资料太少了,我找到了一篇英文的.讲的很好的文章,特此翻译,希望能够帮助到以后用到eart ...