数据压缩格式

 正则表达式如何使用-常规用法

        Java实现正则表达式的核心类

        Pattern

                获取pattern实现,Pattern.compile

         Matcher

                 Pattern.matcher可以得到matcher实例

         其有3个匹配方法

                 Matches:全部匹配

                 lookingAt: 前向匹配

                find:任意匹配

一.HDFS数据格式的详解:

1.文件格式:面向储存的方式不同,分为面向行和面向列

所有的文件都可以分块存储,但并不是所有的文件都可以切分限制于格式

面向行列

类型名称

是否可切分

优点

缺点

适用场景

面向行

.txt

查看便编辑简单

无压缩占空间大、传输压力大、数据解析开销大

学习练习

面向行

.seq

原生支持不需要装插件、二进制kv存储、支持行和块压缩

本地查看不方便:小文件合并成kv结构后不易查看内部数据

生产环境,

面向列

.rc

数据加载快、查询快、空间利用率高、高负载能力

每一项都不是最高

学习生产

面向列

.orc

兼具了rcfile优点,进一步提高了读取、存储效率、新数据类型的支持

每一项都不是最高

学习生产

2.压缩格式

分为可切分计算,和不可切分计算

1>. .lzo 可以切分,但不是原生的,优点压缩/解压快,缺点,压缩率比gizp低需要native安装插件

2> .bz2 可以切分,是原生的, 优点 压缩率高于gzip,用linux,bzip可解压,缺点压缩速率慢

3> .gz 不可切分 原生的, 优点;压缩/解压速度快,使用方便,缺点:不可切分,对CPU要求高

4> .snappy 不可切分 非原生, 优点:高压缩/解压速度 缺点:压缩率比gzip低,非原生,需要native安装

二.设置输出格式为gzip

只需要在主函数里添加

 

 GenericOptionsParser optionParser = new GenericOptionsParser(conf, args);
  String[] remainingArgs = optionParser.getRemainingArgs();
  将下面的args[0]改为remainingArgs [0]

在yarn jar 的命令里添加参数

-Dmapred.output.compress=true \ 
-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \

三.parition

自定义parition

    //k,v受限于map的键值对    numReduceTasks reduce的个数
     public static class MyHashPartitioner<K, V> extends Partitioner<K, V> {
 
        public int getPartition(K key, V value, int numReduceTasks) {
            return (key.toString().charAt(0) < 'q' ? 0 : 1) % numReduceTasks;
        }
 
    }

四.MapReduce个数的确认

        1.在Job提交后,任务正式开始计算之前即已经确定

        2. Map数量的确定:由输入数据文件的总大小、数据格式、块大小综合确定.

        3.Reduce数量确定:系统根据输入数据量的大小自动确定,有固定的计算公式解。另外,用户可以自定义设置,通过参数配置,由用户决定.

自定义reduce数量

        在yarn jar 的命令里添加参数

         -Dmapred.reduce.tasks=2 \ 说明有两个reduce

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值