我们生活在一个数据大爆炸的时代,数据飞快的增长,急需解决海量数据的存储和计算问题
Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。
Hadoop适合海量数据 分布式存储 和 分布式计算
2.Hadoop发行版介绍Apache Hadoop:官方版本,开源
Cloudera Hadoop(CDH):商业版本,对官方版本做了一些
优化,提供收费技术支持,提供界面操作,方便集群运维管理
HortonWorks(HDP):开源,提供界面操作,方便运维管理
3.Hadoop3.x的改变Java改为支持8及以上
多重服务默认端口变更
MR任务级本地优化
HDFS支持纠删码
HDFS支持多NameNode
Hadoop主要包含三大组件:HDFS+MapReduce+YARN
HDFS负责海量数据的 分布式存储
MapReduce是一个计算模型,负责海量数据的 分布式计算
YARN主要负责 集群资源的管理和调度
HDFS是一种允许文件通过网络在多台主机上分享的文件系统
可以让多台机器上的多个用户分享文件和存储空间
分布式文件管理系统有很多,HDFS只是其中一种实现
HDFS(Hadoop Distributed File System)
HDFS不适合存储小文件
HDFS体系结构
HDFS支持主从结构,主节点称为 NameNode ,支持多个
从节点称为 DataNode ,支持多个
HDFS中还包含一个 SecondaryNameNode 进程
NameNode介绍
NameNode是整个文件系统的管理节点
它主要维护着整个文件系统的文件目录树,文件/目录的信息
每个文件对应的数据块列表,并且还负责接收用户操作请求
SecondaryNameNode介绍
主要负责定期的把edits文件中的内容合并到fsimage中
这个合并操作称为checkpoint,在合并的时候会对edits中的
内容进行转换,生成新的内容保存到fsimage文件中
注意:在NameNode的HA架构中没有SecondaryNameNode
进程,文件合并操作会由standby NameNode负责实现
DataNode介绍
提供真实文件数据的存储服务
HDFS会按照固定的大小,顺序对文件进行划分并编号,划分
好的每一个块称一个Block,HDFS默认Block大小是 128MB
HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间
HDFS的回收站
回收站中的数据都会有一个默认保存周期,过期未恢复则会被
HDFS自动彻底删除
HDFS的回收站默认是没有开启的,需要修改coresite.xml中的 fs.trash.interval 属性
HDFS的安全模式
集群刚启动时HDFS会进入安全模式,此时无法执行写操作
查看安全模式:hdfs dfsadmin -safemode get
离开安全模式:hdfs dfsadmin -safemode leave
HDFS的HA,表示一个集群中存在多个NameNode,只有一个NameNode是 Active 状态,其它的是 Standby 状态
ActiveNameNode(ANN)负责所有客户端的操作,StandbyNameNode(SNN)用来同步ANN的状态信息,以提
供快速故障恢复能力
使用HA的时候,不能启动SecondaryNameNode,会出错



