0
我有一个mapreduce作业,可导出hbase表的纯文本。我正在模拟带有hbase并且不运行任何reducer的Export类。另外,我只是为这个键写了一个空字符串。事情是这样的:小型映射器零件文件
public void map(ImmutableBytesWritable key, Result value, Context context) throws IOException, InterruptedException {
List<Cell> cells = value.listCells();
for(Cell cell : cells) {
context
.write(new Text(""), new Text(CellUtil.cloneValue(cell)));
}
}
这工作得很好,但我在然而,许多分裂的怜悯中有HBase的表方面的输出映射文件(例如部分M-NNNNN)的数量。
有没有办法在mapreduce作业中合并输出映射文件?
我已经考虑过使用一个1-50之间的随机整数作为键,然后使用一个reducer,然后在写出HDFS之前剥掉键,但是这看起来像是一个黑客。
如果我使用rowkey,我认为它会以相同的问题结束,因为这些密钥都非常不同,对吧? – javamonkey79
您将获得每个映射器的一个输出文件。既然你需要分裂,你无法避免这种情况。行键正在自然移动以维护唯一键。由于您只配置一个reducer,因此所有mapper输出文件都将被引导至一个reducer。因此只有一个输出文件。 – Ramzy
谢谢,我会尝试其中的一些 – javamonkey79