Hadoop

小小痴, 2019-04-18 06:21:55
对于Hadoop自己一开始一点都不懂,看了一些相关文献之后也略显懵逼,但是还是懂了一点。
说到Hadoop就不得不谈及到谷歌了,它分别发布了三篇文献,Google File System,Google Bigtable ,Google MapReduce。而后两篇又是以File System为基础构建起来的。
因此首先需要谈一谈的就是File System,之后就用GFS代替,在这篇论文之中它叙述了Google发布它的意义,是一个跨时代的重大意义。它是用了上百台的廉价设备组建起来的计算机集团,GFS满足了人们对数据处理以及存储的要求。他有四点设计思路,首先,组件失效被认为是常态事件,而不是意外事件。其次,以通常的标准衡量,我们的文件非常巨大。第三,绝大部分文件的修改是采用在文件尾部追加数据,而不是覆盖原有数据的方式。第四,应用程序和文件系统 API 的协同设计提高了整个系统的灵活性。其中GFS由一个master和chunkserver构成的。Google设置了master来保存目录和索引信息,因此达到了简化系统结果,从提高性能来考虑,但这就会造成单点故障或者瓶颈的出现。为了消除主的单点故障Google把每个chunk设置到了64M,还是非常大的。”这样,由于代码访问数据的本地性,application端和master的交互就会减少,而主要数据流量都是Application和chunkserver之间的访问。还有就是master所有信息都存储在内存里,启动时信息从chunkserver中获取。从而提高了master的性能和吞吐量,也有利于master当掉后,很容易把后备j机器切换成master。“客户端和chunkserver都部单独做缓存,只是用linux文件系统自己的缓存。Mapreduce是针对分布式并行计算的一套编程模型。以前的程序并不能自动的得到多核的好处,只有编写并发程序,才能真正获得多核的好处。分布式计算也是一样。”Mapreduce由Map和reduce组成,来自于Lisp,Map是影射,把指令分发到多个worker上去,reduce是规约,把Map的worker计算出来的结果合并。Mapreduce使用GFS存储数据。Bigtable发布于2006年,启发了无数的NoSQL数据库,BigTable 是建立在 GFS 和 MapReduce 之上的。为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有 100-200 MB,每个机器存储100个左右的 Tablets。由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。“
这就是自己对hadhoop的理解,鉴于老师发的论文就看了第一篇,看的很懵,于是自己就去百度搜索了一些其他文献,简单易懂的进行了阅读,大致的了解了这些。
...全文
44 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2019-04-18
  • 打赏
  • 举报
回复
感谢分享, 建议写成博客

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