我正在使用Spark在JAVA中编写程序。我有一个名为“copied_logs”的JavaRDD,它使用映射并从位于hdfs上的日志中复制几个字段。现在,我想用Bzip2压缩“copied_logs”然后保存。我想使用“saveAsTextFile”函数将这些数据保存在hdfs上。我的压缩保存代码如下:CompressionCodeccodec=newBZip2Codec();copied_logs.saveAsTextFile(output_dir+"copied_logs.json",codec);但是我得到这个错误:Error:(128,69)java:incompatiblet
我看到很多关于将hadoopMapReduce结果输出为gzip格式或任何其他压缩格式的帖子。但是,我对hadoop-streaming如何读入(输入)压缩格式并没有太多了解。我看到一些关于使用-jobconfstream.recordreader.compression=gziphttp://mail-archives.apache.org/mod_mbox/hadoop-common-user/200907.mbox/%3C73e5a5310907141349k3329c5cua4bb58fcf103522@mail.gmail.com%3E的旧帖子做输入部分。目前,我在Ubunt
当我们在一些处理后使用Spark时,我将结果存储到文件中,并使用简单代码使用snappy编解码器:data.saveAsTextFile("/data/2014-11-29",classOf[org.apache.hadoop.io.compress.SnappyCodec])在那之后,当我使用Spark读取这个文件夹文件时,一切都完美无缺!但是今天我尝试在我的电脑上使用javasnappy(java-snappy1.1.1.2)来解压结果文件夹中的一个文件(这个文件是从这个文件夹下载到我的电脑的文件之一)maven依赖:org.xerial.snappysnappy-java1.1.
我正在为一个客户工作,我应该将一些文件通过Snappy压缩放入HDFS。我的问题是snappy编解码器未在mapred-site.xml或hdfs-site.xml中定义不知何故,我必须优先使用hdfsput命令放置文件,并且它们应该被压缩。没有机会更改配置文件,因为它是生产机器并且其他人正在积极使用它。另一个建议的解决方案是在不压缩的情况下将文件导入HDFS,然后创建压缩的hive外部表并使用其源文件,同时删除未压缩的文件。但这还有很长的路要走,而且不能保证一定有效。任何有关使用带有某种参数的hdfsput来压缩文件的建议,我们将不胜感激。 最佳答案
在我的MR工作中,比方说,我为映射或减少到LZO的输出指定了压缩,它是如何压缩的?来自map或reduce任务的整个数据是首先在没有压缩的情况下获得,然后在最后压缩未压缩的数据,还是增量压缩和写入。如果它被增量压缩和写入,那么它是如何完成的?请帮助我理解这一点。谢谢,文卡特 最佳答案 这基本上取决于您使用的文件类型。如果它是文本文件,则压缩发生在文件级别。但如果它是SequenceFile,那么压缩可能是记录级别或block级别。请注意,这里的block是指使用序列文件的缓冲区,而不是hdfsblock。如果是block压缩
在我的HDFS上,我有一堆gzip文件,我想将其解压缩为正常格式。是否有用于执行此操作的API?或者我如何编写一个函数来执行此操作?我不想使用任何命令行工具;相反,我想通过编写Java代码来完成这项任务。 最佳答案 你需要一个CompressionCodec解压缩文件。gzip的实现是GzipCodec.你得到一个CompressedInputStream通过编解码器并使用简单的IO输出结果。像这样:假设你有一个文件file.gz//pathoffileStringuri="/uri/to/file.gz";Configuratio
如何将HDFS目录中的所有文件合并到一个压缩文件中,无需通过本地计算机复制数据?例如,但不一定,使用Pig?例如,我有一个文件夹/data/input,其中包含文件part-m-00000.gz和part-m-00001.gz。现在我想将它们合并成一个文件/data/output/foo.gz 最佳答案 我建议查看FileCrush(https://github.com/edwardcapriolo/filecrush),这是一种使用MapReduce合并HDFS上文件的工具。它完全按照您的描述进行操作,并提供了多个选项来处理压缩和
我必须使用Snappy来压缩mapo/p和map-reduceo/p。此外,这应该是可拆分的。正如我在网上学习的那样,要使Snappy编写可拆分的o/p,我们必须在类似容器的格式中使用它。你能建议如何去做吗?我试着在网上找一些例子,但找不到一个。我正在使用Hadoopv0.20.203。谢谢。皮尤什 最佳答案 用于输出conf.setOutputFormat(SequenceFileOutputFormat.class);SequenceFileOutputFormat.setOutputCompressionType(conf,C
我试过运行hadoopfs-getmerge在.deflate文件的目录中。结果是我本地机器上的一个压缩文件。将未压缩格式的整个目录下载到我的本地计算机上的最简单方法是什么? 最佳答案 试试这个:hadoopfs-text/some/where/job-output/part-* 关于hadoop-如何使用hadoopfs-getmerge下载.deflate文件?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl
我正在使用HadoopMapReduce对维基百科数据转储(以bz2格式压缩)进行研究。由于这些转储太大(5T),我无法将xml数据解压缩到HDFS中,只能使用hadoop提供的StreamXmlRecordReader。Hadoop确实支持解压缩bz2文件,但它会任意拆分页面并将其发送给映射器。因为这是xml,所以我们需要拆分为标签。有没有办法把hadoop自带的bz2解压和streamxmlrecordreader一起使用? 最佳答案 维基媒体基金会刚刚为HadoopStreaming接口(interface)发布了一个Inpu