hive在E-MapReduce集群的实践(二)集群hive参数优化

简介: 本文介绍一些常见的集群跑hive作业参数优化,可以根据业务需要来使用。 提高hdfs性能 修改hdfs-site,注意重启hdfs服务 dfs.client.read.shortcircuit=true //直读 dfs.

本文介绍一些常见的集群跑hive作业参数优化,可以根据业务需要来使用。


提高hdfs性能

修改hdfs-site,注意重启hdfs服务

dfs.client.read.shortcircuit=true //直读

dfs.client.read.shortcircuit.streams.cache.size=4096  //直读缓存

dfs.datanode.balance.bandwidthPerSec=30048576 //提高balance带宽,一般扩容后调整

dfs.datanode.max.transfer.threads=16384 //提高线程数

dfs.namenode.checkpoint.period=21600 //延长checkpoint时间

dfs.namenode.handler.count=100  //并发数,大集群要提高

dfs.namenode.fslock.fair=false //降低写性能,但提高读锁性能

dfs.namenode.lifeline.handler.count=1 //ha集群优化,大集群使用



hive参数优化

服务进程优化

hive-site

线程数

hive.metastore.server.max.threads=100000

hive.compactor.worker.threads=5


超时,重试

hive.metastore.client.socket.timeout=1800s

hive.metastore.failure.retries=5


动态分区调大

hive.exec.max.dynamic.partitions=5000

hive.exec.max.dynamic.partitions.pernode=2000


尽量用tez代替mapreduce

set hive.execution.engine=tez;

SET hive.tez.auto.reducer.parallelism=true;

SET hive.tez.max.partition.factor=20;


如果用普通text格式,考虑换orcfile格式

STORED AS ORC tblproperties (“orc.compress" = SNAPPY”)

hive.exec.orc.default.compress=SNAPPY


并发度优化

提高sql并发度

hive.exec.parallel=true


提高reduce

SET hive.exec.reducers.bytes.per.reducer=128000000;



开启矢量,一次处理1024条数据

set hive.vectorized.execution.enabled = true;

set hive.vectorized.execution.reduce.enabled = true;

limit下推

hive.limit.optimize.enable=true


基于代价优化

set hive.cbo.enable=true;

set hive.compute.query.using.stats=true;

set hive.stats.fetch.column.stats=true;

set hive.stats.fetch.partition.stats=true;


查询前先统计常用表的静态信息,常join的列

analyze table tweets compute statistics;

analyze table tweets compute statistics for columns sender, topic;


考虑使用桶表

插入数据前

set hive.enforce.bucketing = true

join 

set hive.optimize.bucketmapjoin = true;

set hive.optimize.bucketmapjoin.sortedmerge = true;

set hive.input.format = org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat;









相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
29天前
|
SQL 存储 分布式计算
Hive数据仓库设计与优化策略:面试经验与必备知识点解析
本文深入探讨了Hive数据仓库设计原则(分区、分桶、存储格式选择)与优化策略(SQL优化、内置优化器、统计信息、配置参数调整),并分享了面试经验及常见问题,如Hive与RDBMS的区别、实际项目应用和与其他组件的集成。通过代码样例,帮助读者掌握Hive核心技术,为面试做好充分准备。
|
4月前
|
SQL 关系型数据库 MySQL
Hive跨集群和版本迁移
Hive跨集群和版本迁移
|
8月前
|
SQL 分布式计算 HIVE
基于Docker搭建大数据集群(六)Hive搭建
基于Docker搭建大数据集群(六)Hive搭建
|
8月前
|
SQL 分布式计算 监控
Hive性能优化之计算Job执行优化 2
Hive性能优化之计算Job执行优化
107 1
|
4天前
|
SQL 存储 大数据
Hive的查询、数据加载和交换、聚合、排序、优化
Hive的查询、数据加载和交换、聚合、排序、优化
18 2
|
5天前
|
SQL 分布式计算 资源调度
Hive 优化总结
Hive优化主要涉及HDFS和MapReduce的使用。问题包括数据倾斜、操作过多和不当使用。识别倾斜可通过检查分区文件大小或执行聚合抽样。解决方案包括整体优化模型设计,如星型、雪花模型,合理分区和分桶,以及压缩。内存管理需调整mapred和yarn参数。倾斜数据处理通过选择均衡连接键、使用map join和combiner。控制Mapper和Reducer数量以避免小文件和资源浪费。减少数据规模可调整存储格式和压缩,动态或静态分区管理,以及优化CBO和执行引擎设置。其他策略包括JVM重用、本地化运算和LLAP缓存。
16 4
Hive 优化总结
|
22天前
|
SQL 分布式计算 数据处理
【Hive】所有的Hive任务都会有MapReduce的执行吗?
【4月更文挑战第17天】【Hive】所有的Hive任务都会有MapReduce的执行吗?
|
23天前
|
SQL 缓存 分布式计算
【Hive】Hive的两张表关联,使用MapReduce怎么实现?
【4月更文挑战第16天】【Hive】Hive的两张表关联,使用MapReduce怎么实现?
|
23天前
|
SQL 存储 分布式计算
【Hive】Hive优化有哪些?
【4月更文挑战第16天】【Hive】Hive优化有哪些?
|
27天前
|
机器学习/深度学习 分布式计算 监控
面经:MapReduce编程模型与优化策略详解
【4月更文挑战第10天】本文是关于MapReduce在大数据处理中的关键作用的博客摘要。作者分享了面试经验,强调了MapReduce的基本原理、Hadoop API、优化策略和应用场景。MapReduce包含Map和Reduce两个主要阶段,Map阶段处理输入数据生成中间键值对,Reduce阶段进行聚合计算。面试重点包括理解MapReduce工作流程、使用Hadoop API编写Map/Reduce函数、选择优化策略(如分区、Combiner和序列化)以及应用场景,如日志分析和机器学习。
19 2