hadoop - 具有ResultSerialization的MultitableInput MapReduce

标签 hadoop mapreduce hbase

我知道在使用单个输入表的情况下会使用结果序列化。

TableMapReduceUtil.initTableMapperJob( tableName, scan, Mapper.class, Text.class, Result.class, job );

有什么想法可以在使用MultiTableInput(多次扫描作为输入)时实现相同的效果吗?
TableMapReduceUtil.initTableMapperJob( scans, SummaryMapper.class, Text.class, Result.class, job );

运行MR作业时出现以下错误:

INFO mapreduce.Job: Task Id : attempt_1492475015807_0003_m_000003_2, Status : FAILED Error: java.lang.NullPointerException at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.init(MapTask.java:988) at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:391) at org.apache.hadoop.mapred.MapTask.access$100(MapTask.java:80) at org.apache.hadoop.mapred.MapTask$NewOutputCollector.(MapTask.java:675) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:747) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)

最佳答案

我能够完成这个阶段。我在作业配置中明确指定了ResultSerialization类(但必须在创建作业实例之前完成)。

config.setStrings( "io.serializations", config.get( "io.serializations" ),
                    MutationSerialization.class.getName(), ResultSerialization.class.getName(),
                    KeyValueSerialization.class.getName() );

这是使用单个输入表初始化映射器时如何指定的。
如果对此有任何进一步的发现,我一定会更新此答案,以便对其他可能需要它的人有用。

关于hadoop - 具有ResultSerialization的MultitableInput MapReduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43476187/

相关文章:

java - HBase多表扫描作业

grails - 如何在Grails和Hadoop之间编写连接脚本?

hadoop - 在单个 hbase 表中创建多个 hbase 表或多个列族的最佳方法是什么

java - 如何使用 TableMapReduceUtil 在 hbase 扫描器结果上运行 mapreduce

hadoop - PIG - HBASE - 类型转换值

oracle - hadoop(sqoop)加载oracle的速度会比SQL loader快吗?

hadoop - Hive MapReduce 作业拆分文件

hadoop - 如何指定 Hadoop MapReduce 作业生成的目录的权限?

Hadoop - 当有 Spark 作业正在运行时,Sqoop 作业卡在已接受状态

hadoop - Hadoop Mapper为什么要对数据进行排序?