大数据学习_Hadoop

Hadoop简介

Hadoop是什么?

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

Hadoop发行版本

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

Hadoop优缺点

Hadoop的优点

  • 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
  • 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
  • 高效性:能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具
    有高效性。
  • 高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。
    Hadoop的缺点
  • Hadoop不适用于低延迟数据访问。
  • Hadoop不能高效存储大量小文件。
  • Hadoop不支持多用户写入并任意修改文件。

Apache Hadoop的重要组成

Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块

  1. Hadoop HDFS:(Hadoop Distribute File System)一个高可靠、高吞吐量的分布式文件系统。
    作用:数据切割、制作副本、分散储存
    比如:100T数据存储,分:拆分–>数据切割,100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块。
    在这里插入图片描述
  • Client:客户端,文件上传 HDFS 的时候,客户端将文件切分成一个一个的Block,然后进行存储。与NameNode交互,获取文件的位置信息。与DataNode交互,读取或者写入数据。Client提供一些命令来管理HDFS,比如启动或者关闭HDFS,Client可以通过一些命令来访问HDFS。
  • NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副
    本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
  • SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台
    程序,每隔一段时间获取HDFS元数据快照。
  • DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验
  1. Hadoop MapReduce:一个分布式的离线并行计算框架
    作用:拆解任务、分散处理、汇整结果
    MapReduce计算 = Map阶段 + Reduce阶段。Map阶段就是“分”的阶段,并行处理输入数据;Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总。
    在这里插入图片描述
  2. Hadoop YARN:作业调度与集群资源管理的框架
    作用:计算资源协调
    在这里插入图片描述
  • ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
  • NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
  • ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
  • Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
    总结:ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。
  1. Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

猜你喜欢

转载自blog.csdn.net/qq_41612830/article/details/113102740