当前位置: 首页 > 知识库问答 >
问题:

MapReduce作业无法从HBase读取(抛出java.lang.NoClassDefoundError)

宋健柏
2023-03-14

我的目标是在Cloudera集群上运行一个简单的MapReduce作业,该作业从虚拟HBase数据库读取并写入HDFS文件。

一些重要的注意事项:-我以前在这个集群上成功运行过MapReduce作业,这些作业将HDFS文件作为输入,并写入HDFS文件作为输出。-我已经将用于编译项目的库从“纯”HBase替换为HBase-cloudera jars-当我以前遇到这类问题时,我只是简单地将库复制到分布式缓存中(在Google Guice中适用):JobConf conf=new JobConf(getConf(),parsejobconfig.class);DistributedCache.addCacheFile(新URI(“/user/hduser/lib/3.0/guice-multibindings-3.0.jar”),conf);但现在它不起作用了,因为使用HBaseConfiguration类来创建配置(在配置存在之前)--Cloudera版本是5.3.1,Hadoop版本是2.5.0

这是我的驱动程序代码:

public class HbaseJobDriver {
    public static void main(String[] args) throws Exception {
    Configuration conf = HBaseConfiguration.create();
    Job job = new Job(conf, "ExampleSummaryToFile");
    job.setJarByClass(HbaseJobDriver.class);

    Scan scan = new Scan();
    scan.setCaching(500); 
    scan.setCacheBlocks(false);

    TableMapReduceUtil.initTableMapperJob("Metrics", 
    scan, 
    HbaseJobMapper.class,
    Text.class,
    IntWritable.class, 
    job);

    job.setReducerClass(HbaseJobReducer.class); 
    job.setNumReduceTasks(1);
    FileOutputFormat.setOutputPath(job, new Path(args[0]));
  }
}

我不确定是否需要映射器/还原器类来解决这个问题。

我得到的异常是:线程“main”java.lang.NoClassDeffounderRror:org/apache/hadoop/hbase/hbaseConfiguration

共有1个答案

尹小云
2023-03-14

我们刚刚和我的同事一起解决了这个问题,在我们的例子中,我们需要更新.bashrc文件:

  1. 纳米~/.bashrc
  2. 将库放入类路径,如下所示:

hbase_path=/opt/cloudera/parcels/cdh/jars

<代码>。.bashrc

 类似资料:
  • 我正在尝试读取配置为Avro格式的map reduce函数的结果,但我不能。 part-00000文件的头部看起来像这样: 0 等等(左边的数字在文件中!!)。 我怎么能读这个文件?

  • 我正在尝试创建一个地图减少工作在Java的表从一个HBase数据库。使用这里的示例和internet上的其他内容,我成功地编写了一个简单的行计数器。然而,试图编写一个实际对列中的数据执行某些操作的程序是不成功的,因为接收的字节总是空的。 我的司机工作的一部分是这样的: 如您所见,该表称为。我的映射器如下所示: 一些注意事项: 表中的列族只是。有多个列,其中一些列称为和(第一次看到); 即使值正确显

  • 我正在尝试用PySpark从HBase写/读。 环境: null 我的火花提交是: 当我写到HBase时,一切都很好,数据从mydf保存到HBase表中。 当我试图阅读时,它很好,只有在激发行动之前。df.show()-导致错误。

  • 贡献者:BridgetLai Apache MapReduce 是 Apache Hadoop 提供的软件框架,用来进行大规模数据分析.MapReduce 已超出本文档范围,可通过如下文档学习https://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTuto

  • 我是Hadoop的MapReduce的新手。我已经编写了一个map-reduce任务,我正在尝试在本地计算机上运行它。但这项工作在地图绘制完成后就悬而未决了。 下面是代码,我不明白我错过了什么。 我有一个自定义密钥类 使用自定义键的映射器和缩减器类如下。 我还在main中创建了一个作业和配置。不知道我错过了什么。我在本地环境下运行这一切。

  • 我写作业MapReduce,输入是HBase中的一个表。 作业运行时,had错误: 你能帮我修一下吗。