java - 合并 HDFS 中小于 128MB 的压缩 lzo 文件
问题描述
我正在尝试将 Kb 大小的小 hdfs 文件合并为 128MB 大小的文件。所有这些 kb 大小的文件都是 lzo 压缩的 谁能帮忙解决这个问题?这是我到目前为止所尝试的。
hadoop jar
/opt/cloudera/parcels/CDH/jars/hadoop-streaming-2.6.0-cdh5.15.1.jar
-Dmapred.reduce.tasks=10 -Dmapred.reduce.output.compression.codec=lzo -Dmapred.output.compress=true mapred.output.compression.type=lzo -input "/user/input"
-output "/user/input_tmp"
-mapper cat -reducer cat
这里的问题是我的输出是未压缩的部分文件,但我希望它是压缩的 .lzo 文件,如 part-r-00001.lzo ...
解决方案
-D 和属性名称之间需要空格。你也可以使用
-D mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec
反而
-Dmapred.reduce.output.compression.codec=lzo
还要检查您的 xsite.xmls,如 core-site 和 mapred-site.xmls 是否与 LZO 正确配置
推荐阅读
- spring - Spring集成sftp问题
- javascript - Nodejs、Express 和 WebSockets:将消息中继到发送者以外的所有客户端
- ios - ARKit:将多个物体放置在室外时,虚拟物体固定在相机框架上
- asterisk - 将 sip 呼叫转接到号码
- vue.js - 如何使用 VueX 存储多个 api 的数据并将属性添加到响应中
- mysql - 在 ASP.NET Core 中连接到 MySql 数据库
- javascript - 悬停在另一个 div 上时显示和隐藏按钮
- eclipse - 为什么 Eclipse 有两个“Referenced Libraries”文件夹,“Referenced Libraries”文件夹与“Web App Libraries”文件夹有何不同?
- php - Laravel 邮件外观:如何单独发送给收件人数组?
- java - RxJava:merge() 改变了发射项目的顺序?