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;









目录
相关文章
|
SQL 分布式计算 关系型数据库
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
458 2
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
323 3
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
368 3
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
322 2
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
285 2
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
393 0
|
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
406 0
|
SQL 分布式计算 关系型数据库
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
303 2
|
分布式计算 资源调度 监控
MapReduce程序中的主要配置参数详解
【8月更文挑战第31天】
1085 0
|
缓存 分布式计算 算法
优化Hadoop MapReduce性能的最佳实践
【8月更文第28天】Hadoop MapReduce是一个用于处理大规模数据集的软件框架,适用于分布式计算环境。虽然MapReduce框架本身具有很好的可扩展性和容错性,但在某些情况下,任务执行可能会因为各种原因导致性能瓶颈。本文将探讨如何通过调整配置参数和优化算法逻辑来提高MapReduce任务的效率。
1503 0