kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记

目录

hbase历险记

寻找问题

分析原因

解决方案

方案1(资源问题、失败)

方案2(成功)


寻找问题

        不知道你是不是有这样的疑惑。我kylin是个单机,我使用的hbase是个集群,但内存全在某一台机器上了。其实,这里kylin是单机还是集群都无所谓的,但hbase作为存储,为什么集群内存占用到了一台。

        我就在hbase shell中使用了hbase负载均衡的命令

balance_switch true

        过了一会发现并没有用。

        我就用knox做了网关,把hbase的页面信息代理了出来,进去浏览了一圈发现了

        

        通过网上的寻找,就是它。

分析原因

        通过反复查看寻找到了那个region的蛛丝马迹

        

        这里面就发现了,这个table记录了相当多的phoenix信息,而phoenix,是我以前用于测试同步数据的,现在早已没用了,而图中的那个1,就是目前仅存在的问题,进去看看。

        

        通过进入这个表,成功发现了这就是一个region,无法完成regionServer的分配,一直尝试造成的。

解决方案

        通过查阅资料,发现如下两种。

  • 手动分配
  • 主动删除

这里提前解释一下,为什么我两种方案都尝试了。虽然我在前面已经发现这个region现在就是个垃圾,但我抱着宁烂误缺的态度想试一下。

方案1(资源问题、失败)

        进入hbase的客户端,我执行了。

assign '3696b0faae0b67cdfe1627afd107cb2e'

        但过了一会,发现了问题,我的服务器资源疯狂飙升,我想赶快停了,这下麻烦了,磁盘越来越多。

        后面通过查询,发现了我没对WAL 文件做限制,他最终会导致我磁盘全部占满,而所有服务都无法运行。

        所以我想不尝试了,直接迅速快照、关闭hbase集群、删除/hbase/MasterProcWALs无用文件,删除回收站文件、添加配置、重启。

        限制WAL文件配置如下,添加到hbase-site.xml中:

<!-- 限制 WAL 文件的最大大小,以防止过大的 MasterProcWALs 文件 -->
<property><name>hbase.regionserver.hlog.maxfilesize</name><value>1073741824</value> <!-- 1 GB,根据需要进行调整 -->
</property>
<property><name>hbase.regionserver.hlog.roll.multiplier</name><value>0.95</value>
</property>
<property><name>hbase.master.logcleaner.ttl</name><value>600</value> <!-- 10分钟,根据需要进行调整 -->
</property>

        还好重启后没有异常。

方案2(成功)

        上面不行,那我就直接删除元数据了,执行删除命令,

deleteall 'hbase:meta','SYSTEM:LOG,\x08\x00\x00\x00,1615171260407.3696b0faae0b67cdfe1627afd107cb2e.'

发现了 0 row受影响。

        我突然反映过来无法识别\x,或者转义成了其他字符。然后我用匹配查询试一下,

        发现了我还没办法直接删了。果断使用java程序来删除。

        代码如下:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;/*** @author * @version 1.0* @date 2024/1/16 14:13* @desc :*/
public class DeleteFromMetaTable {public static void main(String[] args) throws Exception {Configuration config = HBaseConfiguration.create();try (Connection connection = ConnectionFactory.createConnection(config);Table metaTable = connection.getTable(TableName.valueOf("hbase:meta"))) {// Specify the row key you want to deletebyte[] rowKey = Bytes.toBytes("SYSTEM:LOG,\u0008\u0000\u0000\u0000,1615171260407.3696b0faae0b67cdfe1627afd107cb2e.");// Create Delete object with the specified row keyDelete delete = new Delete(rowKey);// Execute the delete operationmetaTable.delete(delete);System.out.println("Delete operation completed.");}}
}

           注意我已经将\x替换。

        打包,上传,运行,出现了:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

