问题标签 [lzo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - Hadoop 透明地处理压缩,但不拆分 LZO
看起来 Hadoop 在使用TextInputFormat
. 不幸的是,当使用 LZO 压缩时,Hadoop 不使用 LZO 索引文件来使文件可拆分。但是,如果我将输入格式设置为com.hadoop.mapreduce.LzoTextInputFormat
,则文件将被拆分。
是否可以将 Hadoop 配置为解压缩 LZO 文件并在使用时拆分它们TextInputFormat
?
hadoop - 如何在不使用 map reduce 的情况下使用 lzo 压缩写入 hadoop hdfs
我正在写信给 hadoop hdfs。该文件必须使用 lzo 压缩。该文件还将实时附加。
源文件是一个 gzip 文件,在 hadoop 中不存在。批处理此 gzip 文件,然后进行 lzo 压缩并附加到 hadoop。这是否消除了使用 map reduce 的可能性?
我们怎样才能做到这一点?
在此先感谢您的帮助
hadoop - 高效地将数据存储在 Hive 中
如何有效地将数据存储在 Hive 中,并在 Hive 中存储和检索压缩数据?目前我将它存储为一个文本文件。我正在阅读Bejoy 的文章,我发现 LZO 压缩对于存储文件很有用,而且它是可拆分的。
我有一个 HiveQL Select 查询正在生成一些输出,并且我将该输出存储在某处,以便我的一个 Hive 表(质量)可以使用该数据,以便我可以查询该quality
表。
下面是quality
我通过创建用于覆盖表的分区来从下面的 SELECT 查询中加载数据的表quality
。
所以目前我在这里将它存储为一个TextFile
,我应该把它作为一个Sequence file
并开始存储数据LZO compression format
吗?或者文本文件在这里也可以吗?从选择查询中,我将获得一些 GB 的数据,这些数据需要每天按表质量上传。
那么哪种方式最好呢?我应该将输出存储为 TextFile 还是 SequenceFile 格式(LZO 压缩),以便在查询 Hive 质量表时,我可以更快地获得结果。意味着查询更快。
更新:-
如果我使用块压缩存储为序列文件怎么办?如下图——
除了上面之外,我还需要设置一些其他的东西来启用块压缩吗?而且我正在创建 Table 作为 SequenceFile 格式
再次更新
我应该像下面这样创建表格吗?还是需要进行一些其他更改才能使用序列文件启用 BLOCK 压缩?
hadoop - 描述 Hive 中的扩展表
我将表存储为 SequenceFile 格式,并设置以下命令以启用带有块压缩的序列-
但是当我尝试像这样查看表格时-
我得到以下信息,其中有一个名为的字段compressed
设置为false
,这意味着我的数据没有通过设置上述三个命令得到压缩?
amazon-web-services - 将压缩(lzo)数据从 s3 导入 hive
我将 DynamoDB 表导出到 s3 作为备份方式(通过 EMR)。导出时,我将数据存储为 lzo 压缩文件。我的配置单元查询如下,但基本上我遵循了http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/EMR_Hive_Commands.html上的“使用数据压缩将 Amazon DynamoDB 表导出到 Amazon S3 存储桶”
我现在想做相反的事情 - 拿我的 LZO 文件并将它们放回蜂巢表中。你怎么做到这一点?我期待看到一些用于输入的配置单元配置属性,但没有。我用谷歌搜索并找到了一些提示,但没有确定的,也没有任何有效的。
s3 中的文件格式为:s3://[mybucket]/backup/year=2012/month=08/day=01/000000.lzo
这是我进行导出的 HQL:
任何想法如何从 s3 中获取它,解压缩并进入配置单元表?
hadoop - Snappy 或 LZO 用于日志,然后由 hadoop 使用
我有大量的服务。我记录事件。每隔几分钟,我使用 gzip 压缩日志并将它们旋转到 S3。从那里,我们通过 Hive 使用 Amazon 的 Hadoop(弹性 mapreduce)处理日志。
现在在服务器上,当我们压缩和旋转日志时,每隔几分钟就会出现一次 CPU 峰值。我们希望从 gzip 切换到 lzo 或 snappy 以帮助减少这种 cpu 峰值。我们是一个 cpu-bound 服务,所以我们愿意在轮换时用更大的日志文件换取更少的 cpu 消耗。
我一直在阅读有关 LZO 和 Snappy(又名 zippy)的大量内容。LZO 的优点之一是它在 HDFS 中是可拆分的。但是,我们的文件是通过 Gzip 压缩的 ~15MB,所以我认为我们不会达到 HDFS 中 64MB 的默认块大小,所以这无关紧要。即使是这样,我们也应该能够将默认值设置为 128MB。
现在,我想尝试一下 snappy,因为它似乎稍微快一些/占用更少的资源。亚马逊的 yum 存储库中似乎都没有,所以我们可能无论如何都必须自定义安装/构建——所以在工程时间方面并没有太大的权衡。我听说过一些关于 LZO 许可证的担忧,但我想如果它不靠近我们的代码,我会发现它只是安装在我们的服务器上,对吧?
那么,我应该选择哪个?一个在 Hadoop 中的性能会比另一个更好吗?有没有人用这两种实现方式做到这一点并且有任何他们可以分享的问题?
python - 在 Hadoop Streaming 中使用大象鸟输入格式时出错
我正在尝试在我的 Hadoop Streaming 脚本中使用Elephant Bird的输入格式。特别是,我想使用 LzoInputFormat 并最终使用 LzoJsonInputFormat(在此处使用 Twitter 数据)。但是当我尝试这样做时,我不断收到一个错误,提示 Elephant Bird 格式不是 InputFormat 类的有效实例。
这就是我运行 Streaming 命令的方式:
这是我得到的错误:
hadoop - Hadoop:如何在同一个作业中输出不同的格式类型?
我想在一项工作中同时输出gzip
和格式化。lzo
我使用MultipleOutputs
, 并添加两个命名输出,如下所示:
MultipleOutputs.addNamedOutput(job, "LzoOutput", GBKTextOutputFormat.class, Text.class, Text.class);
GBKTextOutputFormat.setOutputCompressorClass(job, LzoCodec.class);
MultipleOutputs.addNamedOutput(job, "GzOutput", TextOutputFormat.class, Text.class, Text.class);
TextOutputFormat.setOutputCompressorClass(job, GzipCodec.class);
(GBKTextOutputFormat
这里是我自己写的延伸FileOutputFormat
)
它们用于减速器,例如:
multipleOutputs.write("LzoOutput", NullWritable.get(), value, "/user/hadoop/lzo/"+key.toString());
multipleOutputs.write("GzOutput", NullWritable.get(), value, "/user/hadoop/gzip/"+key.toString());
结果是:
我可以在两条路径中获得输出,但它们都是gzip
格式。
有人可以帮助我吗?谢谢!
==================================================== =========================
更多的:
我只是查看了setOutputCompressorClass
in的源代码FileOutputFormat
,其中conf.setClass("mapred.output.compression.codec", codecClass, CompressionCodec.class);
调用 setOutputCompressorClass 时,配置中的 mapred.output.compression.codec 似乎会被重置。
那么实际的压缩格式是我们最后设置的,不能在同一个job中设置两种不同的压缩格式?或者还有什么被忽略的?
amazon-s3 - 在 AWS EMR 上的 Hadoop 输出上使用 LZO 时,它是否会索引文件(存储在 S3 上)以供将来自动拆分?
我想对存储在 S3 上的 Elastic Map Reduce 作业的输出使用 LZO 压缩,但不清楚这些文件是否会自动编制索引,以便将来在此数据上运行的作业会将文件拆分为多个任务。
例如,如果我的输出是一堆 TSV 数据行,在 1GB LZO 文件中,未来的地图作业是否只会创建 1 个任务,或者类似 (1GB/blockSize) 的任务(即文件未压缩时的行为,或者目录中是否有 LZO 索引文件)?
编辑:如果这不是自动完成的,推荐什么让我的输出被 LZO 索引?在将文件上传到 S3之前进行索引吗?
python - 如何使用 LZF 或 LZO 过滤器在 Python 中压缩 HDF5 文件?
我的 hdf5 文件包含三个数组:ArrayA(30,100,100),ArrayB(100,100),ArrayC(100,100),如何使用 LZF 或 LZO 过滤器来压缩它们?