`

hadoop上对文件进行压缩

阅读更多

 hadoop计算需要在hdfs文件系统上进行,因此每次计算之前必须把需要用到的文件(我们称为原始文件)都上传到hdfs上。文件上传到hdfs上通常有两种方法:

    a hadoop自带的dfs服务,put;

    b hadoop的API,Writer对象可以实现这一功能;

  将a、b方案进行对比,如下:

    1 空间

      方案a在hdfs上占用空间同本地,因此假设只上传日志文件,则保存一个月日志文件将消耗掉约10T空间,如果加上这期间的各种维表、事实表,将占用大约25T空间

      方案b经测试,压缩比大约为3~4:1,因此假设hdfs空间为100T,原来只能保存约4个月的数据,现在可以保存约1年

    2 上传时间

       方案a的上传时间经测试,200G数据上传约1小时

       方案b的上传时间,程序不做任何优化,大约是以上的4~6倍,但存在一定程度提升速度的余地

    3 运算时间

       经过对200G数据,大约4亿条记录的测试,如果程序以IO操作为主,则压缩数据的计算可以提高大约50%的速度,但如果程序以内存操作为主,则只能提高5%~10%的速度

    4 其它

       未压缩的数据还有一个好处是可以直接在hdfs上查看原始数据。压缩数据想看原始数据只能用程序把它导到本地,或者利用本地备份数据

    压缩格式

     按照hadoop api的介绍,压缩格式分两种:BLOCK和RECORD,其中RECORD是只对value进行压缩,一般采用BLOCK进行压缩。

    对压缩文件进行计算,需要用SequenceFileInputFormat类来读入压缩文件,以下是计算程序的典型配置代码:

JobConf conf = new JobConf(getConf(), log.class);
    conf.setJobName(“log”);
    conf.setOutputKeyClass(Text.class);//set the map output key type
    conf.setOutputValueClass(Text.class);//set the map output value type

    conf.setMapperClass(MapClass.class);
    //conf.setCombinerClass(Reduce.class);//set the combiner class ,if havenot, use Recuce class for default
    conf.setReducerClass(Reduce.class);
    conf.setInputFormat(SequenceFileInputFormat.class);//necessary if use compress

     SequenceFileInputFormat.setInputPath(new Path(your file path here));//your file path in hdfs

    接下来的处理与非压缩格式的处理一样

  • 大小: 52.8 KB
  • 大小: 47.8 KB
分享到:
评论

相关推荐

    大数据运维技术第4章 Hadoop文件参数配置课件.pptx

    (1)解压缩hadoop-2.7.1.tar.gz安装包到/usr目录下 [root@master ~]# tar zxvf hadoop-2.7.1.tar.gz -C /usr/local/src/? (2)将hadoop-2.7.1文件夹重命名为hadoop [root@master ~]# mv /usr/local/src?/hadoop-...

    运行成功的hadoop配置文件

    /data/hadoop-0.19.1的conf删除,link到本压缩文件的/data/hadoop-conf /data/hadoop-0.20.1的conf删除,link到本压缩文件的/data/hadoop-conf-0.20 注意: 有个小bug,由于不能重新更换资源zip;请找到hadoop.tmp....

    hadoop2.8.5-windows本地开发

    内容概要:windows环境下添加snappy源码,并对2.8.5的apache版本hadoop包进行编译,生成指定的hadoop.dll、snappy.dll文件,方便Windows环境下利用idea工具进行Hadoop、Spark的local模式下代码调试。 版本更新:...

    22、MapReduce使用Gzip压缩、Snappy压缩和Lzo压缩算法写文件和读取相应的文件

    22、MapReduce使用Gzip压缩、Snappy压缩和Lzo压缩算法写文件和读取相应的文件 网址:https://blog.csdn.net/chenwewi520feng/article/details/130456088 本文的前提是hadoop环境正常。 本文最好和MapReduce操作常见...

    hadoop3.1.1native文件含zstd

    centos7 64位下hadoop3.1.1源码编译生native库,含zstd压缩格式

    Hadoop权威指南 中文版

     ·设计、构建和管理一个专用的hadoop集群或在云上运行hadoop  ·使用高级查询语言pig来处理大规模数据  ·利用hadoop数据库hbase来保存和处理结构化/半结构化数据  ·学会使用zookeeper来构建分布式系统  ...

    本地hadoop支持文件.rar

    文件解压后是hadoop.dll和winutils.exe,将这两个文件放入Hadoop的home下的bin目录下即可。

    hadoop压缩支持包和native 文件

    Hadoop压缩支持包以及native 文件,包括windows和linux

    15-Hadoop压缩和存储

    Hadoop压缩和存储思维导图,便捷整理思路,Hadoop压缩配置、文件存储格式、Hive支持格式、存储和压缩结合

    7、大数据中常见的文件存储格式以及hadoop中支持的压缩算法

    7、大数据中常见的文件存储格式以及hadoop中支持的压缩算法 网址:https://blog.csdn.net/chenwewi520feng/article/details/130337213 本文主要介绍大数据环境中常见的文件存储格式、压缩算法。 本文分为2个部分,即...

    Hadoop-MapReduce项目代码ZIP压缩包 + 面向小白(注释详细清晰)

    Hadoop课程设计项目,使用idea编写基于MapReduce的学生成绩分析系统代码压缩包

    Hadoop权威指南 第二版(中文版)

     Hadoop文件系统  接口  Java接口  从Hadoop URL中读取数据  通过FileSystem API读取数据  写入数据  目录  查询文件系统  删除数据  数据流  文件读取剖析  文件写入剖析  一致模型  通过 distcp并行...

    Hadoop实战中文版

    第9章 在云上运行Hadoop 9.1 Amazon Web Services 简介 9.2 安装AWS 9.2.1 获得AWS身份认证凭据 9.2.2 获得命令行工具 9.2.3 准备SSH密钥对 9.3 在EC2 上安装Hadoop 9.3.1 配置安全参数 9.3.2 配置集群类型...

    Hadoop大数据平台构建、HDFS配置、启动与验证教学课件.pptx

    分发Hadoop文件 任务五 NameNode格式化 任务六 启动HDFS集群 任务七 验证HDFS集群 任务一 Hadoop安装及JDK环境变量配置 所有节点,使用 root 用户登录,修改 /opt 的权限 # chmod 777 /opt --修改 /opt 文件夹的权限...

    Hadoop权威指南(中文版)2015上传.rar

    Hadoop文件系统 接口 Java接口 从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询文件系统 删除数据 数据流 文件读取剖析 文件写入剖析 一致模型 通过 distcp并行拷贝 保持 HDFS 集群的均衡 ...

    hadoop2x集成eclipse插件压缩包

    他是可以在eclipse上显示和hadoop webui一样的功能并且在下载的时候也是很方便的!

    hadoop-common.2.7.4.rar

    配置步骤大致是1 解压缩,2 配置Windows的环境变量HADOOP_HOME,添加bin目录到path中。3 把hadoop文件夹bin中的hadoop.dll放到system32目录里面,重新启动windows就行。文件只有一个bin目录,不懂的不要下载啊,或者...

    winutils.exe(hadoop必备文件)

    压缩文件包括以下版本的winutils.exe及hadoop.dll: hadoop-2.6.3;hadoop-2.6.4;hadoop-2.7.1;hadoop-2.8.1;hadoop-2.8.3;hadoop-3.0.0

    hadoop-src源代码

    hadoop-src压缩文件,可以直接导入eclipse等编译java开发工具

    hadoop-2.7.1 64位编译包 part1

    本人用7个多小时成功编译 hadoop 2.7.1 64位编译包(JDK1.8 64),由于文件太大,分3卷压缩。 hadoop 2.7.1 相对于2.7.0修复了上百个Bug,是可用于生产环境的版本了。

Global site tag (gtag.js) - Google Analytics