Hadoop 原理总结


自己学习hadoop有一段时间了,但总觉得所学习的东西比较碎片化,短时间无法形成一个系统的结构。所以抽空整理一下。
首先,在解决一些疑惑上面,以下博文都给了很大的帮助。

  1. Hadoop 面试相关,介绍一些基本的概念,很有用;
  2. HDFS 体系结构,对hdfs的拓展;
  3. NameNode、DataNode和Client三者之间协作关系及通信方式;
  4. Hadoop中Namenode单点故障;
  5. Zookeeper;
  6. DFSClient;
  7. 单点故障总结

下面是用自己的语言作的相关总结。

  1. 什么是Hadoop, hadoop 就是一个大数据解决方案。它提供了一套分布式系统基础架构。 核心内容包含hdfs和mapreduce。hadoop2.0以后引入yarn.

  2. 那hdfs和mapreduce分别又是干什么的呢,hdfs是提供数据存储的,mapreduce是方便数据计算的。
    a. hdfs 又对应namenode和datanode. namenode负责保存元数据的基本信息,datanode直接存放数据本身;
    b. mapreduce对应jobtracker和tasktracker. jobtracker负责分发任务,tasktracker负责执行具体任务;
    c. 所以对应到master/slave架构,namenode和jobtracker就应该对应到master, datanode和tasktracker就应该对应到slave.


    Paste_Image.png

    对应到这张图片,hadoop集群就大概是这样一个样子。一个集群有一个master,多个slave。一个namenode, 多个datanode。 datanode可以分组,每一组datanode之间有数据备份,一般是有3个数据备份。

  3. 那图片中的client又是什么呢,它是Hadoop中的另一个组件,DFSclient。 任何读写请求都要经过DFSClient发起,过程基本是这样,先和namenode建立连接,得到读/写数据的datanode信息。然后再与具体的datanode建立连接,进行读写操作。这个可以参考第6个链接,中间会有一些同步的操作。

  4. 既然说道datanode的数据同步,是通过什么东西来管理的呢,这个就是zookeeper的事了。zookeeper基本上能用到各种分布式架构上面实现数据的同步和管理。

  5. hadoop只有一个master,是不是存在单点故障的问题。是的,既然master只有一个,那对应的namenode/jobtracker都存在单点故障问题。好在hadoop2有个secondaryNameNode可以保存一些editlog,必要时可以通过这个来恢复namenode。但是,namenode到secondaryNN是固定时间同步的,当故障发生时,中间或多或少会有数据丢失。况且,secondaryNN的作用并不是NN的备份,而是帮助NN更快的启动。所以,解决单点故障就需要有另一套解决方案。通常,一个NFS来实时同步editlog,再一个备份的NN实时根据editlog构建NN信息。当故障发生时,手动或自动迁移到备份的NN上。

  6. 什么是yarn, 其实yarn就是集成其他组件的工具。毕竟hdfs和mapreduce只是基础架构的组件,很多问题不能解决。

  7. hadoop只有一个master,那处理的数据量是不是有限。这个问题是这样,master里只保存元数据的基本信息,所以,建议把小文件都转换成大文件。比如,每一个文件、文件夹和Block需要占据150字节左右的空间,所以,如果你有100万个文件,每一个占据一个Block,你就至少需要300MB内存。当前来说,数百万的文件还是可行的,当扩展到数十亿时,对于当前的硬件水平来说就没法实现了。还有一个问题就是,因为Map task的数量是由splits来决定的,所以用MR处理大量的小文件时,就会产生过多的Maptask,线程管理开销将会增加作业时间。举个例子,处理10000M的文件,若每个split为1M,那就会有10000个Maptasks,会有很大的线程开销;若每个split为100M,则只有100个Maptasks,每个Maptask将会有更多的事情做,而线程的管理开销也将减小很多。

  8. 既然hdfs能存储了,那hbase能干什么呢。hdfs只支持随机读。但是HBase可以随机读写。
    HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 之前的有点忘记了,这里在云笔记拿出来再玩玩.看不懂的可以留言 大家可以尝试下Ambari来配置Hadoop的相关环...
    HT_Jonson阅读 2,938评论 0 50
  • 原文链接 1. 背景介绍 谈到分布式系统,就不得不提到Google的三驾马车:GFS[1],MapReduce[2...
    亚斯咪妮阅读 1,080评论 0 2
  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,170评论 0 2
  • Hadoop部署方式 本地模式 伪分布模式(在一台机器中模拟,让所有进程在一台机器上运行) 集群模式 服务器只是一...
    陈半仙儿阅读 1,601评论 0 9
  • 正如两年前一样,我能感受到她的存在,一直都能。 如今才知道,当初的我不是幼稚,也不是疯癫。 我能感受到,她活在我心...