伪分布式模式
(1)Hadoop安装在一台计算机上,需要修改相应的配置文件,用一台计算机模拟多台主机的集群。
(2)需要启动HDFS和YARN,是相互独立的Java进程。
(3)MapReduce运行处理数据时是每个作业一个独立进程,输入输出使用分布式文件系统。
(4)用来进行学习和开发测试Hadoop程序的执行是否正确。
完全分布式模式
(1)在多台计算机上安装JDK和Hadoop,组成相互连通的集群,需要修改相应的配置文件。
(2)Hadoop的守护进程运行在由多台主机搭建的集群上。
真正的生产环境。
Hadoop 优点
(1)扩容能力强:Hadoop是在可用的计算机集群间分配数据并完成计算任务,这些集群可以方便地扩展到数以千计的节点。
(2)成本低:通过普通廉价的计算机组成服务器集群来分发以及处理数据,相比使用大型机乃至超级计算机成本低很多。
(3)高效率:通过并发数据,Hadoop可以在节点之间动态并行处理数据,使得处理速度非常快。
(4)高可靠性:能自动维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务。
Hadoop的核心组件——HDFS
HDFS 定义
HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。适合一次写入,多次读出的场景,不支持文件修改,可以过来做数据分析。
优点:
(1)容错性高:主要有多个副本
(2)适合处理大数据:数据规模 可达到 PB级别,文件量能够处理百万这个量级
(3)可构建在廉价机器上
缺点:
(1)数据访问有延时,做不到毫秒级别的
(2)大量小文件不能高效存储,NameNode会占用大量内存
(3) 可追加写入,不可随机修改,不支持并发写入(不支持多线程写入)
HDFS架构图
相关组件的介绍
NameNode
名称节点,HDFS的管理者。
(1)管理HDFS的名字空间,维护管理所有文件的元数据。
(2)管理DataNode上的数据块,决定文件数据块存储到哪个DataNode。
(3)处理客户端的读写请求。
(4)按用户确定的副本策略管理HDFS中数据的副本
DataNode(数据节点)
负责存储数据。
(1)存储实际的数据块,每个HDFS数据块默认大小为128MB,存储在本地文件系统的单独文件中。
(2)处理客户端的读写请求,执行数据块的读和写。
(3)向 NameNode 定期汇报数据块信息,并定时向 NameNode 发送心跳信号保持联系。
FSImage和edits文件
(1)FSImage文件存储文件的元数据,HDFS运行时会将该文件加载到内存中。