Hadoop 学习札记(二)

Hadoop 学习笔记(二)HDFS基于Google GFS的论文提供冗余数据存储数据被分散到整个集群一次写入,多次读取HDF

Hadoop 学习笔记(二)
HDFS
基于Google GFS的论文
提供冗余数据存储
数据被分散到整个集群
一次写入,多次读取
HDFS基于现有文件系统之上的
文件的存储单位为Block,默认64MB一块,每个块默认保存3份

NN
NameNode主要功能提供名称查询服务,它是一个jetty服务器
NameNode保存metadate信息包括
文件owership和permissions
文件包含哪些块
Block保存在哪个DataNode(由DataNode启动时上报)
NameNode的metadate信息在启动后会加载到内存
metadata存储到磁盘文件名为”fsimage”
Block的位置信息不会保存到fsimage

DN
保存Block
启动DN线程的时候会向NN汇报block信息
通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN

Block的副本放置策略
第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点
第二个副本:放置在于第一个副本不同的机架的节点上
第三个副本:与第二个副本相同集群的节点
更多副本:随机节点

Block
设置一个Block 64MB,如果上传文件小于该值,仍然会占用一个Block的命名空间(NameNode metadata),但是物理存储上不会占用64MB的空间
Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的

HDFS 文件权限
与Linux文件权限类似
r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容
如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan
HDFS的权限目的:阻止好人错错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁

三种运行模式
单机版
所有的程序(NN JT DN TT)运行于同一个JVM中,HDFS为本地文件系统
伪分布式
所有的程序运行于同一台机器的独立JVM中
分布式
不同程序运行于不同节点中,通常Master运行NN和JT,Slave机器运行DN和TT