小编yos*_*osi的帖子

Hadoop - 直接从Mapper写入HBase

我有一个haddop作业,它的输出应写入HBase.我真的不需要reducer,我想插入的那种行在Mapper中确定.

我如何使用TableOutputFormat来实现这一目标?从我看到的所有示例中,我们假设reducer是创建Put的那个,而TableMapper只是用于从HBase表读取.

在我的情况下输入是HDFS输出是放到特定的表,我在TableMapReduceUtil中找不到任何可以帮助我的东西.

有什么例子可以帮助我吗?

顺便说一下,我正在使用新的Hadoop API

java hadoop hbase mapreduce

8
推荐指数
2
解决办法
1万
查看次数

Hadoop gzip输入文件只使用一个映射器

可能重复:
为什么hadoop不能拆分大文本文件然后使用gzip压缩拆分?

我发现当使用gzip压缩的输入文件时,Hadoop选择只分配一个map任务来处理我的map/reduce作业.

gzip文件超过1.4 GB,所以我希望许多映射器并行运行(就像使用非压缩文件时一样)

我有什么配置可以改进吗?

gzip hadoop mapreduce

4
推荐指数
1
解决办法
5292
查看次数

级联 - 合并2个聚合

我有以下问题whicj我试图用级联解决:我有结构的记录的csv文件:o,a,f,i,c

我需要通过o,a,f来汇总记录,并将每组的i和c相加.

例如:

100,200,300,5,1

100,200,300,6,2

101,201,301,20,5

101,201,301,21,6

应该产量:

100,200,300,11,3

101,201,301,41,11

我无法理解如何合并我拥有的每个实例(我可以在同一时间聚合两个字段吗?).

你有什么主意吗?

Yosi

public class CascMain {

public static void main(String[] args){

    Scheme sourceScheme = new TextLine(new Fields("line"));
    Tap source = new Lfs(sourceScheme, "/tmp/casc/group.csv");

    Scheme sinkScheme = new TextDelimited(new Fields("o", "a", "f", "ti", "tc"), ",");
    Tap sink = new Lfs(sinkScheme, "/tmp/casc/output/", SinkMode.REPLACE);

    Pipe assembly = new Pipe("agg-pipe");

    Function function = new RegexSplitter(new Fields("o", "a", "f", "i", "c"), ",");
    assembly = new Each(assembly, new Fields("line"), function);

    Pipe groupAssembly = new GroupBy("group", …
Run Code Online (Sandbox Code Playgroud)

java hadoop cascading

3
推荐指数
1
解决办法
1519
查看次数

标签 统计

hadoop ×3

java ×2

mapreduce ×2

cascading ×1

gzip ×1

hbase ×1