Hadoop入门

1T 文件,数字,行存储 => 排序

传统方法

  • 第一种方法:判断每一行的所属范围[0,100][101,200],取出一小部分数据[0,100]排序,放入文件

  • 第二种方法:分成N多个文件,文件内部有序,文件之间归并排序

  • 瓶颈:单机处理文件太大

大数据 采用多台服务器运算

  • 化整为零,并发执行=>Hadoop

  • 每个服务器都有自己的数据。现在要把相同的数据放在一起,涉及不同服务器之间的数据迁移,成本较高。

  • 数据迁移=>计算向着数据移动 => MR

  • 文件的切割管理规范:自己知道文件块怎么划分的=>HDFS

HDFS存储模型(字节)

  • 文件线性分割成块Block,偏移量offset

  • 一个汉字两个字节,这俩字节被分割开了怎么办??????????????????????

  • 分散存储在集群节点中

  • Block可以设置副本数,副本无序分散在不同节点中

架构模型(主从)

  • 文件元数据MetaData(blockSize offset 副本);文件数据(数据本身)

  • 主NameNode节点保存文件元数据:单节点

  • 从DataNode节点保存Block数据:多节点

  • 主从保持心跳

  • HdfsClient与NameNode和DataNode交互。大数据架构基本都是B/S

  • DataNode利用服务器本地文件系统存储数据块

持久化

NameNode

  • 基于内存存储:不会和磁盘发生交换

  • 持久化(单向 内存溢写)

  • 服务器重启的时候用持久化数据

  • block位置信息持久化不存。block所在节点挂了,这时候利用持久化数据就会出问题,所以还是通过心跳机制靠谱

  • 持久化方式一: metadata存储到磁盘文件名为“fsimage”(序列化与反序列化方式)。序列化慢 恢复块

  • 持久化方式二: edits记录对metadata的操作日志…>Redis。 持久化快 恢复慢

  • 两者合并:https://www.cnblogs.com/Coeus-P/p/13229410.html

SecondaryNameNode

  • 它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间
posted @ 2020-07-03 11:48  Loading~  阅读(126)  评论(0编辑  收藏  举报