Hadoop名字的产生背景
Hadoop之父Doug Cutting看到他儿子在牙牙学语时,抱着黄色小象,亲昵的叫hadoop,他灵光一闪,就把这技术命名为Hadoop,而且还用了黄色小象作为标示Logo,不过,事实上的小象 瘦瘦长长,不像Logo上呈现的那么圆胖。“我儿子现在17岁了,所以就把小象给我了,有活动时就带着小象出席,没活动时,小象就丢在家里放袜子的抽屉里。” Doug Cutting大笑着说
来自漆黑狭小的黑屋里
大家好,我叫hadoop。这个名字在很多小孩子牙牙学语时都很容易叫出来的声音,很神奇吧?其实我也像小孩子一样,从孕育生命到出生之前一直生活在狭小漆黑的黑屋里,我的眼睛不能睁开,因为睁开了也什么都看不见。我一直不停的被改造,我原来是因为Doug Cutting做一个爬虫项目时候想如何把爬取的数据存储以及计算的,但正好是因为有谷歌的三大论文公开出来之后,我才有了更好的发展。
出生之时我需要一个叫“解压”的小伙伴,“解压”还有个孪生兄弟叫“压缩”,“压缩”也和我经常玩,把背包压缩一下,不带一点重复的东西,减少重量的负担。“压缩”和我在网络传输上也有非常出色的角色,运行效率也是提升不少,但是压缩和解压的时间也是会占用一点时间的,所以是否用压缩还是需要权衡一下的。
我来自黑黑的小屋啊,我需要“解压”这个好伙伴把我解压到Linux服务器上,让我舒展自己,让我能看清自己。我看着自己身上的三个组件,我很好奇它们都是干什么的,能吃吗,能掏出来玩玩吗?吃是不能吃的,掏可以掏出来玩。但是,不能掏的是HDFS组件。因为很多小伙伴离不开我的hdfs组件,比如spark小伙伴啊,它没有自己的存储系统,常常需要我的hdfs组件才能跑起来。外界传说未来我和spark也是一个非常不错而且也是受欢迎的组合,所以我要好好保护hdfs才是。
我看着自己身上的hdfs组件,拉长过来就是hadoop distributed file system这串英文,翻译过来是hadoop分布式文件系统,意思就是多个节点的文件树状结构组成的,文件形式可以以任何格式进行存储的,比如二进制文件、图片、音频以及视频。hdfs架构中也有三个组件,它们分别是namenode,datanode和secondarynamenode。
secondarynamenode可以没有,但是namenode和datanode绝对不可以没有。namenode相当于hdfs架构的大脑,指挥datanode做读写数据,要注意的是,datanode不会删除数据,只是给要删除的数据打上标记,datanode要写数据的时候覆盖掉打上被标记的数据就可以了。而secondarynamenode作为namenode的备份,以防大脑阶段性失忆。
我还有身上的yarn组件和mapreduce组件,把它们掏出来看了下,我看到了,yarn有个核心在于调度器,调度器也分为很多种,比如公平调度器、容量调度器以及FIFO先进先出调度器。yarn架构其实也有离不开的组件,它们就是resourcemanager和nodemanager。而resourcemanager正是调度管理器,管理着每一个任务的调度。忘了说了mapreduce组件,mapreduce就是一干活的,负责搬运数据以及计算数据,它的上级领导就是nodemanager封装的container。
每一个nodemanager对应着一个datanode,而且这两个节点必须在同一linux操作系统上。因为datanode存储着几块相同大小的数据,nodemanager里面封装的container调用map阶段任务的时候,正好可以读取本地上的数据,减少网络传输上的负荷。reduce阶段写入数据也是正好是在datanode节点上,这样map阶段读取数据的时候很方便在本地上读取,一个数据块对应着一个map。
如果不是一个数据块对应着一个map,就会大大增加IO流运行时间。
(来自大数据算法笔记公众号)
网友评论