hadoop学习hdfs笔记

1.hadoop架构模型

hdfs集群   访问地址http://ip:50070/

  • namenode:集群当中的主要节点,主要用于管理集群当中的各种数据; 管理元数据,存在内存中;管理客户端对文件读写请求,决定文件写在哪里,副本存储什么位置;
    • 元数据信息保存在 edits,FSImage
  • secondaryNameNode:对hadoop当中的原属句信息辅助管理  元数据的,定期合并edits,FSImage,合并条件:默认时间1小时,大小64M
    • secondaryNameNode通知Name奇幻editLog
    • 获得FSImage和editlog(通过http方式)
    • FSImage载入内存,然后开始合并editlog,合并之后成为新的fsimage
    • 心的fsimage发送给namenode
    • namenode用新的fsimage替换就的fsiname
    • 更新fstimae,hadoop进入安全模式
  • datanade:集群的从节点,主要存贮数据,负责文件内容的读写,文件内容不经过namenode;文件以block块存在磁盘,大小推荐128M,可以在hdfs-site.xml指定。如果一个文件是200M,需要两个block存储,占用磁盘空间大小为200M,不是256M
<property>
        <name>dfs.block.size</name>
        <value>131072</value>//块大小 以KB为单位
</property>

元数据信息保存在 edits,FSImage,在hdfs-site.xml中配置存储路径

<property>
         <name>dfs.namenode.name.dir</name>
         <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value>
        </property> 
<property>
        <name>dfs.namenode.edits.dir</name>
        <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value>
</property> 

edits: 客户端对hdfs的写入和更新,先记录在edits文件中,edits更新后客户端才能看到最新信息;

fsimage:是namenode中的元数据完整镜像(又称检查点),内容多,加载内存生成拓扑树,耗内存和cpu;

yarn集群  http://ip:8088/cluster

resourcemanager:接受用户的计算请求任务,并负责集群的资源分配 (主节点)

nodemanager:负责执行主节点AppMaster分配任务 (从节点)

AppMaster:resourceManager为每个计算任务启动一个AppMaster,AppMaster主要负责资源的申请,任务的分配

 JobHistoryServer:查看集群指定的任务  http://ip:19888/jobhistory

注意:因为hadoop给出的安装包没有提供带c程序的访问接口,在使用本地库的时候会出问题,所以要先编译才能使用

hdfs写入过程

  • clienct其上传文件请求,namenode返回文件是否可以上传
  • client请求第一个block传送到哪些datanade-
  • namenode返回可上传namenode地址
  • client请求3台中一台a,上传数据(以packet数据包在pipeline上依次传输),然后在a传输到b,b传输到c
  • 传输完成后返回cack确认机制,继续上传后面的block知道全部上传完毕关闭文件流

hdfs读取过程

  • client发起rpc请求
  • namenode判断权限后返回文件的全部或部分包含block和副本的datanode地址列表,(距离client进的排在前面)
  • client根据地址列表读取文件,本质上建立 Socket Stream(FSDataInputStream),重复的调用父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕;(read是并行读取)
  • 读取完后进行checksum验证,如果读取失败,就读取副本
  • 读取文件完成后合并成一个完整的文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值