Hadoop分布式存储框架
相关课程:https://www.bilibili.com/video/BV1Qp4y1n7EN
博客相关专栏,这哥们都总结了:https://blog.csdn.net/wlh2220133699/category_12456964.html
学习大数据之前,需要掌握如下技能:Java基础、Maven、Linux
维基百科:https://zh.wikipedia.org/wiki/Apache_Hadoop
文档地址,需要手动选版本:https://hadoop.apache.org/docs/
下载地址:https://hadoop.apache.org/releases.html,下载 binary
二进制文件就好
介绍
狭义上Hadoop指的是Apache软件基金会的一款开源软件,用Java语言实现,允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理
广义上Hadoop指的是围绕Hadoop打造的大数据生态圈
Hadoop核心组件:
Hadoop HDFS(分布式文件存储系统)
:解决海量数据存储。HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位Hadoop YARN(集群资源管理和任务调度框架)
:解决资源任务调度(这里的资源指的是CPU、内存等调度)。YARN作为分布式通用的集群资源管理系统和任务调度平台,支撑各种计算引擎运行
,保证了Hadoop地位Hadoop MapReduce(分布式计算框架)
:解决海量数据计算。MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端,导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据。MapReduce
简称为MR
特性优点
scalability
(扩容能力):Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可方便灵活的方式扩展到数以干计的节点。Economical
(成本低):Hadoop集群允许通过部署普通廉价的机器组成集群来处理大数据,以至于成本很低。看重的是集群整体能力。efficiency
(效率高):通过并发数据
,Hadoop可以在节点之间动态并行
的移动数据,使得速度非常快。reliability
(可靠性):能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。
商业发行版
Cloudera:https://www.cloudera.com/open-source.html#
Hadoop 2.0版本比1.0版本新增了 YARN
和对其他计算框架的支持,3.0和2.0比较起来,只是性能更优化了
集群概述
Hadoop集群包括两个集群:HDFS集群
和 YARN集群
两个集群 逻辑上分离,物理上在一起
两个集群都是标准的 主从架构
集群
HDFS集群
HDFS集群
是一个分布式存储系统
主要角色是 NameNode
简称 NN
,次要角色是 DataNode
简称 DN
,主要角色的辅助角色是 SecondaryNameNode
简称 SNN
例如有三台服务器,分别是 node1、node2、node3
我们的最终目的就是把上面的三个角色都部署起来,因为这些角色都是各自独立
的进程
例如我在 node1机器 上部署一个 NN
,在 node2机器 上部署 SNN
,然后在node1、node2、node3这三台机器上都部署 DN
这样就形成了一主三从外加一个秘书的HDFS集群
YARN集群
YARN集群
主要负责资源管理和调度
主要角色是 ResourceManager
简称 RM
,次要角色是 NodeManager
简称 NM
承接上面的HDFS集群内容,我现在再在 node1机器 上部署一个 RM
,然后在node1、node2、node3这三台机器上都部署 NM
这四个角色就组成了另外一个集群,也就是 YARN集群
到这里,Hadoop集群就出现了,Hadoop集群必须是 HDFS集群
+ YARN
集群
逻辑上分离指的是两个集群之间没有依赖关系,物理上在一起的意思是这些进程很大可能部署在同一个机器上
MapReduce是计算框架、代码层面的组件,没有集群的说法