HDFS
· 接受客户端的读写服务
· 收集DataNode汇报的block块的列表信息
· 基于内存存储metadata
• 静态信息
• 文件的一般属性
• block信息列表:block偏移量
• 动态信息
• block块以及副本的位置信息(由DataName通过心跳进行上报)
· 持久化
• fsimage
• 将metadata存储在磁盘中
• edits
• 记录对metadata的操作日志
· SecondaryNameNode
• 作用
• 在启动时,帮助NN合并edits log,减少NN的启动时间
• 在运行过程中的合并起到一个中转的作用
• 合并过程
• 启动后,fsimage和edits加载到内存?,合并生成新的fsimage,然后edits清空
• 到达指定时间(比如整点),fsimage和edits加载到SNN中,生成新的fsimage,覆盖到磁盘中,继续将edits清空
· 问题
• NN单点故障
• 内存压力过大,影响拓展性
· HA
• ZKFC
• 监控NN健康状况
• 若主NN挂掉,触发zkfc监听事件,将stand by设置为主
• JournalNodes
• 存储edits操作日志
• NN stand by
• 和JN在指定时间生成fsimage到覆盖到磁盘中,并推送给主NN
· Federation NN联邦制
• 对NN的横向拓展
• 共享DN集群,但记录对应不同文件的信息,相互之间由隔离性
· jdk的安装
· 环境变量的配置
· 免密钥登陆
• ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
• ssh-copy-id nodeX
· hdfs namenode -formate (node01)
· 配置ServiceName的逻辑到物理地址的映射关系
· 配置JNN所在的节点位置,以及这个节点的保存路径
· 自动切换主备状态的代理实现
· 开启zookeeper的自动化转移
· 配置hdfs的访问入口
· 配置zookeeper的访问入口
· client和一个DN连接,将一个block传给DN
· 接到数据DN,连接其他的副本存储的DN,通过pipeline依次传输
· DN向NN汇报block传输完成情况
· DN向client汇报block传输完成情况
· client向NN汇报完成
· 根据block块的偏移量,可寻找block块在文件的位置
· 偏移量根据字节数存储
· 可设置副本数量,尽量不要超过节点数量
· 已上传文件的block块的大小不能调整,副本数量可以调整
· 文件不能写入数据,只能往后追加数据
· 第一个副本:放置在上传文件的DN节点中,若集群外提交则放置空闲节点
· 第二个副本:与第一个副本不同的机架节点
· 第三个副本:于第二个副本相同机架的节点
· 更多副本:随机节点
· 数据保存多个副本
· 数据丢失易恢复
· 计算向数据移动
· 偏移量暴露给框架
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。