        接着我又修改了hadoop-env.sh文件,添加了

        

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/app/software/hbase-2.0.0/lib/*

        这个需要根据自己的hbase相关jar包决定。分发集群(无需重启)

        再运行java程序,成功。

        接下来关闭hbase集群,删除hdfs上/hbase/MasterProcWALs的文件。重启集群。

        进入到hbase页面查看(需等一会),发现,异常的region已经不在。

        接下来是负载均衡问题,一般是自动开启的。页面查看

       手动触发:

hbase(main):001:0> balance_switch true

        好一次惊心动魄的冒险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2使用qiankun微前端(跟着步骤走可实现)

需求&#xff1a;做一个vue2的微前端&#xff0c;以vue2为主应用&#xff0c;其他技术栈为子应用&#xff0c;比如vue3&#xff0c;本文章只是做vue2一套的微前端应用实现&#xff0c;之后解决的一些问题。vue3子应用可以看我另一篇vue3vitets实现qiankun微前端子应用-CSDN博客…

前端八股文(性能优化篇)

目录 1.CDN的概念 2.CDN的作用 3.CDN的原理 4.CDN的使用场景 5.懒加载的概念 6.懒加载的特点 7.懒加载的实现原理 8.懒加载与预加载的区别 9.回流与重绘的概念及触发条件 &#xff08;1&#xff09;回流 &#xff08;2&#xff09;重绘 10. 如何避免回流与重绘&#…

Deep MultimodalLearningA survey on recent advances and trends

深度多模态学习&#xff1a;对近期进展和趋势的综述 深度学习的成功已经成为解决越来越复杂的机器学习问题的催化剂&#xff0c;这些问题通常涉及多个数据模态。我们回顾了深度多模态学习的最新进展&#xff0c;并突出了该活跃研究领域的现状&#xff0c;以及存在的差距和挑战…

【动态规划】【C++算法】639 解码方法 II

作者推荐 【矩阵快速幂】封装类及测试用例及样例 涉及知识点 动态规划 字符串 滚动向量 LeetCode 639. 解码方法 II 一条包含字母 A-Z 的消息通过以下的方式进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 一条已编码的消息…

【已解决】c语言const/指针学习笔记

本博文源于笔者正在复习const在左与在右&#xff0c;指针优先级、a,&a,*a的区别。 1、const在左与在右 int const *p const int *p int * const p int const * const p const int * const p* 在const右边&#xff0c;指向的数据不可以改变&#xff0c;可以改变地址 * 在c…

不同打包工具下的环境变量配置方式对比

本文作者为 360 奇舞团前端开发工程师 天明 前言 在现代的JavaScript应用程序开发中&#xff0c;环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置&#xff0c;例如开发、测试和生产环境。最常见的需求是根据不同的环境&#xff0c;配置如是否开启sour…

数据分析中常用的指标或方法

一、方差与标准差二、协方差三、皮尔逊系数四、斯皮尔曼系数 一、方差与标准差 总体方差 V a r ( x ) σ 2 ∑ i 1 n ( x i − x ˉ ) 2 n ∑ i 1 n x i 2 − n x ˉ 2 n E ( x 2 ) − [ E ( x ) ] 2 Var(x)\sigma^2\frac {\sum\limits_{i1}^{n} (x_i - \bar{x})^2} {n…

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

2023 年是检索增强生成 (RAG) 的一年&#xff0c;人们探索了许多用例&#xff0c;并使用该技术开发了数百种产品。 从 Q/A 聊天机器人到基于上下文的代理&#xff0c;RAG 的使用一直是 LLM 申请快速增长的主要因素。 支持不断发展的社区以及 Langchain 和 LlamaIndex 等强大框架…

【Java SE】类和对象详解

文章目录 1.什么是面向对象2. 类的定义和使用2.1 简单认识类2.2 类的定义格式 3. 类的实例化3.1 什么是实例化3.1.1 练习&#xff08;定义一学生类&#xff09; 3.2 类和对象的说明 4. this 引用5. 构造方法6. 对象的初始化6.1 默认初始化6.2 就地初始化 7. 封装7.1 封装的概念…

spingboot 集成identityserver4身份验证

一、新建项目&#xff1a;com.saas.swaggerdemo 详情见&#xff1a;spring-boot2.7.8添加swagger-CSDN博客 在之前项目基础上添加如下依赖 <dependency><groupId>com.nimbusds</groupId><artifactId>nimbus-jose-jwt</artifactId><version&…

MATLAB - 为机械臂路径选择轨迹

系列文章目录 前言 本示例概述了机器人系统工具箱™中可用的轨迹类型。在机械手运动、规划和控制应用中&#xff0c;必须为机器人选择轨迹。本示例有三个主要部分。第一部分展示了机械手使用的轨迹类型&#xff0c;第二部分演示了生成轨迹的功能&#xff0c;最后一部分则展示了…

hadoop-common: CMake failed with error code 1

问题 在编译hadoop源码时遇到如下错误 hadoop-common: CMake failed with error code 1 看了这个错误表示一脸懵逼 排查 在mvn 的命令中增加 -X 和 -e mvn clean package -e -X -Pdist,native -DskipTests -Dmaven.javadoc.skip -Dopenssl.prefix/usr/local/bin/openssl 在…

CentOs7.8安装原生Jenkins2.38教程

CentOs7.8安装Jenkins教程 前提&#xff1a;1、下载安装包2、安装&#xff1a;3、检验是否安装成功&#xff1a;4、查询java路径5、修改配置文件6、创建jenkins用户7、给jenkins用户授权8、开放防火墙端口9、运行和其他jenkins相关命令10、异常情况10.1 提示超时&#xff0c;查…

Linux之kernel(20)kdump支持

Linux之kernel(21)kdump介绍 Author&#xff1a;OnceDay Date&#xff1a;2024年1月14日 漫漫长路&#xff0c;有人对你微笑过嘛… 参考文档&#xff1a; 3.3.2 内核态调测工具&#xff1a;kdump&crash——kdump - 知乎 (zhihu.com)Kernel crash dump | Ubuntu[Linux]K…

工业企业能源管理平台,可以帮助企业解决哪些方面的能源问题?

随着全球工业化进程的加快&#xff0c;工业企业在生产经营过程中消耗的能源也越来越庞大。能源成本的上升和环境保护的压力使得工业企业对能源管理的重要性有了深刻的认识。为了提高能源利用效率、降低能源消耗、减少环境污染&#xff0c;工业企业在能源管理方面迫切需要一套规…

计算机毕业设计 基于SSM的历史/博物馆藏系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

浅谈SQL优化

避免使用子查询 例&#xff1a; select * from t1 where id in (select id from t2 where name lolly1023);其子查询在MySQL5.5版本里&#xff0c;内部执行计划是&#xff1a;先查询外表再匹配内表&#xff0c;而不是先查内表t2&#xff0c;当外表的数据很大时&#xff0c;查…

10.9.2 std::function 代替函数指针 Page182~183

std::function是一个模板类&#xff0c;基本可作为函数指针的代替品&#xff0c;具备更多功能&#xff0c;特别是与函数对象及bind配合使用。使用std::function时&#xff0c;需要添加头文件 #include <functional> 1.定义函数指针 18行&#xff0c;定义了一个函数指针类…

SpringBoot的yml多环境配置3种方法

文章目录 SpringBoot的yml多环境配置3种方法1、多个yml文件1.1、创建多个配置文件applicaiton.yml中指定配置 2、单个yml文件3、在pom.xml中指定环境配置3.1、创建多个配置文件3.2、在application.yml中添加多环境配置属性3.3、在pom.xml中指定使用的配置3.4、问题&#xff1a;…

Mysql root 密码重置详解

文章目录 1 概述1.1 前言1.2 mysql 版本查询 2 windows 操作系统2.1 mysql 8 及以上版本2.1.1 关闭 mysql 服务2.1.2 通过无认证方式启动 mysql2.1.3 新开窗口&#xff0c;登录 mysql&#xff0c;重置密码 1 概述 1.1 前言 不同的操作系统&#xff08;如&#xff1a;windows、…