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 √





  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/zyde/p/8899774.html
Copyright © 2011-2022 走看看