| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 哈希冲突 | 数据倾斜 | SQL去重 -> 正文阅读 |
|
[大数据]哈希冲突 | 数据倾斜 | SQL去重 |
哈希冲突?? ? ?解决哈希冲突的常用方法分析 - 云+社区 - 腾讯云哈希冲突:由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。 解决哈希冲突的方法: 一般有:开放定址法、链地址法(拉链法)、再哈希法、建立公共溢出区等方法。 开放定址法:从发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元。然后把发生冲突的元素存入到该单元的一种方法。开放定址法需要的表长度要大于等于所需要存放的元素。 链地址法(拉链法):链接地址法的思路是将哈希值相同的元素构成一个同义词的单链表,并将单链表的头指针存放在哈希表的第i个单元中,查找、插入和删除主要在同义词链表中进行。链表法适用于经常进行插入和删除的情况。 再哈希法?就是同时构造多个不同的哈希函数: Hi = RHi(key) i= 1,2,3 … k; 当H1 = RH1(key) 发生冲突时,再用H2 = RH2(key) 进行计算,直到冲突不再产生,这种方法不易产生聚集,但是增加了计算时间。 建立公共溢出区:将哈希表分为公共表和溢出表,当溢出发生时,将所有溢出数据统一放到溢出区。 **************************************************************************************************************************************************************************************************************************** 数据倾斜数据倾斜在MapReduce计算框架中经常发生。 通俗理解,该现象指的是在整个计算过程中,大量相同的key被分配到了同一个任务上,造成“一个人累死、其他人闲死”的状况,这违背了分布式计算的初衷,使得整体的执行效率十分低下。 在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。 数据倾斜会发生在数据开发的各个环节中,比如: 用Hive算数据的时候reduce阶段卡在99.99% Hadoop中的数据倾斜 Hadoop中的数据倾斜主要表现在reduce阶段卡在99.99%,一直99.99%不能结束。 有一个多几个reduce卡住 经验:?Hive的数据倾斜,一般都发生在Sql中Group和On上,而且和数据逻辑绑定比较深。 Spark中的数据倾斜 Spark中的数据倾斜也很常见,这里包括Spark Streaming和Spark Sql,表现主要有下面几种: Executor lost,OOM,Shuffle过程出错 数据倾斜的原理 1、数据倾斜产生的原因 2、万恶的shuffle
从业务计角度来理解数据倾斜 数据往往和业务是强相关的,业务的场景直接影响到了数据的分布。再举一个例子,比如就说订单场景吧,我们在某一天在北京和上海两个城市多了强力的推广,结果可能是这两个城市的订单量增长了10000%,其余城市的数据量不变。然后我们要统计不同城市的订单情况,这样,一做group操作,可能直接就数据倾斜了。 如何解决 从业务和数据上解决数据倾斜
Hadoop平台的优化方法 ? ? ? ? 1.mapjoin方式 Spark平台的优化方法 ??????1.mapjoin方式 mapjoin: MapJoin是Hive的一种优化操作,其适用于小表JOIN大表的场景,由于表的JOIN操作是在Map端且在内存进行的,所以其并不需要启动Reduce任务也就不需要经过shuffle阶段,从而能在一定程度上节省资源提高JOIN效率. ?mapjoin?在Map阶段执行表连接,而非等到Reduce阶段才执行表连接,可以缩短大量数据传输时间,提升系统资源利用率,从而起到优化作业的作用。? Spark内存超出怎么解决??spark 内存溢出处理 - 青紫天涯 - 博客园?(待读) Spark中的OOM问题不外乎以下两种情况
map执行中内存溢出代表了所有map类型的操作。包括:flatMap,filter,mapPatitions等。 Spark RDD??Spark学习之路 (三)Spark之RDD - 扎心了,老铁 - 博客园?(待读) RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。 **************************************************************************************************************************************************************************************************************************** SQL去重 distinct | group by | 窗口函数row_number
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:52:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |