• hadoop笔记 基础 归档


    核心:分布式存储和分布式计算

    闲话:

    底层基于socket通信

    NIO——java异步io,不阻塞,不等待

    bt——p2p软件(点对点传输,每个人既是上传者又是下载者。但是会占用大量网络带宽,所以很多运营商通过在交换机上封杀bt端口的方式来遏制bt软件占用流量)

    关键:压缩算法

    1、归档

    很小的文件压缩后反而会变大。

    但是如果有成千上万很小的文件,我们要对其进行压缩的话,就需要先归档

    hadoop归档命令:har (har、tar、jar、war等表示压缩的文件,都以ar结尾,因为ar表示archives,归档)

    大量很小的文件不能用hdfs存,因为大量小文件的文件名等文件信息会将hadoop 0层节点的内存全部耗光,而0层节点一般是master节点,内存耗光就会导致整个集群性能下降

    归档算法:

    多个小文件》》一个大文件

    首先是四个字节,表示一个整数,代表文件名所占字节数;然后是对应字节数的文件名。

    然后是四个字节,表示一个整数,代表文件内容所占字节数;然后对应字节数的文件内容。

    如此循环往复。

    然后就牵扯到字节数组byte[]和整数int相互转换的问题:

        /**
         * 整型转换成字节数组
         */
        public byte[] int2Bytes(int i){
            byte[] arr = new byte[4] ;
            arr[0] = (byte)i ;
            arr[1] = (byte)(i >> 8) ;
            arr[2] = (byte)(i >> 16) ;
            arr[3] = (byte)(i >> 24) ;
            return arr ;
        }
        
        /**
         * 字节数组转成int
         */
        public int bytes2Int(byte[] bytes){
            int i0= bytes[0] & 0xFF  ;
            int i1 = (bytes[1] & 0xFF) << 8 ;
            int i2 = (bytes[2] & 0xFF) << 16 ;
            int i3 = (bytes[3] & 0xFF) << 24 ;
            return i0 | i1 | i2 | i3 ;
        }
        
  • 相关阅读:
    转 MySQL权限管理
    mysql 驱动问题
    mysql issue:
    (五)容器网络 -上
    idea 快速生成代码的快捷键
    (四)容器互联
    (三)将容器变成镜像
    (二)docker的部署安装,配置,基础命令
    (一)为什么要学习docker
    Centos7 安装docker ce
  • 原文地址:https://www.cnblogs.com/zealousness/p/9320920.html
Copyright © 2020-2023  润新知