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 的使用方法。
目录
相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
3月前
|
SQL 关系型数据库 MySQL
Hive跨集群和版本迁移
Hive跨集群和版本迁移
|
7月前
|
SQL 分布式计算 HIVE
基于Docker搭建大数据集群(六)Hive搭建
基于Docker搭建大数据集群(六)Hive搭建
|
7月前
|
SQL 分布式计算 监控
Hive性能优化之计算Job执行优化 2
Hive性能优化之计算Job执行优化
103 1
|
7月前
|
SQL 存储 分布式计算
Hive性能优化之表设计优化1
Hive性能优化之表设计优化1
37 1
|
9天前
|
SQL 存储 分布式计算
【Hive】Hive优化有哪些?
【4月更文挑战第16天】【Hive】Hive优化有哪些?
|
13天前
|
机器学习/深度学习 分布式计算 监控
面经:MapReduce编程模型与优化策略详解
【4月更文挑战第10天】本文是关于MapReduce在大数据处理中的关键作用的博客摘要。作者分享了面试经验,强调了MapReduce的基本原理、Hadoop API、优化策略和应用场景。MapReduce包含Map和Reduce两个主要阶段,Map阶段处理输入数据生成中间键值对,Reduce阶段进行聚合计算。面试重点包括理解MapReduce工作流程、使用Hadoop API编写Map/Reduce函数、选择优化策略(如分区、Combiner和序列化)以及应用场景,如日志分析和机器学习。
19 2
|
4月前
|
SQL 分布式计算 Hadoop
Hive SQL 优化
Hive SQL 优化
50 1
|
4月前
|
分布式计算
MapReduce【数据倾斜的优化】
MapReduce【数据倾斜的优化】
|
4月前
|
存储 分布式计算 自然语言处理
MapReduce【小文件的优化-Sequence文件】
MapReduce【小文件的优化-Sequence文件】