HDFS定义
HDFS(Hadoop Distributed File System)是一个分布式文件管理系统。
使用场景
适合一次写入,对此读出场景,不支持修改,仅支持追加
HDFS就是一个大硬盘
优点
缺点
HDFS组织架构
HDFS文件块大小
HDFS文件块大小主要取决于硬盘传输速率
目前硬盘传输速率100MB/S,寻址时间约为10ms,寻址时间为传输时间1%最好。因此一个块约为128M。
块太小增加寻址时间;块太大处理数据非常慢。
Hadoop Shell操作
基本语法
bin/hadoop fs 具体命令 OR bin/hdfs dfs具体命令
上传 -put
hadoop fs–put License.txt / 把License.txt复制到根目录
浏览器打开节点,Utilities 下,浏览系统文件 输入/ 可以看到License.txt
下载 -get
hadoop fs -get /sanguo/shuguo/kongming.txt ./
Hadoop直接操作
hadoop fs -Linux操作命令
-ls: 显示目录信息 hadoop fs -ls /
-mkdir 创建目录 hadoop fs -mkdir -p /sanguo/shuguo
-setrep:设置HDFS中文件的副本数量(是否真的会有这么多副本,还得看DataNode的数量)
NameNode和SecondaryNameNode工作机制
NameNode中的元数据村吃在内存中
为了防止丢失,产生在硬盘中备份元数据的FsImage。
为了提高效率,避免丢失,引入Edits文件,只可进行追加操作。元数据更新时把元数据追加到Edits.
定期合并Edits与FsImage。引入新的2NN来作为合并的辅助。
DataNode工作机制
(1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
(2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
(3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
(4)集群运行中可以安全加入和退出一些机器。
添加新的虚拟机到集群
详见教程
删除集群中旧的虚拟机
添加白名单,退役黑名单,集群的再平衡
详见教程
网友评论