• Hadoop总结——Hadoop基础


    一、Hadoop是什么

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构

    主要解决,海量数据的存储和海量数据的分析计算问题

    广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈

    二、Hadoop发展历史

    1)Lucene--Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎 

    2)2001年年底成为apache基金会的一个子项目办法;

    3)对于大数量的场景,Lucene面对与Google同样的困难

    4)学习和模仿Google解决这些问题的办法 :微型版Nutch

    5)Hadoop的思想之源:Google在大数据方面的三篇论文

    6)2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升

    7)2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中

    8)名字来源于Doug Cutting儿子的玩具大象

    9)Hadoop就此诞生并迅速发展,标志这云计算时代来临

    三、Hadoop思想

    1、思考案例

    1T的数据如何实现秒级别的计算?

    回答:分布式并行计算,数据向计算移动

    2、Hadoop思想之源:Google

    主要是面对海量的数据和计算难题

    2.1 Google三驾马车

    1)存储:GFS

    核心功能

    • 存储数据-分布式文件系统
    • 并发写入-顺序写入

    不足与缺陷

    • 缺乏高可用性
    • “至少一次”的弱一致性

    2)计算:MapReduce

    核心功能

    • 数据本地化的并行计算
    • 系统容错和自动恢复

    不足与缺陷

    • 计算模型简单
    • 海量硬盘读写

    3)在线服务:Bigtable

    核心功能

    • 在线服务
    • 高性能随机读写
    • 自动调度和分片

    2.2 开源技术

    1)GFS对应HDFS

    分布式存储系统

    提供了高可靠性、高扩展性和高吞吐率的数据存储服务

    2)Map-Reduce对应MapReduce

    分布式计算框架(计算向数据移动)

    具有易于编程、高容错性和高扩展性等优点

    3)Bigtable对应HBase

    四、Hadoop设计思想

    分布式存储和计算

    分而治之:并行计算

    计算向数据移动

    五、Hadoop三大发行版本

    1)Apache、Cloudera、Hortonworks

    2)Apache版本最原始(最基础)的版本,对于入门学习最好

    3)Cloudera在大型互联网企业中用的较多

    4)Hortonworks文档较好

    六、Hadoop优势

    高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失

    高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点

    高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度

    高容错性:能够自动将失败的任务重新分配

    七、Hadoop组成

    1、概述

    1.1 Hadoop 1.X组成

    1. HDFS
    2. MapReduce
    3. Common

    1.2 Hadoop 2.X和Hadoop 3.X组成

    1. HDFS
    2. MapReduce
    3. YARN
    4. Common

    1.3 HDFS

    一个高可靠、高吞吐量的分布式文件系统

    1.4 MapReduce

    一个分布式的离线并行计算框架

    1.5 YARN

    资源调度平台,负责作业调度与集群资源管理的框架

    1.6 Common

    Hadoop体系最底层的一个模块,为Hadoop各子项目提供支持其他模块的工具模块,如:配置文件和日志操作等。

    2、HDFS架构概述

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

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

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

    3、MapReduce架构概述

    MapReduce将计算过程分为两个阶段:Map和Reduce

    1)Map阶段并行处理输入数据

    2)Reduce阶段对Map结果进行汇总

    4、YARN架构概述

    ResourceManager(RM):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度

    NodeManager(NM):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令

    ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错

    Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息

  • 相关阅读:
    补涨龙的底层逻辑和应用
    golang gorm 增删改查以及使用原生SQL(以操作mysql为例)
    【Python】正则表达式判断是否存在连续N个字母
    8-4交换排序-冒泡排序
    Windows10出现WIFI蓝牙图标消失,网卡驱动出现感叹号等无法上网的情况解决方案
    瑞芯微RKNN开发·yolov5
    Kubernetes控制平面组件:API Server
    Java#10(String 类的构造方法和练习)
    源码深度剖析Spring Bean标签的解析及注册
    前段入门-CSS
  • 原文地址:https://blog.csdn.net/qq_41544550/article/details/127938319