草庐IT

hadoop - 为什么 gzip 不支持拆分

从《Hadoop:TheDefinitiveGuide》一书中得到一段话,如下:“放气将数据存储为一系列压缩block。问题是每个block的开始不以任何允许读者位于任意位置的方式进行区分指向流中前进到下一个block的开头,从而同步本身随流。因此,gzip不支持拆分。”我的问题是我无法理解作者解释为什么gzip不支持拆分的原因。有人可以给我更详细的解释吗?据我了解,如果将大文件拆分为16个block。当一个mapper开始读取一个block时,此时可能会发生2种情况:映射器不能阻塞或者它可以读取它然后处理它但不知道将结果放到整个流的哪里上述情况是会发生还是不会发生还有其他逻辑?

database - 将 GZIP HDFS 数据复制到 vertica

我想将HDFS(gzip压缩)数据复制到Vetica。我正在使用以下命令。但它不起作用COPYpix001SOURCEHdfs(url='http://hadoopnemenode.com:50070/webhdfs/v1/bq-upload/pix/m=03/d=01/03-01.txt.gz',username='xyz')GZIPDELIMITERE'\t';谁知道更好的方法谢谢 最佳答案 是的,有GZIP支持,只需要编译GZIP库[VerticaGuys终于帮了我:)]步骤如下:#cd/opt/vertica/sdk/exa

hadoop - 如何在 gzip 文件上使用 CombineFileInputFormat?

在gzip文件上使用CombineFileInputFormat的最佳方法是什么? 最佳答案 This本文将帮助您在CombineFIleInputFOrmat的帮助下构建自己的Inputformat以读取和处理gzip文件。以下部分会让您了解需要做什么。自定义输入格式:构建您自己的自定义combinefileinputformat几乎与combinefileinputformat相同。键必须是我们自己的可写类,它将保存文件名、偏移量和值将是实际的文件内容。必须将issplittable设置为false(我们不想拆分文件)。将max

具有大 gzip 文件的 hadoop 策略

我将在hadoop中复制大量压缩为gzip的大型博客文件。我需要在这些文件上运行许多map/reduce。据我了解,只有一个Map/Reduce将按文件运行。就我而言,这是NotAcceptable,因为我们需要尽快完成这些工作。将gzip文件分成较小的block(在将它们复制到hadoop之前或之后)是常见的做法吗能够运行尽可能多的map/reduce?感谢您的帮助。 最佳答案 您可以使用lzop生成文件的lzo压缩副本-尽管压缩率低于gzip,但lzo解压缩速度非常快。类似的东西;gunzip--stdout文件.gz|lzop

hadoop - gzip 数据的压缩/解压缩在 Hadoop/PIG 中是否透明?

我在某处读到Hadoop内置了对压缩和解压缩的支持,但我猜这是关于映射器输出(通过设置一些属性)?我想知道是否有任何特定的PIG加载/存储函数可用于读取压缩数据或输出压缩数据? 最佳答案 PigStorage通过检查文件名来处理压缩输入:*.bz2/*.bz-org.apache.pig.bzip2r.Bzip2TextInputFormat其他一切都使用org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat--这扩展了o.a.h

hadoop - mapreduce 会使用大部分 gzip 文件所在的节点吗?

我有一个HDFS集群,其中包含一些大的gzip文件。我通过将这些gzip文件的所有block写入同一个DataNode,将它们从该数据节点写入HDFS。foriin{1..10};doscpfile$i.gzdatanode1:sshdatanode$ihadoopfs-putfile$i.gz/data/done现在我想对所有这些文件运行mapreduce任务。我希望JobTracker将处理file1的作业放在所有block所在的datanode1上。确实,如果一个数据节点死了,我将失去位置,但它会一直工作到死吗?如果它不能那样工作,我可以编写一个FileInputFormat来实

hadoop - 如何将 Hadoop 目录压缩为单个 gzip 文件?

我有一个包含大量文件和子目录的目录,我想将它们从hdfs压缩并导出到fs。我遇到了这个问题-Hadoop:compressfileinHDFS?,但它似乎只与文件相关,并且使用hadoop-streaming和GzipCodec使我在目录方面没有成功。为什么将HDFS文件夹压缩成单个gzip文件最有效?提前致谢。 最佳答案 您将需要一个库或滚动您自己的代码来从目录结构中的文件中生成tar流。您可以使用zlib压缩tar流以制作标准的.tar.gz文件。如果您想合并多个此类任务的结果,我可以在这里提供两个花絮:1)您可以连接gzip流

hadoop - 在 AWS Elastic Map Reduce 中禁用 Gzip 输入解压缩

我正在Gzipped.arc文件上运行MapReduce任务。类似于此question,我遇到了困难,因为Gzip解压缩是自动运行的(因为文件有.gz扩展名),但它导致换行符/回车符按照Unix文件编码被渲染为换行符的问题。这使得输入完全不可读,因为它取决于文件中嵌入的特定字符数。我正在尝试禁用Gzip解压缩,以便我可以在我的映射器中正确地执行它。我试过:-jobconfstream.recordreader.compression=none但这似乎并不影响压缩。有什么方法可以防止对我的输入进行Gzip解压缩?谢谢,-Geoff 最佳答案

python - 并行化 GZip 文件处理 Spark

我有大量需要转换为Parquet的GZip文件。由于GZip的压缩特性,这不能针对一个文件并行化。但是,既然我有很多,有没有比较简单的方法让每个节点做一部分文件呢?这些文件在HDFS上。我假设我不能使用RDD基础设施来编写Parquet文件,因为这一切都是在驱动程序上完成的,而不是在节点本身上完成的。我可以并行化文件名列表,编写一个处理本地Parquets并将它们保存回HDFS的函数。我不知道该怎么做。我觉得我错过了一些明显的东西,谢谢!这被标记为重复问题,但事实并非如此。我完全了解Spark能够将它们作为RDD读取而不必担心压缩,我的问题更多是关于如何并行地将这些文件转换为结构化Pa

java - java 中的 mapreduce - gzip 输入文件

我正在使用java,我正在尝试编写一个mapreduce,它将接收一个包含多个gz的文件夹作为输入文件。我一直在寻找所有的教程,但我找到的所有教程都说明了如何处理一个简单的文本文件,但没有找到任何可以解决我的问题的方法。我在我的工作场所四处打听,但只得到了对scala的引用,我对此并不熟悉。如有任何帮助,我们将不胜感激。 最佳答案 Hadoop检查文件扩展名以检测压缩文件。Hadoop支持的压缩类型有:gzip、bzip2和LZO。您不需要采取任何额外的操作来使用这些类型的压缩来提取文件;Hadoop会为您处理。因此,您只需像编写文