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

本文涉及的产品
EMR Serverless Spark 免费试用,1000 CU*H 有效期3个月
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 本文介绍一些常见的集群跑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;









目录
相关文章
|
12月前
|
SQL 分布式计算 关系型数据库
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
257 2
|
12月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
266 3
|
12月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
169 1
|
12月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
189 1
|
12月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
287 0
|
12月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
139 0
|
12月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
190 0
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
189 0
|
分布式计算 资源调度 监控
MapReduce程序中的主要配置参数详解
【8月更文挑战第31天】
717 0
|
缓存 分布式计算 算法
优化Hadoop MapReduce性能的最佳实践
【8月更文第28天】Hadoop MapReduce是一个用于处理大规模数据集的软件框架,适用于分布式计算环境。虽然MapReduce框架本身具有很好的可扩展性和容错性,但在某些情况下,任务执行可能会因为各种原因导致性能瓶颈。本文将探讨如何通过调整配置参数和优化算法逻辑来提高MapReduce任务的效率。
1233 0