hdfs中的block是分布式存储的最小单元,类似于盛放文件的盒子,一个文件可能要占多个盒子,但一个盒子里的内容只可能来自同一份文件。假设block设置为128M,文件是250M,那么这份文件占3个block(128+128+2)。这样的设计虽然会有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的内容。(p.s. 考虑到hdfs冗余设计,默认三份拷贝,实际上3*3=9个block的物理空间。)
[color=red][b]Spark中的partion是弹性分布式数据集RDD的最小单元,RDD是由分布在各个节点上的partion组成的。[/b][/color]partion是指的spark在计算过程中,生成的数据在计算空间内最小单元,同一份数据(RDD)的partion大小不一,数量不定,是根据application里的算子和最初读入的数据分块数量决定的,这也是为什么叫“弹性分布式”数据集的原因之一。

[size=large][b]总结:[/b][/size]
block位于存储空间、partion位于计算空间,
block的大小是固定的、partion大小是不固定的,
block是有冗余的、不会轻易丢失,partion(RDD)没有冗余设计、丢失之后重新计算得到

[b]另外补充几点:[/b]
1.partition也可以有冗余,通过storagelevel来配置;
2.local或者yarn模式和partition,block概念上没有半毛钱关系,local模式也能操作hdfs,yarn模式也能操作本地文件;
3.存储上为什么要将空间抽象成块前面的兄台已经叙述了,而且之所以设计成这么大的理由还牵扯到大存储空间中的各种管理、容错等等。那么与之对应的,在并行计算里我们希望降低网络带宽的负荷,所以会对计算做一层计算本地性优化,那么怎样做到这点呢?最简单的逻辑,把计算代码发到数据所在的节点上执行就可以了。那么这样一来,怎样做到并行优化?很简单啦,把一个超大的文件切切切分成一个一个不大不小的块(比如hdfs默认的64M,或者配得再大一点),然后把这些块打散在集群的不同节点上,最后把应用代码跟着数据块走,就能在不同节点上并行计算了。与之相对应的,[b]spark为了利用起内存,对一些中间数据尽可能的用内存访问速度进行读写,所以把这部分管理工作纳入到自己这里(对比一下,经典的Hadoop mapreduce就直接交给hdfs进行管理),可是就算存到内存里,那也得沿着这个思路来啊,不然计算本地化,并行之类的就很混乱了,那好吧,我也引入个概念,就叫partition好了,目的和前面一样。[/b]然后突然发现,哎呀我靠,这不得了,不仅能做到这些,既然我把一个超大份的数据都分成一块一块的了,那每一块是不是就能独立分隔开来了?
[color=blue][b]那一个超大份文件,内存完全放不下,完全可以把其中一些块放到内存里,另外一些暂时放到硬盘里嘛,好歹也比纯放到hdfs来得快嘛[/b][/color]……于是生活就变得美好了起来。但是要注意的是,计算本地性优化并不是说绝对地把任务只发到数据所在地进行执行,还要考虑到均衡和并发能力的取舍。

转自:[url]http://blog.csdn.net/sinat_31726559/article/details/51763439[/url]

Spark block和partition的区别相关推荐

  1. Ruby 之 Block, Proc, Lambda 联系--区别,转载

    Ruby 之 Block, Proc, Lambda Block Block 不是对象,是Ruby的语言特性,近似于闭包(Closure). 范例: def meth    res=  yield   ...

  2. display:inline、block、inline-block的区别

    display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...

  3. display:inline、block、inline-block的区别以及该死的ie6兼容问题

    2019独角兽企业重金招聘Python工程师标准>>> display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都 ...

  4. Spark精华问答 | Spark和Hadoop的架构区别解读

    总的来说,Spark采用更先进的架构,使得灵活性.易用性.性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高.我总结,具体表现在如下几个方面. 1 Q:Spark和 ...

  5. Spark的Cache和Checkpoint区别和联系拾遗

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 作为区别于 Hadoop 的一个重要 feature,cache 机制保证了需要访问重复数据的应用 ...

  6. hadoop组件---spark----全面了解spark以及与hadoop的区别

    Spark是什么 Spark (全称 Apache Spark™) 是一个专门处理大数据量分析任务的通用数据分析引擎. spark官网 Spark核心代码是用scala语言开发的,不过支持使用多种语言 ...

  7. 认清Hadoop和Spark的这几点区别,学习时才能事半功倍

    很多初学Hadoop开发的同学分不清Hadoop和Spark究竟有什么联系? 搞不清Hadoop和Spark是两个独立的框架,还是必须相互依存才能完成工作? 今天就给大家分析一下Hadoop和Spar ...

  8. display:inline-block,block,inline的区别与用法

    一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置   margi ...

  9. spark原理和spark与mapreduce的最大区别

    参考文档:https://files.cnblogs.com/files/han-guang-xue/spark1.pdf 参考网址:https://www.cnblogs.com/wangrd/p/ ...

最新文章

  1. MyBatis 一对多、多对一的处理~
  2. 获取 视频 音频 及其他文件的真实信息(不靠文件后缀判断) (getID3())
  3. python编程入门书籍-编程小白的第一本 Python 入门书
  4. Kafka安装之一 Zookeeper
  5. 线性代数-MIT 18.06-汇总
  6. 常见笔顺错误的字_[转载]常见笔画笔顺易错字大全
  7. 体育新闻html模板,HTML5响应式体育新闻资讯类门户网站模板源码+自适应移动端...
  8. EBS开发_创建销售人员API
  9. 通过v$bgprocess查看后台进程
  10. BPM平台在企业业务系统中使用的价值讨论
  11. AspNet Core 2.2 SendGrid邮件发送(可群发)
  12. 如何防止表单重复提交问题
  13. VM(虚拟机)Ubuntu打不开
  14. SQL 中 TRIM()函数用法
  15. Linux ps aux什么含义,Linux下psaux解释
  16. 【ROS】rosbag使用
  17. 测试未来老公的样子软件,你的未来老公是哪一型?
  18. CentOS安装Webmin/WebAdmin管理工具
  19. 荔枝微课如何引流?荔枝微课如何操作?荔枝微课怎么增加人气?
  20. Linux系统自带日志管理工具rsyslog简单介绍

热门文章

  1. 数据分析---论文作者统计
  2. 天正打开在tshowbar卡死 cad打开半天没反应 内存使用量大
  3. float 范围 java_java float与double的范围和精度
  4. 起床困难综合症(位运算
  5. BZOJ3668 起床困难综合症
  6. linux官方认证资料,Linux 初认证资料答案.doc
  7. 论文答辩:一场师生之间的演技大赛
  8. webservice框架 java_Java CXF WebService框架 开发入门案例
  9. ZGC 特性和 GC 日志分析
  10. 考华为认证HCIA还有含金量吗?