`
superlxw1234
  • 浏览: 548759 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44115
社区版块
存档分类
最新评论

hive并行执行job

    博客分类:
  • hive
阅读更多

用过oracle rac的应该都知道parallel的用途。

并行执行的确可以大的加快任务的执行速率,但不会减少其占用的资源。

在hive中也有并行执行的选项。

 

 

set hive.exec.parallel=true;   //打开任务并行执行

 

set hive.exec.parallel.thread.number=16; //同一个sql允许最大并行度,默认为8。

 

对于同一个SQL产生的JOB,如果不存在依赖的情况下,将会并行启动JOB,

比如:

 

from (
select phone,to_phone, substr(to_phone,-1) as key
from youni_contact4_lxw 
where youni_id='1' 
and length(to_phone) = 11 
and  substr(to_phone,1,2) IN ('13','14','15','18') 
group by phone,to_phone, substr(to_phone,-1) 
) t
insert overwrite table youni_contact41_lxw partition(pt='0')
select phone,to_phone where key='0'
insert overwrite table youni_contact41_lxw partition(pt='1')
select phone,to_phone where key='1'
insert overwrite table youni_contact41_lxw partition(pt='2')
select phone,to_phone where key='2'
insert overwrite table youni_contact41_lxw partition(pt='3')
select phone,to_phone where key='3'
insert overwrite table youni_contact41_lxw partition(pt='4')
select phone,to_phone where key='4'
insert overwrite table youni_contact41_lxw partition(pt='5')
select phone,to_phone where key='5'
insert overwrite table youni_contact41_lxw partition(pt='6')
select phone,to_phone where key='6'
insert overwrite table youni_contact41_lxw partition(pt='7')
select phone,to_phone where key='7'
insert overwrite table youni_contact41_lxw partition(pt='8')
select phone,to_phone where key='8'
insert overwrite table youni_contact41_lxw partition(pt='9')
select phone,to_phone where key='9';

 

该SQL产生11个job,第一个job为生成临时表的job,后续job都依赖它,这时不会有并行启动,

第一个job完成后,后续的job都会并行启动。

 

 

运行时间比较:

 

不启用并行:35分钟

启用8个并行:10分钟

启用16个并行:6分钟

 

当然,得是在系统资源比较空闲的时候才有优势,否则,没资源,并行也起不来。

 

 更多大数据Hadoop、Spark、Hive的文章,请关注 我的博客

 

 

 

0
0
分享到:
评论

相关推荐

    hive参数优化文档

    - 开启`hive.exec.parallel`,允许并行执行Map任务或Reduce任务,加速查询处理。 3. **索引使用**: - 虽然Hive目前的索引支持有限,但在某些场景下依然可以利用索引来优化查询。 #### 五、平台优化 1. **硬件...

    《企业级Hive实战课程》大纲

    - 并行执行的开启与配置; - JVM重用的原理与设置; - Mapper/Reducer数量的合理设定; - 压缩技术与分布式缓存的应用; - 多job间共享中间结果集的技巧; - 执行计划的深入分析; - 几种Join方式(Reduce...

    hive性能优化

    本文将详细探讨Hive性能优化的三个主要方面:针对MapReduce单个步骤的优化、MapReduce全局优化以及针对整个查询(多MapReduce job)的优化。 首先,我们来看Map阶段的优化。Map阶段是MapReduce流程的第一步,它的...

    Hive性能优化总结

    3. **特定聚合操作的性能问题**:例如`COUNT(DISTINCT)`这类操作,在大规模数据集上执行时可能会遇到性能瓶颈。 #### 二、有效优化手段 为了应对上述问题,可以采取以下几种优化策略: 1. **优化模型设计**:合理...

    hive,性能调优,全方面提升认知

    2. Hive的复杂HQL语句会转换成多个MapReduce Job,并行或串行执行,Job数比较多的作业运行效率相对比较低。 3. 聚合操作如sum、count、max、min、UDAF等不会受到数据倾斜的影响,因为MapReduce在Map阶段的预聚合操作...

    Hive调优全方位指南.docx

    2. **并行执行**:开启并行执行可以提高查询速度。 3. **小文件问题**:通过合并小文件或调整MapReduce参数来减少Map任务的数量。 4. **压缩**:启用数据压缩可以减少数据传输的时间和存储空间。 5. **索引**:尽管...

    hadoop+ha+hive+mapreduce

    通过cron job或者at命令可以设置定时任务,结合Hadoop的hadoop fs命令,可以实现定期从本地或网络资源向HDFS批量上传数据,满足持续的数据摄入需求。 综上所述,这个主题覆盖了大数据处理的全貌,从数据存储的HDFS...

    Node.js-Hivemind–使用AWSLambdafunctions创建分布式作业Job

    综上所述,"Node.js-Hivemind–使用AWS Lambda functions创建分布式作业Job"这个项目结合了Node.js的高效网络编程能力、AWS Lambda的无服务器计算优势以及分布式作业处理的思想,构建了一个灵活、可扩展的云原生解决...

    大公司大数据量hive调优实践

    1. **Hive架构理解**:Hive由元数据存储、驱动器、编译器、执行器等组件构成。元数据存储通常在MySQL或Derby中,记录表结构和分区信息;驱动器解析SQL并生成执行计划;编译器负责将HQL转化为MapReduce任务;执行器则...

    hive工作调优小结

    #### 五、Job执行模式的优化 Hadoop支持三种作业执行模式:本地模式、伪分布式模式和完全分布式模式。 - **本地模式**:适用于小规模数据处理,可提高处理速度。 - **伪分布式模式**:适用于测试环境或小规模集群...

    Azkaban-开源任务调度程序(使用篇).pdf

    例如,`o2o_2_hive.job`是一个命令类型的任务,执行`echo "data 2 hive"`。 5. **依赖关系**: Job间的依赖关系通过`dependencies`参数来定义。例如,`o2o_2_hive`依赖于`o2o_clean_data`,而`o2o_clean_data`又...

    Hadoop面试题3家公司就业面试宝典含参考答案.doc

    * 任务执行时间过长:解决办法是检查日志后发现没有执行完就失败,原因出在hadoop的job的timeout过短(相对于集群的能力来说)。 7. Log项目数据量和处理 Log项目的数据量可能达到几十个T,使用Hive可以处理这些...

    hadoop平台下的数据导入导出工具sqoop

    - **执行Job**:使用`sqoop job --exec <job-name>`执行Job。 - **删除Job**:使用`sqoop job --delete <job-name>`删除Job。 - **Metastore共享**:通过配置文件指定Metastore服务器地址,使得多个客户端可以共享同...

    Oozie安装部署及任务定义说明

    6. **fork节点和join节点**:用于并行执行多个任务,fork后可以有多个action,join节点等待所有fork的任务完成后继续执行。 **Oozie任务定时调度** - 可通过oozie的Cron表达式或者time单位(如days, hours, minutes...

    Spark配置文件信息修改

    在这个文件中,你可以设置各种参数来调整Spark的行为,例如内存分配、执行器的数量和大小、并行度等。例如,增加`spark.executor.memory`可以增大每个执行器的内存,而`spark.driver.memory`则用于设置驱动程序的...

    大数据框架整理.pdf

    Job提交涉及客户端与JobTracker的交互,JobTracker调度TaskTracker执行任务。自定义JavaBean作为MapReduce的数据类型需实现WritableComparable接口,同时可自定义OutputFormat以适应特定的输出需求。MapReduce适用...

Global site tag (gtag.js) - Google Analytics