博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop ->> 关于数据分割(Data Split)的思考
阅读量:5377 次
发布时间:2019-06-15

本文共 639 字,大约阅读时间需要 2 分钟。

今天开始学习Hadoop这门热门的数据库技术。直接从被奉为Hadoop圣经的《Hadoop The Definitive Guide 4th Edition》入手。第一章作者写到一个关于分布型数据库系统在处理数据分割时的两种方法:1)按照某个单位(诸如年份或者数值范围);2)均匀分割所有数据到若干份(分布式计算机的数量);

第一种方法可能的问题是分割后数据块的大小不一,像以年份为例,很可能出现最小份和最大份的数量级差异很大。这样最后那个最大的就会成为其他任务的等待。第二种方法的问题是实现起来要比第一种方法复杂,因为均匀分割需要计算好每个块的边界。两种方法都需要在子节点结算完后找一个地方进行数据汇总再做最后的计算,虽然这时候可能数据集经过子节点的计算后可能已经是一个相对较小的结果集了,可是要在哪汇总,哪一台机器上汇总是一个问题?

第二种方法显然比第一种方法具有优势。假设第一种方法以年份为单位,万一我现在分析的只是单个年份的数据,难不成只能用一台机器来运算?第二种方法相对灵活。但是我觉得它也不是万能的,实现起来的话其实还是挺难的,分割的规则不一,比如运算一是需连续聚合某一列,这样数据需要先通过排序后再累加某一列的数值,这样是不是意味着这个数据集必须被事先排序后分割,这个开销岂不是很大?

不知道MapReduce具体是怎么去实现这样的运算的。这里先做下笔记。

 

转载于:https://www.cnblogs.com/jenrrychen/p/4855646.html

你可能感兴趣的文章
反射获取 obj类 的属性 与对应值
查看>>
表单中的readonly与disable的区别(zhuan)
查看>>
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
python序列化和json
查看>>
mongodb
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
第四周作业
查看>>
线段重叠 (思维好题)
查看>>