欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop理解

程序员文章站 2022-05-21 18:58:06
...
作为分布式系统而言,有两个重要内容(当然还有其它的内容,这里仅仅讨论hadoop的核心):分布式存储和分布式计算。

分布式存储的原理:将一个大文件划分成若*分,存储到不同的节点上(副本存储)。
好处:1)由于有副本存储,某个节点的down机不会影响到整个集群的使用,数据还是可以保证完整性的;
      2)大文件划分小文件存储,这样便于后面的处理。这是因为计算节点(存储节点是同一个概念)可以处理这一部分数据,多个
     计算节点可以并行处理。
整个来讲,HDFS的原理比较容易读,本质上讲,它是一个文件系统,只不过是分布式的,你也完全写一个简单的分布式文件系统出来的,只要你想做。

在讲分布式计算之前,我们来考虑一个问题,假设我们想完成一个任务:统计文章中哪些词出现的概率比较大。你会怎么做呢?

1.如果数据量小的话:
  1)一个文件一个文件地读;
  2)建立一个hashmap,key就是单词,value是频率;
  3)如此循环。
 
2.如果数量大的话:
  你会将这些文件分成若*分,放到N台机器上并行运行,然后结果再合并。
 
  问题:1)文件的分配,一个个复制吗?
       2)结果合并,容易吗?
  
所以,出现了分布式计算框架,它要解决的问题就是上面的两点。
第1)点已经解决了,因为文件本身就是存储在不同的计算节点上的;
第2)其实包含了几个部分:
      a)文件的打开与读取(Hadoop是一行一行的读);
  b)中间结果的保存(也是存储到文件中去);
  c)中间结果的合并和输出(最终结果存储到文件中去)。
 
你会发现,它的设计思想就是这么简单。然而要设计一个分布式系统框架,还是有很多事情要考虑的,这一点需要自己去体会。