Hadoop——(Hadoop框架,Hadoop的优缺点,Hadoop1.x和2.x的版本区别,Hadoop架构,Hadoop目录结构)

大数据的简介

  1. 大数据是指无法再一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,同时大数据也是需要新的处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量以及多样化的信息资产。
  2. 大数据的特点:大量,高速,多样,真实以及低价值。
    1. 大量:指的是采集,存储和计算的数据量都非常大。
    2. 高速:指的是在大数据时代,数据的创建,存储,分析都被要求高速处理,比如电商网站的个性化推荐尽可能要求实时完成推荐,这也是大数据区别于传统数据挖掘的显著特征。
    3. 多样:数据的形式和来源多样化,包括结构化,半结构化和非结构化数据,具体表现为网络日志,音频,视频,图片,地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
    4. 真实:确保数据的真实性,才能保证数据分析的正确性。
    5. 低价值:数据价值密度相对较低,互联网催生了海量数据,但是价值密度较低,如何结合业务罗杰并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。

Hadoop框架

Hadoop是什么?

  1. Hadoop是一个由Apache基金会开发的一套分布式存储和计算平台。
  2. Hadoop主要解决海量数据的存储以及分析计算问题。
  3. 狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他的软件框架。

hadoop 生态系统

  1. hadoop生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架。
Hadoop生态系统简介
Hadoop(HDFS(分布式文件系统) + MapReduce(分布式计算框架) + Yarn(资源协调框架)+Common模块)Hadoop,最底层的部分
Zookeeper一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务
Hive基于Hadoop的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表,并提供简单的sql 查询功能,可以将sql语句转换为MapReduce任务进行运行。
Hbase一个海量列式非关系型数据库, 利用Hadoop HDFS作为其存储系统。
Flume一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输数据采集工具。
SqoopETL工具,将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Kafka高吞吐消息中间件等。

Hadoop的特点

  1. 扩容能力(Scalable):Hadoop是再计算机集群内分配数据并完成计算任务, 群可以方便的扩展到数以千计个节点。
  2. 低成本(Economical):Hapoop通过普通廉价的机器组成服务器集群来分发以及处理数据,成本很低。
  3. 高效率(Efficient):Hapood可以在节点之间动态并行的移动数据,速度很快。
  4. 可靠性(Rellable):能自动维护数据的多份复制,并且在任务失败后能自动的重新部署(redeploy)计算任务。
    在这里插入图片描述

Hadoop的发行版本

  1. Hadoop发行版本非常多,有Cloudera发行版(CDH)、Hortonworks发行版、华为发行版、Intel发行版等,所有这些发行版均是基于Apache Hadoop衍生出来的。
  2. 目前Hadoop常用的三个版本分别是:
    1. Apache Hadoop版本(最原始的,所有发行版均基于这个版本进行改进)
    2. Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)
    3. Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。

Hadoop的各个发行版本的特点

  1. Apache Hadoop 原始版本(官网地址:http://hadoop.apache.org/)
    1. 拥有全世界的开源贡献,代码更新版本比较快,需要注意版本的升级,版本的维护,以及版本之间的兼容性。
  2. 软件收费版本ClouderaManager CDH版本 --生产环境使用(官网地址:https://www.cloudera.com/)。
    1. Cloudera是是美国一家大数据公司在Apache开源Hadoop的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题。
  3. 免费开源版本HortonWorks HDP版本--生产环境使用(官网地址:https://hortonworks.com/)。
    1. hortonworks主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,核心产品软件HDP(ambari),
    2. HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面管理我们的集群状态.
    3. web管理界面软件HDF网址(http://ambari.apache.org/)

Apache Hadoop版本更迭

  1. 0.x 系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本
  2. 1.x 版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等
  3. 2.x 版本系列:架构产生重大变化,引入了yarn平台等许多新特性
  4. 3.x 版本系列:EC技术、YARN的时间轴服务等新特性

Hadoop的优缺点

Hadoop的优点

  1. 高可靠性:Hadoop底层维护多个数据副本,即使Haadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
  2. 高扩展性:Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中。
  3. 高效性:Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快
  4. 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配

Hadoop的缺点

  1. Hadoop不适用于低延迟数据访问。
  2. Hadoop不能高效存储大量小文件。
  3. Hadoop不支持多用户写入并任意修改文件。

Hadoop1.x和2.x的版本区别

  1. Hadoop1.x中,MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。
  2. Hadoop2.x中,增加了Yarn,将业务逻辑运算和资源调度分开了,Yarn只负责资源的调度,MapReduce只负责运算。
    在这里插入图片描述

Hadoop架构

Hadoop之HDFS概述

  1. HDFS即(Hadoop Distribute File System )分布式文件系统,具有高可靠、高吞吐量的特性。

  2. 比如:100T数据存储,采用“分而治之”的思想,进行数据切割,100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块

  3. HDFS主要用于数据切割,制作副本,分散存储。
    在这里插入图片描述

  4. NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

  5. DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验.

  6. SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。

  7. NN,2NN,DN这些既是HDFS角色名称,也是进程名称,代指电脑节点名称

Hadoop之MapReduce

  1. Hadoop MapReduce,是分布式的离线并行计算框架,用于拆解任务,分散处理,汇整结果。
  2. MapReduce计算过程分为两个阶段:Map阶段 和 Reduce阶段
    1. Map阶段就是“分”的阶段,并行处理输入数据;
    2. Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总;
      在这里插入图片描述

Hadoop之Yarn

  1. Hadoop Yarn即(资源协调框架):作业调度与集群资源管理的框架。在这里插入图片描述

  2. ResourceManager(rm)主要作用如下:

    1. 处理客户端请求
    2. 启动/监控ApplicationMaster、
    3. 监控NodeManager
    4. 资源分配与调度;
  3. NodeManager(nm)主要作用如下:

    1. 单个节点上的资源管理
    2. 处理来自ResourceManager的命令
    3. 处理来自ApplicationMaster的命令;
  4. ApplicationMaster(am)主要作用如下:

    1. 数据切分.
    2. 为应用程序申请资源,并分配给内部任务.
    3. 任务监控与容错。
  5. Container主要作用如下:

    1. 对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
  6. ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。 在这里插入图片描述

  7. Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

Hadoop目录结构

  1. bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
  2. etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
  3. lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
  4. sbin目录:存放启动或停止Hadoop相关服务的脚本
  5. share目录:存放Hadoop的依赖jar包、文档、和官方案例

正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?

  1. NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
  2. SecondaryNameNode:它不是namenode的冗余守护进程,而是提供周期检查点和清理任务,帮助NN合并editslog,减少NN启动时间
  3. DataNode:它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程
  4. ResourceManager(JobTracker):JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
  5. NodeManager:(TaskTracker)执行任务。
  6. DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入zookeeper。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为ActiveNN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
  7. JournalNode:高可用情况下存放namenode的editlog文件。
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值