`
zy19982004
  • 浏览: 661755 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
F6f66edc-1c1a-3859-b76b-a22e740b7aa7
Hadoop学习
浏览量:251940
社区版块
存档分类
最新评论

Hadoop学习三十六:使用BulkLoad时Bulk load operation did not find any files

 
阅读更多

一.错误

     使用BulkLoad向Hbase导入数据时出现了错误

2014-04-04 15:39:08,521 WARN  org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles - Bulk load operation did not find any files to load in directory hdfs://192.168.1.200:9000/user/root/output1.  Does it contain files in subdirectories that correspond to column family names?

      然后去看MapReduce的临时输出目录,果然没有data文件夹,只有_SUCCESS文件。

 

二.job.setMapOutputValueClass与job.setOutputValueClass

      这一定是Reduce的问题了,去看看HFileOutputFormat.configureIncrementalLoad(job, htable); 到底做了什么。

job.setOutputKeyClass(ImmutableBytesWritable.class);
    job.setOutputValueClass(KeyValue.class);
    job.setOutputFormatClass(HFileOutputFormat.class);

    // Based on the configured map output class, set the correct reducer to properly
    // sort the incoming values.
    // TODO it would be nice to pick one or the other of these formats.
    if (KeyValue.class.equals(job.getMapOutputValueClass())) {
      job.setReducerClass(KeyValueSortReducer.class);
    } else if (Put.class.equals(job.getMapOutputValueClass())) {
      job.setReducerClass(PutSortReducer.class);
    } else if (Text.class.equals(job.getMapOutputValueClass())) {
      job.setReducerClass(TextSortReducer.class);
    } else {
      LOG.warn("Unknown map output value type:" + job.getMapOutputValueClass());
    }

      Debug时发现,job.getMapOutputValueClass为KeyValue。再看看job.setMapOutputValueClass和job.setOutputValueClass的区别

getOutputValueClass	mapreduce.job.output.value.class
setOutputValueClass	mapreduce.job.output.value.class

setMapOutputValueClass	mapreduce.map.output.value.class
getMapOutputValueClass 	mapreduce.map.output.value.class

  /**
   * Set the value class for the map output data. This allows the user to
   * specify the map output value class to be different than the final output
   * value class.
   * 
   * @param theClass the map output value class.
   * @throws IllegalStateException if the job is submitted
   */
  public void setMapOutputValueClass(Class<?> theClass
                                     ) throws IllegalStateException {
    ensureState(JobState.DEFINE);
    conf.setMapOutputValueClass(theClass);
  }

  /**
   * Get the value class for the map output data. If it is not set, use the
   * (final) output value class This allows the map output value class to be
   * different than the final output value class.
   *  
   * @return the map output value class.
   */
  public Class<?> getMapOutputValueClass() {
    Class<?> retv = getClass(JobContext.MAP_OUTPUT_VALUE_CLASS, null,
        Object.class);
    if (retv == null) {
      retv = getOutputValueClass();
    }
    return retv;
  }

  

      也就是

  1. getMapOutputValueClass的值,在没有setMapOutputValueClass时,将使用setOutputValueClass的值。
  2. 允许map output value的class(即getMapOutputValueClass)和最终output value的(Reduceo output value的)class(即getOutputValueClass)不同。泛型类PutSortReducer<ImmutableBytesWritable, Put, ImmutableBytesWritable, KeyValue>说明map output value的class为Put,最终的为KeyValue。
  3. 上述同样适用于KeyClass。

     我在程序里job.setOutputValueClass(Put.class),改为job.setMapOutputValueClass(Put.class)即可。

 

 

三.HBase删除所有数据

     这个问题跟主题没有任何关系,就当做绿叶吧。

     昨天突然有一想法,如果不重装Hbase,有没有办法“格式化”HBase。

     首先想到的是删掉了Hdfs上hbase目录,再重启HBase,发现RegionServer连接不上Master。应该是-ROOT-表和.META.表已经被删掉了,RegionServer向zookeeper汇报心跳时,zookeeper去-ROOT-表里查找此RegionServer的相关信息,发现信息已经丢失,也就无法将此RegionServer信息通知给Master。删掉zookeeper信息,再次重启成功。

rm -rf /tmp/hbase-root*

 

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/tmp/hbase-root</value>  default
<description>Property from ZooKeeper's config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>

 

 

 

 

1
0
分享到:
评论

相关推荐

    hadoop-3.0.0 win工具包 hadoop.dll winutils.exe

    util.Shell (Shell.java:(694)) - Did not find winutils.exe: {} java.io.FileNotFoundException: Could not locate Hadoop executable: E:\hadoop-3.0.2\bin\winutils.exe -see ...

    大数据hadoop winutils.exe

    而针对Windows用户,开发和运行Hadoop应用时会遇到一个常见问题:“Did not find winutils.exe: java.io.FileNotFoundException”。这个错误是由于Hadoop在Windows环境下找不到`winutils.exe`文件所引起的。`...

    Hadoop学习总结之五:Hadoop的运行痕迹

    ### Hadoop运行痕迹追踪详解 #### 一、引言 Hadoop作为一种强大的分布式计算框架,在大数据处理领域扮演着举足轻重的角色。然而,随着其功能的不断...希望本文的内容能够对您在Hadoop的学习和使用过程中有所帮助。

    Spark跨集群bulk load(6-2)

    在大数据处理领域,Spark作为一个高效的分布式计算框架,广泛应用于数据处理、分析和机器学习任务。在实际的企业级应用中,经常需要将数据从一个Spark集群批量加载到另一个集群,这就是所谓的"Spark跨集群bulk load...

    MR程序Bulkload数据到hbase

    标题中的“MR程序Bulkload数据到hbase”指的是使用MapReduce(MR)程序批量加载(Bulkload)数据到HBase数据库的过程。MapReduce是Apache Hadoop框架中的一个关键组件,用于处理和生成大规模数据集。而HBase是一个...

    外网无法访问HDFS org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block

    报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 https://blog.csdn.net/xiaozhaoshigedasb/article/details/88999595  防火墙记得关掉; 查看DataNode是否启动;...

    winutils.exe:解决hadoop在windows运行出现的bug

    如果出现如下bug:“Could not locate executable null\bin\winutils.exe in the Hadoop binaries”,则下载该文件,放入hadoop的bin文件夹下,并设置环境变量HADOOP_HOME:F:\hadoop2.7.x即可。

    hadoop-auth-2.6.5-API文档-中英对照版.zip

    赠送jar包:hadoop-auth-2.6.5.jar 赠送原API文档:hadoop-auth-2.6.5-javadoc.jar 赠送源代码:hadoop-auth-2.6.5-sources.jar 包含翻译后的API文档:hadoop-auth-2.6.5-javadoc-API文档-中文(简体)-英语-对照版...

    hadoop学习笔记.rar

    三、Hadoop学习笔记之三:用MRUnit做单元测试 MRUnit是针对MapReduce任务的单元测试框架,它允许开发者对MapReduce作业进行单元测试,确保每个Mapper和Reducer的功能正确性。通过MRUnit,可以在不实际运行Hadoop集群...

    hadoop常见问题及解决办法

    然而,在使用Hadoop时,经常会遇到一些常见的问题,这些问题可能会导致Hadoop集群无法正常工作或者性能下降。因此,本文总结了一些常见的问题及解决办法,以帮助用户更好地使用Hadoop。 问题1:Shuffle Error: ...

    Hadoop学习总结和源码分析

    “Hadoop学习总结之三:Map-Reduce入门.doc”介绍了MapReduce编程模型,它是Hadoop处理数据的主要计算框架。Map阶段将输入数据分割成键值对,通过映射函数进行初步处理;Reduce阶段则将Map的输出聚合,通过化简函数...

    Hadoop 启动WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using

    搭建hadoop 环境时遇到启动异常告警问题 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable” 上来不多说,百度收集些相关...

    hadoop,hive,hbase学习资料

    【标题】:“hadoop,hive,hbase学习资料”是一份综合性的学习资源,涵盖了大数据处理领域中的三个核心组件——Hadoop、Hive和Hbase。这些工具在大数据处理和分析中发挥着至关重要的作用。 【描述】:描述指出这份...

    【SpringBoot】Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

    【SpringBoot】Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster报错明细问题解决后记 报错明细 IDEA SpringBoot集成hadoop运行环境,,本地启动项目,GET请求接口触发...

    传播智客-Hadoop实战视频教程下载:里面还包括环境搭建所需的文件、教程

    【Hadoop实战视频教程】是针对大数据处理领域的一款专业学习资源,主要涵盖了Hadoop的各个方面,包括环境搭建、核心组件的使用以及实际案例的应用。这个教程不仅提供了视频讲解,还包含有配套的环境搭建文件,使得...

Global site tag (gtag.js) - Google Analytics