zoukankan      html  css  js  c++  java
  • hadoop多节点配置,压缩,序列化,快照,回收站

    节点的多目录配置:
    --------------------------------------
      namenode:配置两个文件夹为工作目录(容错) //两文件夹数据相同
      datanode:配置两个文件夹为工作目录(扩容) //两文件夹数据不同

    namenode配置:hdfs-site.xml
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/name,file://${hadoop.tmp.dir}/dfs/name2</value>
    <description>以逗号分隔的路径列表,用于冗余(提供备份) </description>
    </property>

    datanode配置:hdfs-site.xml
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/data,file://${hadoop.tmp.dir}/dfs/data2</value>
    </property>

    之后将/soft/hadoop/etc文件夹进行分发

    格式化文件系统:
      1、停止所有进程:stop-all.sh
      2、删除/soft/hadoop/logs
      3、删除~/hadoop
      4、hdfs namenode -format

    启动:start-dfs.sh

    容错和容灾:
    ------------------------------------
    容错:能够容忍故障的发生,正常对外提供服务
    容灾:对火灾、断电等一切不可抗因素有恢复能力

    配额:
    -------------------------------------
    目录配额:限定目录能存放的文件个数(限于整个目录树,包括当前目录)
    hdfs dfsadmin -setQuota 3 data
    hdfs dfsadmin -clrQuota data

    空间配额:限定目录能够存放的文件总大小(计算块大小x副本数)
    hdfs dfsadmin -setSpaceQuota <quota> <dirname>...<dirname>
    hdfs dfsadmin -clrSpaceQuota <dirname>...<dirname>


    查看hadoop命令帮助
    hdfs dfs -help mkdir
    hdfs dfsadmin -help setQuota

    hdfs默认最小块大小是1m
    配置文件:dfs.namenode.fs-limits.min-block-size

    手动设置hdfs文件的块大小,副本数
    FSDataOutputStream fos = fs.create(p,true,1024,(short)2,1048576);


    快照:
    对当前资源的一个快速备份(投影),快照不会发生改变
    hdfs dfs -createSnapshot <snapshotDir> [<snapshotName>]
    hdfs dfs -deleteSnapshot <snapshotDir> <snapshotName>
    hdfs dfs -renameSnapshot <snapshotDir> <oldName> <newName>

    hdfs dfsadmin -allowSnapshot <snapshotDir>
    hdfs dfsadmin -disallowSnapshot <snapshotDir>

    hdfs dfs -appendToFile 1.sh data/1.txt //将指定文件追加到hdfs文件末尾

    1、快照会将当前状态的文件进行快速备份,元数据指向源文件

    2、和Linux的硬链接类似,但是快照不会进行改变

    3、快照存放的路径在被快照的文件夹路径下的.snapshot文件夹

    4、不同文件夹创建的快照可以重名

    5、无法删除快照或删除源文件夹

    回收站:如果怕删除文件,需要启动回收站机制(core-site.xml)
    <property>
    <name>fs.trash.interval</name>
    <value>1</value>
    <description>
    默认为0,即禁用回收站;配置文件说明垃圾回收的分钟数;
    如果服务端禁用,则需要检查客户端是否启用回收站。
    如果服务端启动,则客户端配置就可以忽略
    </description>
    </property>

    <property>
    <name>fs.trash.checkpoint.interval</name>
    <value>0</value>
    <description>
    创建检查点间隔,需要小于等于fs.trash.interval
    </description>
    </property>

    hdfs dfs -expunge //清空回收站过期文件


    序列化:
    将结构化的对象转化为字节流,以便在网络上进行传输或者进行永久存储的过程

    序列化经常在两个领域出现:进程间通信,永久存储

    hadoop中节点的进程间通信是通过RPC实现

    RPC是一种协议,使用的是序列化技术

    序列化技术特点:
    紧凑:体积小,节省带宽
    快速:序列化过程快速
    可扩展:新的api完整兼容旧数据格式
    支持互操作:跨语言

    hadoop的序列化:writable

    java writable
    ----------------------------------------
    byte ByteWritable
    short ShortWritable
    int
    long
    float
    double
    char
    boolean
    String Text

    IntWritable
    Text

    归档:启动yarn

    archive
    har文件 //hadoop归档文件

    创建har文件:
      hadoop archive -archiveName my.har -p /user/data data1 data2 /

    查看归档文件:
      hdfs dfs -lsr har:///my.har

    hdfs性能:
    不适合存储海量小文件:
        namenode:在启动的时候将fsimage中的文件索引加载到内存。

        平均一个文件,占用namenode内存150字节。

    如果存储海量小文件,namenode内存占用量会特别大

    小文件处理:
      1、归档 //har
      2、压缩 //
      3、创建序列文件 //sequenceFile

    hadoop的压缩:
    压缩格式           压缩工具   算法    文件扩展名   是否可切割
    DEFLATE     N/A   DEFLATE   .deflate     No 
    gzip        gzip    DEFLATE   .gz       No 
    bzip2       bzip2   bzip2     .bz2       Yes 
    LZO       lzop     LZO     .lzo       No
    LZ4       N/A     LZ4     .lz4       No 
    Snappy      N/A      Snappy   .snappy     No

    压缩格式           压缩编解码器
    DEFLATE            org.apache.hadoop.io.compress.DefaultCodec √
    gzip                org.apache.hadoop.io.compress.GzipCodec √
    bzip2             org.apache.hadoop.io.compress.BZip2Codec √
    LZO               com.hadoop.compression.lzo.LzopCodec
    LZ4                org.apache.hadoop.io.compress.Lz4Codec √
    Snappy              org.apache.hadoop.io.compress.SnappyCodec √





  • 相关阅读:
    二分查找 找到了返回位置 没找到返回应该插入的位置
    前端知识结构
    RequireJS
    Java内部类——成员内部类
    Java笔记
    Java单例模式
    Java与C#的语法区别(不断更新中...)
    进制转换
    查找算法——折半查找
    排序算法——冒泡排序
  • 原文地址:https://www.cnblogs.com/zyde/p/8899774.html
Copyright © 2011-2022 走看看