谷歌三篇重要论文读后感(作业)
谷歌三篇重要论文分别讲述了GFS(2003),MapReduce(2004),BigTable(2006),它们对Hadoop的起源有很大的影响(hadoop运行的系统要求是 linux,hadoop 是用
java写的分布式 ,处理大数据的框架。)
GFS全称Google File System其是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,提供容错功能。从根本上说:文件被分割成很多块,使用冗余的方式储存于商用机器集群上,数据块冗余配置策略要达到最大的数据可靠性和可用性,最大的网络带宽利用率。因此,如果仅仅把数据的拷贝置于不同的机器上很难满足这两个要求,必须
在不同的机架上进行数据备份。这样即使整个机架被毁或是掉线,也能确保数据的正常使用。而MapReduce 和 BigTable都是以GFS为基础的,准确来说,只要是涉及大数据的交互,它都有参与的余地。租约机制GFS主要是为了追加而不是改写而设计的,GFS数据追加以记录为单位(租约机制),每个记录的大小为几十KB到MB不等,如果每次记录追加需要请求Master,那么Master就会成为系统的性能瓶颈,因此,GFS系统中通过租约机制将chunk写操作授权给ChunkServer。拥有租约授权的ChunkServer称为主ChunkServer,其他副本所在的ChunkServer为备ChunkServer。
随后的MapReduce论文,论文描述了大数据的分布式计算方式,主要思想是将任务分解然后在多台处理能力较弱的计算节点中同时处理,然后将结果合并从而完成大数据处理。简单说Mapreduce是针对分布式并行计算的一套编程模型,Hadoop MapReduce基于“分而治之”的思想,将计算任务抽象成map和reduce两个计算过程,可以简单理解为“分散运算—归并结果”的过程。而Shuffle过程是MapReduce的核心,Shuffle的正常意思是洗牌或弄乱,它分布在Mapreduce的map阶段和reduce阶段,它会随机地打乱参数list里的元素顺序,它一般把从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle。
而BigTable是建立在 GFS 和 MapReduce 之上的。它的底层的架构是:GFS。每个Table都是一个多维的稀疏图为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有
100-200 MB,每个机器存储100个左右的
Tablets。BigTable包括三个主要的组件:链接到客户程序的lib、一个Master服务器和多个Tablet服务器,Master服务器负责;为Tablet服务器分配Tablet ;检测新加入或者过期失效的Tablet服务器;;对Tablet服务器进行负载均衡;对保存在GFS上的文件进行垃圾收集 ;处理模式信息的修改(新建表、列族及访问控制信息)。由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。现在Bigtable已经实现了下面的几个目标: 适用性广泛、可扩展、高性能和高可用性。但是Bigtable不支持完整的关系数据模式。且Bigtable将存储的数据都视为字符串。Bigtable为客户提供了简单的数据模型,利用这个模型,客户可以动态控制数据的分布和格式,用户也可以自己推测底层存储数据的位置相关性。另外,可以通过Bigtable的模式参数来控制数据是存放在内存中还是硬盘上。
通过这三篇论文,略有收获,知道在大数据学习的道路上我们还有很长的路要走。
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks |