hdfs的设计思想
1)分块存储
默认128M hadoop2
太大 负载不均衡
太小 namenode的压力过大
注意: 一个块 不够128M 单独成一个块
200M
2)冗余存储
默认每一个块 3个副本 每一个块 总共存储3份
副本: 相同地位 互为副本 没有优先级
注意:
1)同一个块的不同副本 存储在不同节点的
2)默认副本3个 有一个宕机了 复制出来一个
3)默认副本3 宕机 启动 副本4个 删除
4)默认副本3 2个节点 存储2个 剩下一个记账
hdfs的架构 :
总:一主多从
主:
namenode :
1)存储元数据信息
元数据:描述数据的数据 描述的datanode存储的数据的数据
类似于 目录
1)抽象目录树
2)数据和块的对应关系
3)块的存储位置
目录:自己配置的 hdfs-site
2)接受客户端的读写请求
从:
datanode :
1)真正的存储数据
按照块进行存储的 每一个数据块 id
/home/hadoop/data/hadoopdata/data/current/BP-1453129122-192.168.191.201-1556592207649/current/finalized/subdir0/subdir0
2)真正的处理客户端的读写请求的
助理:
secondarynamenode:
1)备份namenode的元数据信息的
2)帮助namenode减轻压力的
hdfs的优缺点:
缺点:
1)延迟性高 离线 磁盘落地
2)不适合大量小文件存储
1)namenode压力过大
2)寻址时间过长
3)不支持文件修改 支持追加
优点:
批量
离线
流式访问
hdfs的使用
shell
==========================
命令行
在hadoop集群中的任意一个节点都可以启动命令行
hadoop fs
hadoop 启动hadoop的客户端 连接hadoop集群
fs 打开hadoop的(文件系统)filesystem的客户端
命令集合:
-真正的执行命令
[-appendToFile … ]
[-cat [-ignoreCrc] …]
[-checksum …]
[-chgrp [-R] GROUP PATH…]
[-chmod [-R] <MODE[,MODE]… | OCTALMODE> PATH…]
[-chown [-R] [OWNER][:[GROUP]] PA