- 浏览: 532084 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (294)
- Java基础 (40)
- 架构分析 (37)
- 开发心得 (22)
- 架构乐园 (12)
- Java Web (6)
- 大牛专区 (5)
- 转载专区 (40)
- 小技巧 (16)
- Linux专区 (8)
- linux (3)
- Spring (2)
- N (1)
- 前台JS (1)
- SAP NETWEAVER (3)
- JMS (4)
- queue (1)
- 数据模型 (2)
- oracle (2)
- sqlserver (2)
- ubuntu (2)
- install gcc (1)
- MEMCACHED (2)
- SQLSERVER 驱动 (1)
- JVM GC 调优 (1)
- 服务器运维 (1)
- activiti 国际化 中文 (1)
- activiti (1)
- 前端开发 (1)
- tar.gz (1)
- Web安全 (1)
- CSRF (1)
- 技术架构 (4)
- 性能指标 (1)
- 响应时间 (1)
- 淘宝 (1)
- linux安装 (1)
- lucene (1)
- Mongodb (1)
- gis (1)
- 微信授权 code access_token open_id (1)
- Redis java 获取 (1)
- HTTP 跨域 同源策略 cookie (1)
- java 加密 3DES (1)
- CROS (1)
- Cookie (1)
- Rest (1)
- 跨域资源共享 (1)
- 3DES (1)
- Effective java读后感 (1)
- nginx (1)
- Tengine 开发 (1)
- HTTP/1.1 废弃 javaWEB (1)
- 支付宝 支付状态 (1)
- maven jdk (1)
- 应用宝统一链接 (1)
- git (2)
- git 代码上传 (1)
- ubuntu 安装 mysql 5.6 (1)
- Linux 命令学习 (3)
- Linux 命令 60 (2)
- linux 命令 (2)
- linux nginx 安装 (1)
- grant revoke (1)
- linxu jdk profile (1)
- git 使用 (1)
- 架构设计 (1)
- 上海居转户 居转户 (1)
- wind (1)
- elastic-job (1)
- Mysql (1)
- 个人站点 (1)
- nginx lua waf 实现 (1)
- github 算法指南 (1)
- go (1)
- MapReduace 大数据 (1)
- 架构PPT (1)
最新评论
-
jingchh:
帅哥, 这个类是哪个包下面的呢? 应该下载哪个jar包,谢谢~ ...
StringUtils工具类的常用方法 -
Nabulio:
StringUtils工具类的常用方法 -
yuanyuan2597:
那请问,按照你的方法进行修改调用。SELECT locatio ...
根据经纬度实现附近搜索Java实现 -
yangguo:
这个经理有病,埋伏打他一顿。
复试 等电话 -
emparadise329:
进一步学习了子类与父类间的关系
Java 子类对象实例化 面试题
标签:
it/科技 |
分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable
谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]。
虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文。而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Hadoop对应Mapreduce, Hadoop Distributed File System (HDFS)对应Google fs,Hbase对应Bigtable。不过在性能上Hadoop比Google要差很多,参见表1。
Experiment |
HBase20070916 |
BigTable |
random reads |
272 |
1212 |
random reads (mem) |
Not implemented |
10811 |
random writes |
1460 |
8850 |
sequential reads |
267 |
4425 |
sequential writes |
1278 |
8547 |
Scans |
3692 |
15385 |
表1。Hbase和BigTable性能比较(来源于http://wiki.apache.org/lucene-hadoop/Hbase/PerformanceEvaluation)
以下分别介绍这三个产品:
一 Google fs
GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,提供容错功能。
图1 GFS Architecture
(1)GFS的结构
1. GFS的结构图见图1,由一个master和大量的chunkserver构成,
2. 不像Amazon Dynamo的没有主的设计,Google设置一个主来保存目录和索引信息,这是为了简化系统结果,提高性能来考虑的,但是这就会造成主成为单点故障或者 瓶颈。为了消除主的单点故障Google把每个chunk设置的很大(64M),这样,由于代码访问数据的本地性,application端和 master的交互会减少,而主要数据流量都是Application和chunkserver之间的访问。
3. 另外,master所有信息都存储在内存里,启动时信息从chunkserver中获取。提高了master的性能和吞吐量,也有利于master当掉后,很容易把后备j机器切换成master。
4. 客户端和chunkserver都不对文件数据单独做缓存,只是用linux文件系统自己的缓存
“The master stores three major types of metadata: the file and chunk namespaces, the mapping from files to chunks, and the locations of each chunk’s replicas.”
“Having a single master vastly simplifies our design and enables the master to make sophisticated chunk placement and replication decisions using global knowledge. However,we must minimize its involvement in reads and writes so that it does not become a bottleneck. Clients never read and write file data through the master. Instead, a client asks the master which chunkservers it should contact. It caches this information for a limited time and interacts with the chunkservers directly for many subsequent operations.”
“Neither the client nor the chunkserver caches file data.Client caches offer little benefit because most applications stream through huge files or have working sets too large to be cached. Not having them simplifies the client and the overall system by eliminating cache coherence issues.(Clients do cache metadata, however.) Chunkservers need not cache file data because chunks are stored as local files and so Linux’s buffer cache already keeps frequently accessed data in memory.”
(2)GFS的复制
GFS典型的复制到3台机器上,参看图2
图2 一次写操作的控制流和数据流
(3) 对外的接口
和文件系统类似,GFS对外提供create, delete,open, close, read, 和 write 操作
另外,GFS还新增了两个接口snapshot and record append,snapshot是做一个
“Moreover, GFS has snapshot and record append operations.
Snapshot creates a copy of a file or a directory tree at low cost.
Record append allows multiple clients to append data to the same file concurrently while guaranteeing the atomicity of each individual client’s append.”
二 Mapreduce
Mapreduce是针对分布式并行计算的一套编程模型。
讲到并行计算,就不能不谈到微软的Herb Sutter在2005年发表的文章” The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software”[6],主要意思是通过提高cpu主频的方式来提高程序的性能很快就要过去了,cpu的设计方向也主要是多核,超线程等并发上。但是以前的程序并不能自动的得到多核的好处,只有编写并发程序,才能真正获得多核的好处。分布式计算也是一样。
图3 Mapreduce Execution overview
1.Mapreduce是由Map和reduce组成,来自于Lisp,Map是影射,把指令分发到多个worker上去,reduce是规约,把Map的worker计算出来的结果合并。(参见图3)
2.Google的Mapreduce实现使用GFS存储数据。
3.Mapreduce可用于Distributed Grep,Count of URL Access Frequency,ReverseWeb-Link Graph,Distributed Sort,Inverted Index
三 Bigtable
就像文件系统需要数据库来存储结构化数据一样,GFS也需要Bigtable来存储结构化数据。
1. BigTable 是建立在 GFS ,Scheduler ,Lock Service 和 MapReduce 之上的。
2. 每个Table都是一个多维的稀疏图
3. 为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有 100-200 MB,每个机器存储100个左右的 Tablets。底层的架构是:GFS。由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。
参考文献
[1] The Google File System; http://labs.google.com/papers/gfs-sosp2003.pdf
[2] MapReduce: Simplifed Data Processing on Large Clusters; http://labs.google.com/papers/mapreduce-osdi04.pdf
[3] Bigtable: A Distributed Storage System for Structured Data; http://labs.google.com/papers/bigtable-osdi06.pdf
[4] Hadoop ; http://lucene.apache.org/hadoop/
[5] Hbase: Bigtable-like structured storage for Hadoop HDFS; http://wiki.apache.org/lucene-hadoop/Hbase
[6] The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software; http://www.gotw.ca/publications/concurrency-ddj.htm
发表评论
-
Subversion (SVN) - Repository (版本库) 备份与恢复
2016-10-20 13:53 2368Subversion (SVN) - Repository ... -
mysql中间件研究(Atlas,cobar,TDDL)--转载
2016-09-06 14:13 690首先标注下来源:http://www.guokr.com/b ... -
IP 查询开放API
2015-10-12 19:57 973今天项目要用到 查询访问网站用户的IP 然后网上查询了 资料还 ... -
大牛 linux 命令
2015-09-15 11:36 6971, dig 命令 dig baidu.com ... -
spring mvc中 每次都会多请求一次/favicon.ico
2015-09-02 10:57 40181.用apache或nginx部署时,favicon.ico ... -
支付宝 return_url 与 notify_url 的区别
2015-08-27 10:56 30383、return_url 与 notify_url 的区别买 ... -
ubuntu 14.04 安装 rpm包,转化deb包
2015-08-26 20:41 1623ubuntu RPM should not be used ... -
redis-live 监控 redis
2015-08-26 19:48 922目前来说,越来越多的使用多了NOSQL的业务,但是这方面的监 ... -
redis cli 客户端连接
2015-07-27 15:31 996Last login: Mon Jul 27 15:31:4 ... -
redis连接过多的一个解决方法
2015-07-24 10:32 765redis连接过多的一个解决方法 2014-07 ... -
Eclipse 骨灰级开发任务 快捷方式推荐
2015-07-15 10:39 693Eclipse中10个最有用的快捷键组合 一个Eclip ... -
编码规范系列(一):Eclipse Code Templates设置
2015-07-12 16:01 983从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队 ... -
ubuntu 12.04 添加源
2015-04-22 17:50 1730sudo gedit /etc/apt/sources.li ... -
[DB][MySql]关于取得自增字段的值、及@@IDENTITY 与并发性问题
2015-04-07 12:43 1582对于刚从Oracle转向MySql的人都会为,MySql中没 ... -
Eclipse快捷键 10个最有用的快捷键
2014-04-30 11:16 484Eclipse中10个最有用的快捷键组合 一个Eclip ... -
quartz在集群环境下的最终解决方案
2014-04-03 20:45 772在集群环境下,大家会 ... -
Lucene 3.X 自定义排序
2013-09-18 16:26 1289Lucene 3.X 自定义排序 发表于 2012 年 ... -
DB2获取当前时间
2013-09-16 19:32 1167DB2获取当前时间 博客分类: databas ... -
openfire源码检出
2013-09-11 20:27 894DOWNLOADS SOURCE CODE Bac ... -
受支持的地域代码和代码页
2013-08-28 12:58 1996受支持的地域代码和代码页 下列各表说明了受数据库服务器 ...
相关推荐
谷歌的“三驾马车”——MapReduce、Bigtable和GFS(Google File System)就是这一领域的里程碑式创新,它们为现代大数据处理奠定了基础。这三篇文章是理解谷歌分布式架构的重要文献,对后来的Hadoop、HBase等开源...
《Google云计算三大核心技术:GFS、Bigtable与MapReduce》 在互联网的快速发展中,Google作为全球领先的科技公司,提出了许多开创性的技术解决方案,其中最具影响力的就是GFS(Google File System)、Bigtable以及...
《Google 三大核心技术:GFS、MapReduce与BigTable》 在信息技术的快速发展中,Google以其独特的创新精神和卓越的技术实力,引领了大数据处理的新纪元。GFS(Google File System)、MapReduce和BigTable是Google的...
标题中的“GFS BigTable MapReduce中文版”指的是Google三篇经典的分布式系统论文的中文翻译版本,这三篇论文在IT行业中具有极高的影响力,尤其是对于从事云计算、大数据处理和分布式存储领域的专业人士而言。...
[1]Bigtable: A Distributed Storage System for Structured Data [2]MapReduce: Simplified Data Processing on Large Clusters [3]The Google File System [4]Large-scale Incremental Processing Using ...
Google大数据的三大经典论文——GFS(Google File System)、MapReduce以及BigTable,对于现代分布式计算系统的设计和实现具有深远影响。这三份论文分别阐述了大规模数据存储、分布式计算模型以及结构化数据存储的...
谷歌的GFS、MapReduce和Bigtable是大数据处理和分布式计算领域的里程碑式创新,这三者构成了谷歌的基础架构,对整个互联网行业产生了深远影响。现在,我们拥有的是一份包含这些核心论文的2021年修正版集合,涵盖了中...
标题中的“Google大数据经典论文(GFS/BigTable/MapReduce)”指的是Google在大数据处理领域发布的三篇标志性论文,这些论文对后来的大数据技术发展,尤其是Hadoop等开源框架产生了深远影响。以下是对这三篇论文的...
这些技术包括MapReduce、GFS(Google File System)和Bigtable,它们对现代大数据处理和云计算的发展产生了深远影响。以下是这三项技术的详细介绍: 1. MapReduce: MapReduce是一种编程模型,用于大规模数据集的...
谷歌的三驾马车——Google File System(GFS)、MapReduce和Bigtable,是构建大规模分布式计算系统的核心技术。这三者共同构成了谷歌处理海量数据的基础架构,为搜索引擎、云计算和其他大数据应用提供了强大的支撑。...
谷歌的三篇经典论文——Bigtable、File-System和MapReduce,对现代大数据处理和分布式系统的发展产生了深远影响。这三篇文章分别详细介绍了谷歌在数据存储、文件系统和大规模并行计算上的创新解决方案。 首先,让...
特别是大数据处理和分布式计算中,Google的三篇标志性论文——"MapReduce: Simplified Data Processing on Large Clusters"(2004年OSDI会议)、"The Google File System"(2003年SOSP会议)以及"Bigtable:...
《Google-GFS》、《Bigtable》和《MapReduce》是Google公司发布的三篇具有里程碑意义的学术论文,它们揭示了Google如何处理和管理海量数据的内部机制,为分布式计算和大数据处理领域奠定了坚实的基础。这三篇论文的...
本文将深入探讨云计算领域的三篇经典论文:Google File System (GFS)、MapReduce以及BigTable,这三者构成了现代云服务的基础架构。 GFS(Google File System)是由Google在2003年发表的一篇开创性论文,它描述了一...
本文所涉及的Google三大论文:MapReduce、GFS和Bigtable,正是这一领域内具有里程碑意义的研究成果。接下来,我将详细解读这三篇论文的核心知识点,并结合论文中文版的内容进行阐述。 首先,MapReduce是Google提出...
在IT行业中,Google是技术创新的巨头,其三大核心技术——MapReduce、GFS(Google File System)和Bigtable,对大数据处理和云计算领域产生了深远影响。这些技术是Google为解决自身大规模数据处理问题而研发的,并...
在IT行业中,Google的“大数据三论文”被誉为大数据技术的基石,这三篇论文分别讲述了Bigtable、GFS(Google File System)以及MapReduce。这些技术对于理解现代云计算平台的数据处理架构至关重要。 首先,让我们...
在IT行业中,Google的三驾马车是大数据处理和存储领域的核心技术,这三大技术分别为MapReduce、GFS(Google File System)和Bigtable。它们共同构建了Google在全球范围内的大规模数据处理基础设施,使得搜索引擎和...