WARN org.apache.hadoop.hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /hbase/.tmp/t2/.tmp/.tableinfo.0000000001 could only be replicated to 0 nodes, instead of 1
hbase(main):023:0* list
无相应表
排错
1.在hadoop查看有无此表的数据
hadoop fs -ls /hbase
也无此表的信息,说明没有创建成功
hadoop fs -ls /hbase hadoop/.tmp
也不相应内容
2.重新进入shell开启debug,创建一个不存在的表,看一下业务流程
hbase shell -d
创建表,发现了如下信息
13/05/06 11:15:03 DEBUG client.MetaScanner: Scanning .META. starting at row=lzotdsdsdest,,00000000000000 for max=2147483647 rows using org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@42db681c
这个发现说明建表先到‘.META.’表里去检查了有没有要创建的表,于是scan了一下,也没有我创建的表的信息。
13/05/06 11:15:03 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x13e77d2facc0005, packet:: clientPath:null serverPath:null finished:false header:: 9,4 replyHeader:: 9,596335,0 request:: '/hbase/root-region-server,T response:: #ffffffff000d3139383239406861646f6f70306861646f6f70302c36303032302c31333637383039393138343531,s{589701,589701,1367809925480,1367809925480,0,0,0,0,45,0,589701}
这个信息说明在zookeeper上做了相应的检查
./zkCli.sh
ls /hbase/root-region-server
没有什么发现
DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x13e77d2facc0005, packet:: clientPath:null serverPath:null finished:false header:: 10,4 replyHeader:: 10,596342,0 request:: '/hbase/table/lzotdsdsdest,F response:: #ffffffff000d3139363538406861646f6f7030454e41424c4544,s{596332,596338,1367810103284,1367810103537,2,0,0,0,25,0,596332}
这个信息说明在zookeeper上做了相应的检查
./zkCli.sh
ls /hbase/table
发现问题在这里有t2这个表
同是看一下上一组目录
ls /hbase
发现了一个table92目录进去看了一下,里面也有t2这个表
解决
找到了有地方存在这个表名,第一个想到的是删掉这个t2,把两个目录的t2目录删除,重启了一下hbase,居然奇迹的可以了,问题就解决了。
分享到:
相关推荐
在Java中操作HBase是一种常见的任务,特别是在大数据处理和存储的场景中。HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用...
首先,创建或检查HBase表是否存在,然后根据设计的HBase表结构,将Mysql数据转化为HBase的Put对象,并提交到表中。 4. **单元测试**:提供的单元测试文件用于验证数据转换的正确性。通常会模拟一些基本操作,如插入...
HBase 多表关联查找资料 本文将详细介绍 HBase 多表关联查找的知识点,涵盖了 HBase 表结构设计、rowkey 设计、columnfamily 设计、column 设计等方面的内容,并结合实际应用场景,提供了一些实用的设计方法和思路...
Java 操作 Hbase 进行建表、删表以及对数据进行增删改查 一、Hbase 简介 Hbase 是一个开源的、分布式的、基于 column-family 的 NoSQL 数据库。它是基于 Hadoop 的,使用 HDFS 作为其存储层。Hbase 提供了高性能、...
在HBase Shell中,可以创建表,如创建名为'teacher'的表,包含一个列族'username',设置版本数为5。创建表的命令是`create 'teacher',{NAME=>'username',VERSIONS=>5}`。之后,使用`put`命令向表中插入数据,例如为...
首先,确保你的开发环境已经配置好,包括安装了Scala、Maven、Hadoop和HBase。在Maven项目中,你需要在`pom.xml`文件中添加正确的依赖项。如上述描述所示,这里使用的是Hadoop 2.7.3、Scala 2.11、Spark 2.1.1和...
(3) 向已经创建好的表添加和删除指定的列族或列;(4) 清空指定的表的所有记录数据(5) 统计表的行数。2. 现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:
本文将详细介绍如何使用Java代码实现这一过程,包括样例MySQL表和数据,以及HBase表的创建。 首先,我们需要了解MySQL和HBase的基本概念。MySQL是一种关系型数据库管理系统,它基于ACID(原子性、一致性、隔离性和...
hbase表结构设计,新建表,查询表语句,删除表数据,删除表的例子。
1. **创建表**:使用HBase shell或Java API,通过`create '表名', '列族'`命令创建表,例如`create 'users', 'info'`创建名为users的表,列族为info。 2. **插入数据**:插入数据通过`put '表名', '行键', '列族:列...
假设有一个不知道是干什么表:) 表里需要存入人员和其相对应的部门信息 HBaseAdmin admin = new HBaseAdmin(configuration); List<Put> putuser = new ArrayList();
Java SpringBoot 连接 Hbase Demo 创建表 插入数据 列族 列 查询:全表、数据过滤 删除数据 删除表 Hbase 集群搭建:https://blog.csdn.net/weixin_42176639/article/details/131796472
- `list`:显示HBase中当前存在的所有表的信息。 - 示例:`list`。 3. **插入数据**: - `put 'tablename', 'rowkey', 'columnfamily:qualifier', 'value'`:将数据插入指定的表、行、列指定的位置。 - 示例:`...
8. **异常处理**:在使用HbaseTemplate时,需要注意处理可能出现的异常,如TableExistsException(表已存在)、TableNotFoundException(表不存在)等,确保程序的健壮性。 总之,Spring Data Hadoop的Hbase...
HBase RowKey 设计与协处理器运用 HBase 是一个基于 HDFS 的分布式、面向列的 NoSQL 数据库,具有高性能、可靠性和扩展性等特点。本文将详细介绍 HBase 的 RowKey 设计和协处理器运用。 HBase 的介绍 HBase 是一...
首先,HBase的表设计需要理解它的数据模型,该模型类似于键值存储,其中数据被组织到列族中,每个列族可以包含大量的列。表中的每个单元格数据都有一个时间戳,允许多个版本的存在。HBase表中的数据按行键的字典顺序...
实验旨在让参与者熟练掌握HBase的Shell操作,包括创建表、输入数据以及进行特定查询。以下是详细步骤及知识点解析: ### 1. HBase Shell基础 HBase Shell是HBase提供的命令行界面,用户可以通过它来与HBase集群...
首先需要创建一个HBaseConfiguration对象,然后使用HBaseAdmin类的createTable方法创建表。 ```java public static void create(String tablename, String columnFamily) throws Exception { HBaseAdmin admin = ...
public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put>{ private String tableName; private String columnFamily;...// 该列对应的索引表名字