Hadoop主要应用于海量数据存储 计算 Hadoop主要包含3个组件 HDFS,MapReduce,Yarn HDFS 分析 HDFS是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间 HDFS负责海量数据的分布式存储 HDFS支持主从结构,主节点支持多个NameNode,从节点支持多个DataNode NameNode 负责接收用户请求,维护目录系统的目录结构,DataNode主要负责存储数据 HDFS Shell 使用格式: bin/hdfs dfs -xxx schema://authority/path HDFS的schema是hdfs,authority,NameNode的节点ip和对应的端口号, path是我们要操作的路径信息 -ls 查询指定的路径信息 bin/hdfs dfs -ls dhfs://ssm:9000/ -put 从本地上传文件 -cat 查看hdfs文件内容 -get 下载文件到本地 -mkdir [-p] 创建文件夹 -rm -r 删除文件或文件夹 HDFS 体系结构详解 hdfs包含 NameNode,SecondaryNameNode,DataNode NameNode 整个文件系统的管理节点,主要维护着整个文件系统的文件目录树 文件和目录的云信息,每个文件对应的数据块列表,并且还负责接收用户的操作请求 NameNode主要包含一下文件 fsimage 元数据镜像 快照 edits 用户的操作记录 seed_txid 锁的id version 以上文件保存的路径由hdfs-default.xml中的dfs.namenode.name.dir属性控制 如果文件很大会分割 NameNode实际就是维护两份关系 第一 ,file与block list的关系,对应的关系信息存储在fsimgs和ediss 文件中(当NameNode启动的时候会把文件中的内容加载到内存中) 第二:dataNode与Block的关系(当DataNode启动的时候,会把当前节点上的block信息和节点信息上报到NameNode) SecondaryNameNode 主要负责定期的把edits文件中的内容合并到fsimages中,这个合并的操作称为checkpoingt 在合并的时候会对edits中的内容进行转换,生成新的内容保存到fsimages 文件中 DataNode 提供真实文件数据的存储服务 HDFS会按照固定的大小,顺序对文件进行划分并编号,划分好的一个块 称之为Block,HDFS默认Block大小是128MB HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间 MapReduce 分析 MapReduce是一个编程分布式计算模型,主要用于搜索领域解决海量数据的计算问题, 主要由两个阶段组成 Map和Reduce Map阶段是一个独立的程序,会在很多节点上同时执行,每个节点处理一部分数据 0.读取数据,map处理,分区,排序,copy到reduce 1.覆盖map()函数 Reduce阶段也是一个独立的程序,在先把Reduce理解为一个单独的聚合程序 0.排序,分组,reduce处理 1.覆盖reduce()函数 Yarn 分析 yarm主要负责集群资源的管理和调度,支持主从架构,主节点最多可以有2个,从节点可以有多个 主节点 ResoucesManager 进程主要负责集群资源的分配和管理 从节点NodeManger 主要负责单节点的资源管理 yarn支持3中调度器 fifo Scheduler:先进先出(first in,first out)调度策略 CapacityScheduler:可以看做是FifoScheduler的多队列 FairScheduler:多队列,多用户共享资源
复习充电之Hadoop基础介绍
最新推荐文章于 2024-04-30 09:53:39 发布