Hadoop笔记
Hadoop2.6.0是一种适合海量数据的分布式存储和分布式计算平台,有四个优点:高可靠性,高扩展性,高效性,高容错性。
Hadoop有三大组件构成:1.hdfs 2.mapreduce 3.yarn
HDFS
hdfs是一个分布式存储框架,适合存储海量数据,它是主从结构,有namenode,secondary namenode,datanode;
其中主节点namenode是最多有两个(其中一个是备份,并且不会放在一个集群里):
主节点主要负责接收用户操作请求,维护目录结构,存储元数据。主节点的文件如下:
fsimage:元文件镜像(存储某一时段的namenode内存元数据连接)
edits(操作日志文件,namenode启动后新增的操作信息)
fstime(最近一次checkpoint的时间。
secondarynamenode负责将fsimage载入内存并合并edits。
datanode提供真实文件存储服务,其中的文件块(block),编号从0开始,每块128M,尽量均匀的分布在各个datanode上,与其他文件系统不同的是如果最后文件不满128M,并不会占用一整个block。
!如果集群崩掉了,再次开始时,有错误,应该去/usr/local/soft/hadoop-2.6.0/tmp/dfs/data/current目录下,vi VERSION,将DataNode的集群ID与namenode的clusterID=XXXXXXXXXX 集群id同步
机架感知:将副本存在不同的节点,根据网络拓扑的远近来决定读取哪个副本。并且一个节点崩掉,并不会影响数据。
客户端第一步先访问namenode,获取blk的列表。
第一步:选择网络延迟,网络拓扑离客户端最近的一个。
第二步:客户端会直接从datanode上读取数据。