一直使用hbase作大容量存储,因为hbase易于存取。
今天,在录入数据的时候,突然报出一个KeyValue size too large。很是奇怪。
后来发现,该数据特别大,经查源码
private void validatePut(final Put put) throws IllegalArgumentException{
if (put.isEmpty()) {
throw new IllegalArgumentException("No columns to insert");
}
if (maxKeyValueSize > 0) {
for (List<KeyValue> list : put.getFamilyMap().values()) {
for (KeyValue kv : list) {
if (kv.getLength() > maxKeyValueSize) {
throw new IllegalArgumentException("KeyValue size too large");
}
}
}
}
}
说明当某一列的值大于该值的时候,将会抛出该异常,又查看maxKeyValueSize,发现它调用的是hbase配置里的hbase.client.keyvalue.maxsize,默认大小为10M,即
10485760 。将它改大即可。
但是,当我修改完以后,启动hbase总是出问题,后来又将hbase-env.sh里的HBASE_HEAPSIZE改大。
后来又将mapred-site.xml中的mapred.tasktracker.indexcache.mb改大,至于大于hbase.client.keyvalue.maxsize,不知道有没有影响,以防万一吧,我觉得hbase的执行应该是跟job有关系的吧。
请大家多多指教
分享到:
相关推荐
- 将`Hbase.py`和`ttypes.py`文件复制到你的项目目录中,或者添加到Python的sys.path中,以便Python能够找到它们。 - 在你的Python代码中,不再尝试直接导入`hbase`模块,而是导入你自定义的`Hbase`模块,例如`...
在Java编程环境中,将本地文件读取并上传到HBase是一项常见的任务,特别是在大数据处理和存储的场景下。HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop,适用于大规模数据存储。以下是一个详细的过程,...
更新HBase的`regionservers`文件,添加新节点的主机名。重启HMaster服务,HBase会自动分配工作负载到新节点。 2. 移除节点:在HBase的`regionservers`文件中移除节点的主机名,然后停止该节点上的HBase服务。HBase会...
“NEWS_VISIT_CNT.txt”可能是一个测试数据文件,用于模拟新闻访问计数,这可能是为了测试HBase在实时分析、大数据处理或日志记录等场景下的性能和稳定性。 7. **测试目的**: 测试可能包括了压力测试(如并发...
《大数据HBase——Java API深度解析》 在大数据领域,HBase作为一个分布式、列式存储的NoSQL数据库,因其高效、可扩展的特性而被广泛...通过深入学习和实践,我们可以充分利用HBase的优势,解决大规模数据处理的挑战。
这些JAR文件为HBase提供了数据存储、分布式协调、任务调度等功能的支持,使得HBase能够在大规模分布式环境中高效地处理海量数据。 接下来,我们将讨论`hbase_libJar包`在Linux环境中的配置。在部署HBase时,正确...
在大数据处理领域,Hadoop和HBase是两个重要的组件。Hadoop主要负责大规模数据的分布式存储和计算,而HBase则是构建在Hadoop之上的分布式列式数据库,适合实时查询和大数据分析。本主题将详细讲解如何将HDFS(Hadoop...
HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop构建,用于存储大规模结构化数据。为了提高存储效率和降低网络传输负载,HBase支持对数据进行压缩,LZO就是其中的一种压缩方式。 LZO(Lempel-Ziv-...
HDFS 作为一种高效的分布式文件系统,非常适合大规模数据的存储和处理,而 HBase 则提供了一种灵活的方式来管理和查询大规模数据集。两者相结合,可以为企业级应用程序提供强大的数据管理和分析能力。理解它们的工作...
为了使Hive能够与HBase交互,我们需要在Hive的配置文件`hive-site.xml`中添加相关的JAR路径,以便Hive能够识别HBase的相关库。配置如下: ```xml <name>hive.aux.jars.path <value>file:///usr/lib/hive/lib/...
2. 在conf/hbase-env.sh文件中添加配置项,例如export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.6.0_18。 四、配置HBase 1. 新建hbase-site.xml文件,内容如下: ``` <name>hbase.rootdir <value>file:///...
我们需要将HBASE_HOME环境变量添加到/etc/profile文件中,以便在系统启动时生效: echo "export HBASE_HOME=/home/demo/hbase/hbase-1.2.2" >> /etc/profile echo "export PATH=$PATH:$HBASE_HOME/bin" >> /etc/...
为了启用HBase的审计日志功能,首先需要在`hbase-site.xml`文件中添加必要的配置项。可以通过Cloudera Manager(CM)或其他管理工具搜索并编辑`hbase-site.xml`文件,或者直接修改服务范围内的高级配置代码段中的HBase...
1. 配置启用MOB:在HBase的配置文件(如hbase-site.xml)中,添加或修改以下参数: - `hbase.mob.enabled`: 设置为true启用MOB功能。 - `hbase.mob.threshold`: 设定触发MOB存储的文件大小阈值,例如1MB。 2. ...
使用命令 `vim /usr/local/hbase/conf/hbase-site.xml` 编辑配置文件,在 `<configuration>` 元素中添加以下内容: ``` <name>hbase.rootdir <value>hdfs://localhost:9000/hbase <name>hbase.cluster....
要将SpringBoot集成HBase,需要添加以下依赖项: * spring-data-hadoop-hbase:提供了HBase的依赖项,版本号为2.5.0.RELEASE。 * hbase-client:提供了HBase的客户端依赖项,版本号为1.1.2。 * spring-data-hadoop...
编辑 `/usr/local/hbase/conf/hbase-env.sh` 文件,根据实际安装位置修改以下几项: ```bash # 注释掉以下两行,因为它们只适用于 JDK7 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:...
3. **配置步骤**:集成过程可能包括在Hive中添加HBase的元数据信息,配置HBase的连接参数,以及在Hive中创建外部表指向HBase表等步骤。 4. **使用示例**:教程可能包含创建HBase表,然后在Hive中创建对应的外部表并...
HBase 元数据修复工具包。 ①修改 jar 包中的application....②将core-site.xml、hdfs-site.xml添加到BOOT-INF/classes 下; ③开始修复 `java -jar -Drepair.tableName=表名 hbase-meta-repair-hbase-2.0.2.jar`