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
接下来的处理与非压缩格式的处理一样
相关推荐
该格式不支持多文件压缩且不具备可分隔性,即无法将一个大文件分割成多个小文件进行独立处理。 - **Gzip**: 利用gzip工具实现DEFLATE算法,压缩后文件扩展名为`.gz`。与DEFLATE相似,Gzip也不支持多文件压缩和可...
标题中的“hadoop3.1.1native文件含zstd”指的是Hadoop 3.1.1版本在CentOS 7 64位系统上编译的本地库(native库)包含了对Zstandard(简称zstd)压缩算法的支持。Zstandard是一种高效的压缩和解压缩算法,设计用于...
至于压缩包子文件“9.pptx”,可能是关于Hadoop、Spark在Windows环境下的使用教程或者介绍资料,可能包含了如何配置Hadoop环境、如何使用winutils.exe以及如何在Windows 7上开发和调试Spark应用程序等内容。...
本压缩包包含的是一系列Hadoop的核心配置文件,这些文件对于理解和管理Hadoop集群至关重要。接下来,我们将深入探讨每个配置文件及其重要选项。 首先,`core-site.xml`是Hadoop的核心配置文件,它定义了Hadoop的...
压缩包子文件“hadoop-winutils”很可能包含了适用于不同Hadoop版本的winutils.exe文件,可能有多个版本以适应不同的Hadoop发行版。用户需要根据自己的Hadoop版本选择合适的winutils文件,然后按照上述方法进行配置...
此外,Hadoop的HDFS客户端也可以选择在上传文件时进行Snappy压缩,或者在下载时解压缩。这通常通过命令行选项或编程API实现。例如,使用HDFS shell命令,你可以这样上传一个Snappy压缩的文件: ``` hadoop fs -put -...
描述中提到的“在CentOS7中进行编译”,意味着这些native文件是在这个特定的Linux发行版环境下构建的,CentOS7以其稳定性和对开源软件的良好支持,常常被用作开发和部署Hadoop集群的首选平台。一旦编译完成,这些库...
5. **格式化NameNode**:首次启动Hadoop集群时,需要对NameNode进行格式化,这会创建Hadoop文件系统的元数据。 6. **启动Hadoop服务**:通过运行start-dfs.sh和start-yarn.sh脚本启动Hadoop的DataNodes、NameNodes...
为了确保 Hadoop 集群的稳定运行,需要对 Hadoop 文件参数进行正确的配置。本章节将指导读者如何配置 Hadoop 文件参数,实现 Hadoop 集群的高效运行。 1. 实验目的 本实验的目的是掌握 Hadoop 文件参数的配置,...
在Hadoop 2.7.2版本中,引入了对Snappy压缩算法的支持,这是一种高效的数据压缩库,尤其适合大数据环境。这个压缩支持包是针对Hadoop 2.7.2版本的,用于增强其在数据压缩方面的能力。 Snappy是由Google开发的,旨在...
综上所述,该压缩包包含的Hadoop集群配置文件是搭建和管理Hadoop集群必不可少的组件,每个文件都对应着特定的功能和设置,需要根据实际的硬件环境和业务需求进行适当调整。理解并正确配置这些文件,是确保Hadoop集群...
1. **解压缩**: 首先,你需要根据你的Hadoop版本选择合适的压缩包,例如,如果你使用的是Hadoop 2.9.x,就解压缩`hadoop2.9配置文件.rar`。 2. **复制文件**: 解压后,你会找到`winutils.exe`和`hadoop.dll`。将这两...
在这个"Java写的hadoop压缩worldcount例子"中,我们主要关注的是如何利用Hadoop进行数据压缩以及实现一个简单的WordCount程序。WordCount是Hadoop入门的经典示例,它统计文本中每个单词出现的次数。 首先,Hadoop...
Hadoop 3.1.0是Hadoop发展过程中的一个重要版本,它在Hadoop 3.0的基础上进行了多项改进和优化,提升了系统的稳定性和性能。这个"hadop-3.1.0-windows"压缩包是专为在Windows环境下运行Hadoop设计的,包含了所有必要...
Hadoop的压缩支持包和native文件是其高效运行的关键组成部分。本文将深入探讨这两个概念,以及它们在Windows和Linux环境下的应用。 一、Hadoop压缩支持 Hadoop提供了多种内置的压缩算法,以优化数据传输和存储效率...
2. **解压Hadoop**: 解压缩下载的Hadoop文件到你希望的目录,例如`C:\hadoop`. 3. **配置环境变量**: 在系统环境变量中添加`HADOOP_HOME`,值设为Hadoop的安装路径,如`C:\hadoop`。 4. **配置PATH**: 同样在环境...
Hadoop数据压缩是指在Hadoop系统中对数据进行压缩,以减少存储空间和提高数据传输速度。压缩技术能够有效减少底层存储系统(HDFS)读写字节数,提高网络带宽和磁盘空间的效率。在 Hadoop下,尤其是数据规模很大和...
Snappy 压缩算法的安装配置在 Hadoop 集群上 Snappy 压缩算法是一种高效的压缩算法,广泛应用于 Hadoop 和 HBase 等大数据处理系统中。 本篇文章将介绍 Snappy 压缩算法在 Hadoop 集群上的安装配置过程,并分享一些...