深入理解hadoop之数据倾斜

1、什么是数据倾斜

我们在用map /reduce程序执行时,有时候会发现reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。这种现象就是因为key分布不均匀、散度不够导致的,也就是我们所说的数据倾斜。

2、数据倾斜产生的原因

在hive上执行join,group by,count distinct等操作的时候可能会发现ruduce阶段卡在99.99%,一直99.99%不能结束,查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;这里进一步查看进程日志或者WEBUI会发现:有一个多几个reduce卡住;各种container报错OOM,读写的数据量极大,至少远远超过其它正常的reduce ,伴随着数据倾斜,会出现任务被kill等各种诡异的表现。一般情况下Hive的数据倾斜,都发生在Sql中Group和On上,而且和数据逻辑绑定比较深。

3、数据倾斜解决的办法

1)hive.groupby.skewindata变量,这个变量是用于控制负载均衡的。当数据出现倾斜时,如果该变量设置为true,那么Hive会自动进行负载均衡。

2)mapjoin方式

3)count distinct的操作,先转成group,再count

4)hive.groupby.skewindata=true

5)left semi jioin的使用

6)设置map端输出、中间结果压缩

mysql查看数据倾斜_深入理解hadoop数据倾斜相关推荐

  1. 大表与大表join数据倾斜_技术分享|大数据技术初探之Spark数据倾斜调优

    侯亚南 数据技术处 支宸啸 数据技术处 在大数据计算中,我们可能会遇到一个很棘手的问题--数据倾斜,此时spark任务的性能会比预期要差很多:绝大多数task都很快执行完成,但个别task执行极慢或者 ...

  2. mysql mvcc实例讲解_轻松理解MYSQL MVCC 实现机制

    1. MVCC简介 1.1 什么是MVCC MVCC是一种多版本并发控制机制. 1.2 MVCC是为了解决什么问题? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使 ...

  3. ssis导出数据性能_使用SSIS Hadoop组件导入和导出数据

    ssis导出数据性能 In the previously published article, we talked briefly about Hadoop, and we gave an overv ...

  4. mysql查看指定全局变量_【全局变量】mysql查看全局变量以及设置全局变量的值...

    1.查看mysql的所有全局变量的值 SHOW GLOBAL VARIABLES 或者 SHOW VARIABLES mysql有很多全局变量,包括系统的一些基本信息,以及mysql的一些基本配置都可 ...

  5. mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事

    引言 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构对比 二叉树 左边子节点的数据小于父节点数据,右边子节点的数据大于父节点数据.如果col2是索引,查找索引为89的行元素,那么只需 ...

  6. mysql查看脚本错误位置_记一次mysql启动不了查找经历

    在linux上用的是xampp,mysql启动没有报任何错误,但就是查找不到进程,于是找mysql错误日志,日志在哪?在lampp/var/mysql 以.err结尾的文件里.里面内容如下; /opt ...

  7. mysql百万数据写入_快速写入百万数据

    1.快速写入百万数据 mysql原生操作 mysql原生操作写入500万数据! # 建库 create database mydb01; # 使用库 use mydb01; # 建表 create t ...

  8. php 导出mysql 数据库表结构图_导入和导出数据表的图文介绍(phpMyAdmin的使用教程5)...

    导入和导出数据表的图文介绍(phpMyAdmin的使用教程5) 导入和导出数据是互逆的两个操作,导入数据是通过扩展名为.sql的文件导入到数据库中,导出数据是将数据表结构,表记录储存为.sql的文件, ...

  9. 数据中台的正确理解和数据中台建设的关键环节

    数据中台是数据治理的关键,在数据治理上发挥着建设.管理和监督的作用.但即使在今天,对数据中台仍然没有形成一个统一的理解.笔者结合自己的研究和近些年数据治理的经验,参考其他同行的研究成果,浅谈对数据中台 ...

最新文章

  1. 适合初学者的java书籍
  2. 销量过亿的《剑指0ffer》题目和答案电子书 (附下载)
  3. 在react里写原生js_小程序原生开发与第三方框架选择
  4. matlab 动态库 二次调用,LINUX matlab编译动态库调用崩溃
  5. 微信 python 2020_2020年最新的Python操控微信教程
  6. flowable 图片缓存
  7. 如何使用模板生成多个页面_Divi不再只是页面构建器。 使用主题生成器,可以完全设计整个网站。...
  8. Alter table alter |change |modify 区别
  9. linux recv函数 参数,linux send recv函数详解
  10. 使用Python横向合并excel文件
  11. 尤雨溪:重头来过的 Vue3 带来了什么?
  12. Windows 10 上使用 CMake GUI 编译 Krita 源代码并使用 MinGW 64 作为构建工具
  13. python123 第四次作业_第四次作业
  14. 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)
  15. 如何利用漏斗模型增加转化率减少流失率?
  16. [转载]中国最致命的薄弱环节!(一个机械类毕业生的心声)
  17. 如何制作地图符号的实验报告
  18. 2021-11-30 vue移动端卖座电影项目(四) 当前项目代码
  19. 软件开发外包的10个理由
  20. 科普分享 | 仿生机器人:生物与机械的完美融合

热门文章

  1. windows清理图标缓存并重新加载
  2. 强化学习总结(3-4)——无模型的价值函数的预测,蒙特卡洛和TD时序差分方法
  3. 计组(唐朔飞)第一章自我总结
  4. python提供了_Python中 为我们提供了一些独特的解决方案的方法特性
  5. python pyqt5 窗体自适应_Pyqt5自适应布局实例
  6. centos8 配置 dns_广电行业DNS、DHCP案例详解
  7. yii2 请求外部api_[PHP] 基于redis的分布式锁防止高并发重复请求
  8. ESP32在Ubuntu16.04的环境搭建
  9. 交大c语言作业答案,西安交大c语言作业及答案详解.docx
  10. netty获取玩家chanel_Netty中的Channel