Hadoop 学习笔记整理

大纲:
一. 大数据启蒙认识
二. HDFS
三. Hadoop1.0的非HA模式(SecondaryNameNode)
四. Hadoop2.0或者3.0的HA模式

大数据启蒙认识

假定事件一:

有一个1TB的文件,怎么样找出其中相同的行? 因为文件比较大,所以一般情况下不能直接把他们读取到内存当中,只能一行一行读取,并且需要所有的都要读取两遍,如下图:

image.png

时间复杂度为 O(n^2) n为文件的行

如果从大数据分布式的角度来考虑的话,我们可以怎么样解决上面的问题呢?

假定我们有2000台集群,把读入的每一行通过hash算法得到一个hashcode(hash算法是稳定的,只要是相同的字符串,它们得到的hashcode就会是一样的),然后进行取模运算,写入到相应编号的集群服务器中。大概我们可以想象成如下的样子来查找:

image.png

注意: 每一行字符串hash算法之后会得到一个hashcode,且这个算法是稳定的,只要是相同的行经过hash算法之后得到的hashcode一定是一样的,也就说相同的行一定会被分配到同一台服务器当中。

虽然两者都要进行两次的I/O操作,但是因为分布式集群,第二次的I/O操作分散给了2000集群分别去完成,所以花费的时间明显会更快。 这也是分布式的优势。

假定事件二:

有一个这样的文件,文件中包含了1~999999的数字(无序),每个数字占一行,现在想把这个文件的数字按顺序进行排列。

从文件中读出一行数字,然后判断数字所属范围,并写入到相应的容器中,一次类推,写完所有的数据之后,每个容器内部进行排序运算就可以,最后所有的容器的数据就是一个有序的队列,大概会是如下的样子:


image.png

这就是分布式也就是大数据的优势,把一个复杂的过程分解开来,分散到集群当中,让每一个单元去完成分解之后的任务。

后来还会持续更新。。。

你可能感兴趣的:(Hadoop 学习笔记整理)