大数据系列文章-Hadoop基础介绍(一)

Hadoop项目背景简介

  • 2003-2004年,Google公开了部分GFS个Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年的业余时间,实现了DFS和Mapreduce机制,一个微缩版:Nutch
  • 名字来源于Doug Cutting儿子的玩具大象
  • Hadoop于2005年秋天作为Lucene的子项目Nutch的一不分正式引入Apahce基金会。2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入称为Hadoop的项目

Hadoop之父

Hadoop之父是Doug Cutting,关于他的介绍就不罗列了,大家网上搜索下都能找到,总结下:

  1. 他就职于Yahoo期间,开发了Hadoop项目。而Hadoop项目是根据Google发布3篇的学术论文研究而来,既《Google File System》、《Google MapReduce 》、《Google BigTable》。
  2. 大名鼎鼎的Lucene、Nutch也是他弄出来的。
  3. 他目前在Cloudera公司担任首席架构师工作。

官方网站

http://hadoop.apache.org/

Hadoop六大模块

  • Hadoop Common: 支持其他Hadoop模块的实用常用程序。
  • Hadoop Distributed File System (HDFS™): 一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
  • Hadoop YARN: 作业调度和集群资源管理的框架。
  • Hadoop MapReduce:基于yarn系统,用于并行处理大型数据集。
  • Hadoop Ozone: 用于Hadoop的对象存储。
  • Hadoop Submarine:Hadoop的机器学习引擎

Apache的其他Hadoop相关项目

  • Ambari™: 一个基于web的工具,用于配置、管理和监视Apache Hadoop集群。
  • Avro™: 一种数据序列化系统。
  • Cassandra™: 一套开源分布式NoSQL数据库系统。
  • Chukwa™: 用于管理大型分布式系统的数据收集系统。
  • HBase™: 一个可伸缩的分布式数据库,支持大表的结构化数据存储。
  • Hive™: 一种数据仓库基础设施,提供数据摘要和特殊查询。
  • Mahout™: 一个可伸缩的机器学习和数据挖掘库。
  • Pig™: 用于并行计算的高级数据流语言和执行框架。
  • Spark™: Hadoop数据的快速通用计算引擎。Spark提供了一个简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL、机器学习、流处理和图形计算。
  • Tez™: 针对Hadoop数据处理应用程序的新分布式执行框架,它提供了一个强大而灵活的引擎来执行任意的DAG任务来处理批处理和交互用例的数据。
  • ZooKeeper™: 分布式应用程序的高性能协调服务。

Hadoop-HDFS

存储模型

  • 将文件线性切割成块(Block)
  • Block分散存储在集群节点中
  • 单个文件Block大小一致,文件于文件可以不一致
  • Block可以设置副本数,副本散在不同节点中
  • 文件上传可以设置Block大小和副本数
  • 已上传的文件Block副本数可以调整,大小不变
  • 只支持一次写入多次读取,同一时刻只能有一个写入者
  • 可以用append追加数据

架构模型

  • 文件元数据MetaData,文件数据(元数据和数据本身)
    • 元数据,描述文件的,例如文件大小多大,所述者信息等
    • 数据本身
  • (主)NameNode节点保存文件元数据
  • (从)DataNode节点保存文件Block数据
  • DataNode与NameNode保持心跳,提交Block列表(这里的心跳指的是DataNode会周期性的给NameNode提交数据包,报告DataNode节点状态以及Block列表)
  • HdfsClient与NameNode交互元数据信息
  • HdfsClient与DataNode交互文件Block数据

HDFS架构图

HDFS架构图

简单介绍下这个HDFS架构图,后面会详细介绍读写流程,所以这里只是带大家简单理解下。

  • 最底层是DataNode,用于存储具体的数据,在往上是NameNode,用于存储数据的元信息。
  • 读数据:HDFSClient(Client)先发请求,去NameNode中查找文件元信息,看看这个文件都存储在哪些DataNode节点上,NameNode把这个数据存储的节点信息告知HDFSClient后,HDFSClient去各个DataNode上拿数据。
  • 写数据:HDFSClient(Client)先发请求,去NameNode中查找文件元信息,NameNode会看看哪些节点存活,可以写到哪些节点上,然后NameNode把这些信息发送给HDFSClient,HDFSClient将数据直接存储到这些节点上。等到文件全部写入完成后,文件才可用(这里要特别说明一点,并不是把数据直接发到NameNode上,由NameNode进行存储分发)

HDFS设计思想

HDFS设计思想

例如一个文件50GB,按照64MB切块的话,切成若干个64MB大小的块。这些块是有副本概念,例如block1,会在不同的Server节点上都有其副本。右上角是描述清单,也就是所谓的原数据,存在NameNode进程中去,其中block1:node1,node2,node3,表示block1的位置信息。

HDFS优点

  1. 高容错性
    • 数据自动保存多个副本
    • 副本丢失后,自动恢复
  2. 适合批处理
    • 移动计算而非移动数据
    • 数据位置暴漏给计算框架(Block偏移量)
  3. 适合大数据处理
    • GB、TB、PB数据
    • 百万规模以上的文件数量
    • 10K+节点
  4. 可构建在廉价机器上
    • 通过多副本,提升可靠性
    • 提供了容错和恢复机制

HDFS缺点

  1. 低延迟数据访问
    • 比如毫秒级
    • 低延迟与高吞吐率
  2. 小文件存储
    • 占用NameNode大量内存
    • 寻找时间超过读取时间
  3. 并发写入、文件随机修改
    • 一个文件只能有一个写入者
    • 仅支持append追加

Hadoop架构中的角色

NameNode(NN)

  • 基于内存存储
  • 主要功能:
    • 接受客户端的读写服务
    • 收集DataNode汇报的Block列表信息
  • NameNode保存metadata信息包括
    • 文件大小,时间
    • Block列表,Block偏移量,位置信息
    • Block每个副本位置(由DataNode上报)

DataNode(DN)

  • 本地磁盘目录存储数据(Block),文件形式
  • 同时存储Block的元数据信息文件(这里的元数据非NameNode源数据文件,只是DataNode这个角色为这个Block块创建的小的元数据文件,具体存的是对Block的校验和,例如MD5,哈希值等,以保证合并数据时数据的完整性。)
  • 启动DataNode时会向NameNode汇报Block信息
  • 通过向NameNode发送心跳保持联系(3秒一次),如果NameNode10分钟没有收到DataNode心跳,则认为已经lost,并copy其上的Block到其他的DataNode上

Secondary NameNode(SNN)

  • 为NameNode上的数据创建周期性检查点的节点
  • 周期性地下载当前NameNode fsimage和edit logs文件,将edit logs和fsimage文件合并为一个新的fsimage文件然后上传到NameNode中
  • 它不是要取代掉NameNode也不是NameNode的备份

后记

下次,我们将详细介绍HDFS读写流程,敬请期待。
(转发请注明出处:https://www.jianshu.com/u/829cbce64381 如发现有错,请留言,谢谢)

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

推荐阅读更多精彩内容