- 浏览: 193687 次
文章分类
最新评论
利用sequenceFile打包多个小文件,MapFile是sequenceFile的排序形式,程序如下:
public class testSequenceFile { public static void main(String[] args) throws IOException{ Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); FileStatus[] files = fs.listStatus(new Path(args[0])); Text key = new Text(); Text value = new Text(); SequenceFile.Writer writer = SequenceFile.createWriter(fs, conf, new Path(args[1]),key.getClass() , value.getClass()); InputStream in = null; byte[] buffer = null; for(int i=0;i<files.length;i++){ key.set(files[i].getPath().getName()); in = fs.open(files[i].getPath()); buffer = new byte[(int) files[i].getLen()]; IOUtils.readFully(in, buffer, 0, buffer.length); value.set(buffer); IOUtils.closeStream(in); System.out.println(key.toString()+"\n"+value.toString()); writer.append(key, value); } IOUtils.closeStream(writer); } }
这里需要注意的是sequenceFile是二进制文件,cat more less 之类的命令都不能以文本形式显示顺序文件的内容,需要用到fs命令的-text选项,该选项可以查看文件的代码,检测出文件的类型并适当的转化成文本,如下图“
KeXie@KeXie-PC ~/hadoop-0.20.2 $ hadoop fs -cat soutput SEQorg.apache.hadoop.io.Textorg.apache.hadoop.io.Text*org.apache.hadoop.io.compress.DefaultCodec▒A▒=▒▒=U▒2▒,a.txtx▒▒▒L▒,*▒▒,,M▒▒▒▒<▒A#b.txtx▒▒L▒H▒▒▒y▒\▒▒▒y▒\@6n:c.txtx▒▒+*▒▒,,M▒▒▒▒%▒▒ KeXie@KeXie-PC ~/hadoop-0.20.2 $ hadoop fs -text soutput a.txt xie chen liang quan b.txt chen chen wen an wen c.txt mo an an
发表评论
-
多表join的一个优化思路
2012-11-20 11:24 1464big table:streamed small table: ... -
好的网站
2012-09-20 22:17 7891. http://www.cnblogs.com/luche ... -
Hadoop 任务流程
2012-09-07 16:18 825简单的来说分为四个阶段:InputFormat/MapTask ... -
Hadoop关于最大map reducer数目
2012-08-14 20:53 983mapred-site.xml文件: <prop ... -
java.io.IOException:Typemismatch in key from map:expected org.apache.hadoop.io
2012-08-14 20:53 1454解决办法: jo ... -
HDFS 输入文件避免切分
2012-08-14 20:52 1120自定义InputFormat的子类,并把重载方法 ... -
Hadoop 开启debug信息
2012-08-14 20:51 3997运行hadoop程序时,有时候你会使用一些System. ... -
Hadoop 关于0.95/1.75 * (number of nodes)误解
2012-08-14 20:51 981reduce任务槽,即集群能够同时运行的redu ... -
MapReduce ReadingList
2012-08-09 12:22 7001. http://www.aicit.org/jcit/gl ... -
"hadoop fs 和hadoop dfs的区别"
2012-05-30 15:27 1931粗略的讲,fs是个比较抽象的层面,在分布式环境中,fs就是df ... -
Hadoop 自动清除日志
2012-05-29 18:02 942hadoop集群跑了很多的任务后 在hadoop.log ... -
DistributedCache FileNotFoundException
2012-05-26 18:02 995此时注意两种文件路径表示形式,一个在HDFS中。一一个是本地文 ... -
Cygwin 不支持native lib 不支持使用native lib 提供的压缩
2012-05-25 13:33 1145弄了一个上午hadoop的压缩,一直报错NullPointer ... -
Hadoop 在Window下搭建 守护进程启动问题
2012-05-23 15:27 822hadoop version “0.20.2” java ... -
Cygwin ssh Connection closed by ::1
2012-05-17 21:09 1140在Win7下Cygwin中,使用sshlocalhost命令, ... -
Eclipse:Run on Hadoop 没有反应
2012-05-10 20:11 898hadoop-0.20.2下自带的eclise插件没有用,需要 ... -
Hadoop 自定义计数器
2012-04-22 09:04 1493public static class mapper e ... -
MapReduce : 新版API 自定义InputFormat 把整个文件作为一条记录处理
2012-04-10 21:47 2290自定义InputFormat 新版API 把真个文件当成 ... -
MapReduce : Combiner的使用(以平均数为例) 并结合in-mapper design pattern 实例
2012-04-10 18:51 4334没有使用Combiner 和 in-mapper des ... -
Hadoop NameNode backup
2012-03-24 18:12 853NameNode: <property> ...
相关推荐
第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件...
此外,MultiFileInputSplit可以让一个Map Task处理多个输入split,进一步提高效率。 小文件产生的原因主要有两种。一是日志类文件,由于HDFS早期不支持文件追加,所以通过创建多个小文件来存储新数据。二是本身就很...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群上处理海量数据。Hadoop 3.3.0是该框架的一个版本,它带来了许多改进和新特性,旨在提升性能、稳定性和可扩展性。WinUtils是Hadoop在...
在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...
本节课程主要介绍 HDFS 的概念、HDFS 存储架构和数据读写流程、HDFS 的 Shell 命令、Java 程序操作 HDFS、Hadoop 序列化、Hadoop 小文件处理、通信机制 RPC 等知识点。 HDFS 概念 HDFS(Hadoop Distributed File ...
Hadoop作为一个分布式计算框架,虽然在处理大文件方面表现出色,但对于大量小文件的处理却存在效率低下的问题。这是因为Hadoop的默认文件系统HDFS(Hadoop Distributed File System)是为处理大文件而设计的,其设计...
Hadoop是大数据处理领域的重要工具,它是一个分布式文件系统,为大规模数据集提供了高吞吐量的数据访问。本文将详细讲解如何在Windows环境下使用Hadoop 2.8,并重点介绍"bin"目录及其作用。 首先,Hadoop 2.8是在...
- Map阶段:在Map任务中,每个节点上的Mapper进程对分配给它的数据块进行处理,例如,可以将多个小文件合并为一个大文件。 - Shuffle和Sort:Mapper的输出被排序并分组,准备传递给Reducer。 - Reduce阶段:...
SequenceFile打包多个小文件 SequenceFile是一种基于Hadoop的文件格式,用于存储大量小文件。SequenceFile的优点是可以高效地存储和读取大量小文件,同时也可以对小文件进行排序、压缩和加密等操作。 ...
在搭建Hadoop集群的过程中,配置文件起着至关重要的作用,它们定义了集群的运行方式、节点间通信方式以及数据存储和处理的策略。本压缩包包含的文件是全面的Hadoop集群配置集合,旨在帮助用户顺利构建和管理自己的...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它允许分布式存储和并行处理海量数据,极大地提升了处理效率。Eclipse则是一款强大的集成开发环境(IDE),适用于多种编程语言,包括Java,...
本文将详细解析标题和描述中提及的两个重要文件:`winutils.exe`和`hadoop.dll`,以及如何在Windows上正确配置它们。 首先,`winutils.exe`是Hadoop在Windows操作系统上的一个实用工具,它提供了类似Linux环境下`...
winutils.exe是在window系统上安装hadoop时所需要的winutils文件,内附多个版本,支持 hadoop-2.6.3 hadoop-2.6.4 hadoop-2.7.1 hadoop-2.8.0-RC3 hadoop-2.8.1 hadoop-2.8.3 hadoop-3.0.0 已通过本人对 Hadoop-...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它允许分布式存储和并行处理大量数据,极大地提升了处理效率。本教程将详细讲解如何在Windows环境下配置Hadoop本地开发环境,以及如何利用...
标题 "hadoop2.8.4安装扩展、依赖文件" 描述了在Windows操作系统上部署Hadoop 2.8.4版本时所面临的一个关键问题,即需要特定的Windows扩展和工具来支持其正常运行。这里的核心是`hadoop.dll`和`winutils.exe`,它们...
Hadoop是Apache软件基金会开发的一个开源分布式计算平台,其核心是Hadoop分布式文件系统(HDFS)和MapReduce编程模型。HDFS是一种高度容错的系统,适合于大数据存储,能够将大型数据集分割成块,分散存储在多台机器...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。...这两个文件的提供使得开发者和数据工程师能够在Windows平台上充分利用Hadoop的强大功能,进行大数据分析和处理。
至于压缩包中的"native"文件,这很可能是一个包含编译好的Hadoop native库的文件夹,其中可能有动态链接库(如libhadoop.so)和其他相关文件,这些文件需要正确地配置和安装到Hadoop环境才能使用。在部署Hadoop集群...