• 大数据基础之hdfs2


    1、HDFS下载文件原理

    1、请求
    2、创建client
    DFS –>DFSClient
    3、建立RPC通信
    4、得到代理对象proxy,通过代理对象请求得到文件元信息
    5、查找元信息
    6、返回元信息
    7、创建输入流
    8、下载数据块
    FSDataInputStream
    9、整合下载文件

    注意:HDFS维护失败列表

    2、安全模式 safe mode

    检查副本率是否满足配置要求。副本率不够的时候,会水平复制,当下次那个挂掉的节点如果又活过来的话,副本数就会超过N了,就超了,系统会自动选一个多余的副本删掉
    (1)冗余度:dfs.replication 3.有几个冗余的副本
    hdfs-site.xml

    <!--注释配置数据块的冗余度,默认是3-->
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>

    (2)副本率:数据块实际冗余度(M),HDFS配置的数据块应该具有的冗余度(N)
    M/N*100%;
    例如:知否知否.avi M=2;HDFS配置的 N=3;
    2/3=0.667。要求的副本率为 0.99,系统会水平复制数据块到其他节点
    如果是副本率过高,M=6,N=3,副本率=2;大于0.99.系统会删除多余的数据块
    在安全模式下 无法操作HDFS,因为正在进行副本率的检查工作
    进入或查看安全模式的命令:
    hdfs dfsadmin -safemode get/enter/leave/wait

    3、快照:是一种备份,默认:HDFS快照是关闭

    一般不建议使用
    快照的本质:将需要备份的数据放到一个隐藏目录下
    (1)开启和关闭快照

    hdfs dfsadmin -allowSnapshot <snapshotDir>
    hdfs dfsadmin -disallowSnapshot
    hdfs lsSnapshottableDir //查看开启快照的所有文件夹

    (2)创建快照
    需要创建快照的目录 快照目录的名字
    hdfs dfs -createSnapshot /test1 backup_test1_20190216
    快照打出的日志:
    Created snapshot /test1/.snapshot/backup_test1_20190216
    (3)删除快照
    hdfs dfs -deleteSnapshot /test1 backupt1_test1_20190216
    (4)恢复快照
    hdfs dfs -cp /test1/.snapshot/backup_test1_20190216/a.txt /test1

    4、回收站:默认HDFS的回收站禁用

    (1)回收站的配置:
    core-site.xml fs.trash.interval(时间间隔 分钟)
    关闭集群后才能起作用

    <!--配置回收站,单位是分钟,默认是0-->
    <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
    </property>

    (2)本质是剪切:回收站开启之后,会把删除的文件放到一个/user/root/.Trash/Current
    (3)回收站恢复也就是粘贴的过程
    hdfs dfs -cp /user/root/.Trash/Current /

    5、配额:Quota

    (1)名称配额
    限定HDFS目录下,存放文件(目录)的个数>1,最多存放N-1个
    setQuota–指定名称配额
    clrQuota–清除名称配额
    例如:
    hdfs dfs -mkdir /myquota1
    hdfs dfsadmin -setQuota 3 /myquota1
    hdfs dfs -put ~/a.txt /myquota1—-第1个
    hdfs dfs -put ~/student01.txt /myquota1–第2个
    hdfs dfs -put ~/students01.txt /myquota1—第3个 无法放
    错误:put: The NameSpace quota (directories and files) of directory /myquota1 is exceeded: quota=3 file count=4
    (2)空间配额 –必须要大于 默认数据块大小
    setSpaceQuota
    clrSpaceQuota

    6、HDFS底层原理-RPC

    Remote Procedure Call:远程过程调用,调用代码不在本地执行,实现调用者与被调用者之间的连接和通信
    基于Client server,相当于 DFSClient 相当于客户端。Namenode集群相当于Server

    7、HDFS底层原理-代理对象Proxy

    (1)代理—明星的经纪人
    是一种设计模式,提供了对目标对象的另一种访问方式。通过代理对象访问目标对象
    (2)代理分为静态代理和动态代理
    a、静态代理:接口的定义 实现接口,被代理对象与对象实现相同的接口
    b、动态代理:接口的定义 不需要实现接口(匿名内部类+反射 invoke)

    8、RPC与Proxy程序示例

    针对log4j warn
    log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    可以在src/resource/通过 增加 log4j.properties解决

  • 相关阅读:
    谈一下ACM的入门书籍及方法
    acm总结帖_By AekdyCoin
    楼天城楼教主的acm心路历程
    弱校ACM奋斗史
    【转】编程的浅学习与深学习
    HDOJ 1047 Integer Inquiry (大数)
    【链性栈】表达式求值
    【链性栈】基本链性栈的实现
    Beta冲刺博客
    Alpha项目测试
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10403441.html
Copyright © 2020-2023  润新知