Hadoop大数据平台架构与实践-基础篇

1、如何对大数据进行存储与分析呢?

  • 系统瓶颈:存储容量、读写速率、计算效率。。。无法满足用户需求;
    针对以上,Google提出三大关键技术解决大规模数据的存储和处理:MapReduce、BigTable、GFS;

  • 革命性的变化1:成本降低、能用PC机、就不用大型机和高端存储;(当时对于谷歌来说,数据都是网页数据,不同于银行都是真金白银的数据,所以他的目的在于成本降低。能用PC机就不用大型机和高端机存储。)

  • 革命性的变化2:软件容错硬件故障视为常态,通过软件保证可靠性。(谷歌的方案里,硬件故障视为常态;普通PC机硬件故障是常态,所以需要通过软件方面来保证高可靠性)

  • 革命性的变化3:简化并行分布式计算,无需控制节点同步和数据交换;(谷歌的MapReduce使分布式通信变得非常的简单,只需要一个Map和Reduce任务即可)

但是Google并没有开源以上的技术。

一个模仿Google大数据技术的开源实现来了 -- Hadoop

Hadoop的功能和优势

1、Hadoop包括两个核心组成:
  • HDFS:分布式文件系统,存储海量的数据;
  • MapReduce:并行处理框架,实现任务分解和调度。
2、Hadoop可以用来做什么
  • 搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。(搜索引擎,网页数据处理,商业智能,日志分析,数据挖掘)
3、Hadoop优势
  • 高扩展:理论上可以做到无限,可以通过他的设计框架下增加一些硬件使得性能和容量提升;
  • 低成本:Hadoop借助Google的思想,不依赖高端硬件,只需要普通的PC机堆叠我们的系统;
  • 成熟的生态圈:Hive,Hbase为Hadoop用的更加高效与方便的小工具;

镜像地址

Hadoop生态系统与版本

1、HDFS、MapReduce、开源工具
  • Hive - 轻盈,不需要编写复杂的Hadoop任务程序,只需要学一个SQL语句,Hive就会把你的SQL语句转换成一个Hadoop任务去执行,最大作用是降低使用Hadoop的门槛;
  • Hbase - 存储结构化数据的分布式数据库,和传统的关系型数据库不同,Hbase放弃事务特性,追求更高的扩展。与HDFS不同,Hbase提供了数据的随机读写和实时访问,实现对表数据的读写功能。
  • zookeeper - 监控Hadoop集群里每个节点的状态,管理整个集群的配置,维护节点与节点之间的数据一致性。

HDFS - 文件系统

HDFS的设计架构

1、基本概念
  • 块(Block):固定大小的逻辑单元,HDFS所有文件在存储的时候都是把文件切分成相同大小的块,默认是64MB,块是文件存储处理的逻辑单元,做文件的备份和查找都是块进行处理。
  • NameNode:管理节点,存放文件的元数据,一、文件与数据块的映射表;二、数据块与数据节点的映射表。
  • DataNode:

图解:

  • NameNode是唯一的管理节点,该节点保存大量的元数据,客户查询访问请求,会向NameNode查下元数据,返回的结果就知道这块文件存放在哪一些节点上。于是向这些节点去拿数据块。拿到数据块之后在进行组装拼接之前想要的文件。
Hadoop.png
  • HDFS中数据管理与容错(数据存放有一定的策略,比如说为了保证硬件的容错,数据不能丢失,对于任何一个数据块都是存储三份,三份中两份在同一个机架上,还有一份在另外一个机架上。)
Hadoop-1.png
  • 心跳检测:NameNode和DataNode之间有一个心跳协议,每隔多少秒钟DataNode定期向NameNode发送心跳消息。是不是属于一个Active状态。
Hadoop-2.png
  • 二级NameNode(Secondary NameNode),如果NameNode发生故障,整个元数据就会丢失,为了保证NameNode和元数据不会被丢失,做了一个备份,元数据定期同步到Secondary NameNode上,如果NameNode正常,Secondary NameNode不会接受请求;一旦NameNode发生故障,Secondary NameNode会进行同步,然后进行替换,变成NameNode,保证NameNode的高可用性。
Hadoop-3.png

HDFS读取文件流程

  • 1、客户端向NameNode读写请求,把文件名和路径告诉NameNode;
  • 2、NameNode查询元数据,根据元数据返回客户端;客户端则知道这些文件包含哪些块,以及这些块分别会在哪些DataNode里面能够找到;
  • 3、客户端找到这些DataNode读取Blocks,下载下来之后再进行组装。
Hadoop-4.png

写文件:

  • 1、将文件拆分成64MB的块,通知NameNode;NameNode找到磁盘空间可用的DataNode返回,根据返回的DataNode,客户端对块进行写入;写入第一个块之后通过复制管道进行流水线复制,复制完成后更新元数据。
Hadoop-5.png

HDFS特点

  • 1、数据做了大量冗余,硬件容错;
  • 2、流式数据访问:一次写入多次读取,且写入之后不可修改;
  • 3、适合存储大文件;如果是大量小文件,NameNode压力会非常大;
  • 4、适合数据批量读写,吞吐量高;不适合交互式应用,低延迟很难满- 足。
  • 5、适合一次写入多次读取,顺序读写;不支持多个用户并发写相同文件。

HDFS命令行操作

打印当前HDFS的文件夹:hadoop fs -ls /

启动之前格式化操作:hadoop namenode -format

创建input文件夹:hadoop fs -mkdir input(会在/user/root目录下)

将本地文件提交到HDFS里面:hadoop fs -put hadoop-env.sh input/

打印文件夹内容:hadoop fs -ls /user/root/input/

查看文件内容:hadoop fs -cat input/hadoop-env.sh

下载文件:hadoop fs -get input/hadoop-env.sh hadoop-env2.sh

查看文件系统所有信息:hadoop dfsadmin -report

删除:hadoop fs -rm input/hadoop-env.sh

MapReduce - 并行计算框架

  • 1、MapReduce原理:分而治之,一个大任务分成多个小的任务(map),并行执行后,合并结果(reduce);
Hadoop-6.png

MapReduce的运行流程

1、基本概念
  • Job & Task :一个Job会被拆分成多个Task,一个Task中又分为MapTask和ReduceTask
  • JobTracker :Master管理节点,作业调度,分配任务、监控任务执行进度,监控TaskTracker的状态
  • TaskTracker:执行任务,向JobTracker汇报任务状态

客户端提交任务Job,JobTracker把它放到候选队列中去,在适当的时候,来进行调度选择一个Job出来,将此Job拆分成多个Map任务和Reduce任务,Map任务分发给下面TaskTracker来做。(部署时TaskTracker和HDFS的DataNode是同一组物理机里的,这样保证计算跟着数据走,比如一个任务分到这里刚好所需要的数据就是在本机的DataNode里面,这样的话保证读取数据的开销最小,最快的读到我的数据)

Hadoop-7.png

MapReduce作业执行过程

Hadoop-8.png
2、MapReduce的容错机制
  • 重复执行:默认4次,之后放弃;
  • 推测执行:Map端算完,Reduce才开始;某个节点特别慢,推测出现问题,该计算仍然继续,再找一个TaskTracker和它做同样的事情,谁先算完终止对方,避免执行效率低;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容