暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从头学习Hadoop

程序媛的新被窝 2021-11-07
202



01 Hadoop是什么


Hadoop是一个Apache基金会所开发的分布式系统基础架构。主要解决海量数据的存储和海量数据的分析计算问题,Hadoop生态圈包括HBase、HIVE、Zookeeper等技术。


02 Hadoop的优势


  • 高可靠性

Hadoop底层维护了多个数据副本,即使某一台服务器出现问题,也不会损失数据。

  • 高扩展性

在集群中具有动态的扩展性。比如双11前由于购物量暴增,原来的集群可能无法处理大数据,可以增加服务器在Hadoop集群中动态分配任务数据,不需要宕机和重启,双11过后还可撤走,不影响其他服务器工作。

  • 高效性

受到MapReduce的思想,Hadoop集群可以并行工作,提高效率。


03 Hadoop的组成


Hadoop1.x:Common(辅助工具)、HDFS(数据存储)、MapReduce(计算+资源调度)

Hadoop2.x:Common(辅助工具)、HDFS(数据存储)、MapReduce(计算)、Yarn(资源调度)




  • HDFS

Hadoop Distributed File System,HDFS,是一个分布式文件系统,由三部分构成:NameNode、DataNode和Secondary NameNode。

NameNode(nn):存储数据的元数据,如文件名、文件目录结构、文件属性等,还有每个文件的块列表和块所在的DataNode等。就像是书的目录,起到存放位置的作用。

DataNode(dn):它实际在本地文件系统存储文件块数据,还有块数据的校验和。可以理解为书目录对应的各个内容,是真正存储文件的地方。

Secondary NameNode(2nn):它是nn的一个协作者,负责每隔一段时间对NameNode的元数据备份。


  • YARN

Yet Another Resource Negotiator,Yarn,是Hadoop的资源管理器,主要管理CPU和内存,主要由Resource Manager和Node Manager组成。

Resource Manager(RM):整个集群资源(内存、CPU)的所有者。可以给NM分配资源。

Node Manager(NM):单个节点服务器的所有者。

另外NM内部还有两个概念,ApplicationMaster(AM)Container,AM是在NM中运行一个任务的所有者,并且是在Container中运行的,Container就像是docker中的容器,像一个独立的服务器。

Yarn的工作流程大致是:客户端(可以是多个)对RM进行作业提交,RM给NM分配资源,NM又在内部给Container分配内存和CPU,使任务在AM上完成。集群中可以运行多个AM,每个NM上还可以有多个Container,这也是并行计算的思想。


  • MapReduce


两个阶段,MapRudece。Map负责并行处理输入数据,Reduce负责对Map的结果进行汇总。


  • 三者的工作关系


客服端发起请求到ResourceManager(Yarn),RM给NodeManager中的Container分配资源开启Application Master任务,如果资源分配到位则开启任务,在Container中运行MapTask,这一阶段是并行的操作,也就是Map。并行处理完毕后所有的MapTask都要返回一个结果,把MapTask的结果汇总为ReduceTask中,这是Reduce,并写到实际HDFS中存储数据的DataNode中,此时NameNode也会更新,SecondaryNameNode会进行备份。



04 Hadoop的集群搭建




参考[1]用VMware、Xshell在笔记本上搭建了一个小的hadoop集群,并给他们装上了java和hadoop。



[1] https://blog.csdn.net/m0_46413065/article/details/114847016





文章转载自程序媛的新被窝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论