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

news2024/10/6 10:26:41

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 delete
            byte[] rowKey = Bytes.toBytes("SYSTEM:LOG,\u0008\u0000\u0000\u0000,1615171260407.3696b0faae0b67cdfe1627afd107cb2e.");

            // Create Delete object with the specified row key
            Delete delete = new Delete(rowKey);

            // Execute the delete operation
            metaTable.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.coloradmin.cn/o/1390974.html

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

相关文章

虚拟机 以及 Centos 7的 安装全过程

目录 安装VMwere Workstion 虚拟机的操作过程 CentOS 7 安装过程 install CentOS 7 安装操作系统 安装VMwere Workstion 虚拟机的操作过程 更改安装位置 到下面图片中的这一个步骤&#xff0c;可以点击许可证&#xff0c;输入密钥就可以使用了&#xff0c; 密钥可以去某度或…

【保姆级教程|YOLOv8添加注意力机制】【2】在C2f结构中添加ShuffleAttention注意力机制并训练

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【SpringBoot框架篇】35.kafka环境搭建和收发消息

kafka环境搭建 kafka依赖java环境,如果没有则需要安装jdk yum install java-1.8.0-openjdk* -y1.下载安装kafka kafka3.0版本后默认自带了zookeeper&#xff0c;3.0之前的版本需要单独再安装zookeeper,我使用的最新的3.6.1版本。 cd /usr/local wget https://dlcdn.apache.…

SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式

单机模式&#xff1a;单台缓存服务器&#xff0c;开发、测试环境下使用&#xff1b;哨兵模式&#xff1a;主-从模式&#xff0c;提高缓存服务器的高可用和安全性。所有缓存的数据在每个节点上都一致。每个节点添加监听器&#xff0c;不断监听节点可用状态&#xff0c;一旦主节点…

x-cmd pkg | public-ip-cli - 公共 IP 地址查询工具

简介 public-ip-cli 是一个用 Javascript 编写的命令行工具&#xff0c;用于获取当前计算机或网络所使用的公共 IP 地址。 它可以让用户在命令行界面上查询 OpenDNS、Google DNS 和 HTTPS 服务的 DNS 记录以获取与互联网通信时所分配的公共 IP 地址。 首次用户 使用 x env us…

成功解决VScode进入到内置函数中调试

主要有两个关键步骤&#xff0c; 第一步 将launch.json中的"justMyCode"设为false 可通过使用ctrlshiftP搜索lauch.json找到次文件 如果找不到的话&#xff0c;可点击debug按钮&#xff0c;然后找到点击create a launch.json file创建 创建得到的launch.json如下&am…

四大软件架构:掌握单体、分布式、微服务、Serverless 的精髓

四大软件架构&#xff1a;掌握单体、分布式、微服务、Serverless 的精髓 简介&#xff1a; 如果一个软件开发人员&#xff0c;不了解软件架构的演进&#xff0c;会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点&#xff0c;…

isis小实验

要求: 1.合理规划level1-2 2.r1访问r5走r6且走上面 3.全网可达 个人理解:以重发布的视角:is-level level1即L1可以看做rip,L2可以看做OSPF,L1-2可以看作是既要rip又要OSPF,优点:isis只用在每个路由器上宣告一次 缺点:isis需要每个接口上输isis enable 1(序号)特点:L1-2会自动下…

Java、C#、Python间的Battle

一、编译原理和开发效率 编译速度&#xff1a; C# &#xff08;约大于等于&#xff09; JAVA > Python python的编译原理 前提&#xff1a;python 3.6 python不会直接编译源码 而是把源码直接扔给解释器&#xff0c;这种方式 使得python非常灵活&#xff0c;让它的开发效…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署&#xff08;192.168.41.31&#xff09; 环境准备 搭建Consul服务 查看集群信息 registrato…

uniCloud ---- uni-captch实现图形验证码

目录 用途说明 组成部分 目录结构 原理时序 云端一体组件介绍 验证码配置&#xff08;可选&#xff09;&#xff1a; 普通验证码组件 公共模块 云函数公用模块 项目实战 创建云函数 创建注册页 创建云函数 关联公用模块 uni-captcha 刷新验证码 自定义实现 验…

Go新项目-为何选Gin框架?(0)

先说结论&#xff1a;我们选型Gin框架 早在大概在2019年下旬&#xff0c;由于内部一个多线程上传的需求&#xff0c;考虑到Go协程的优势&#xff1b; 内部采用Gin框架编写了内部的数据上传平台BAP&#xff0c;采用GinVue开发&#xff0c;但前期没考虑到工程化思维&#xff0c;导…

用LED数码显示器伪静态显示数字1234

#include<reg51.h> // 包含51单片机寄存器定义的头文件 void delay(void) //延时函数&#xff0c;延时约0.6毫秒 { unsigned char i; for(i0;i<200;i) ; } void main(void) { while(1) //无限循环 { P20xfe; …

.Net 8.0 Web API Controllers 添加到 windows 服务

示例源码下载&#xff1a;https://download.csdn.net/download/hefeng_aspnet/88747022 创建 Windows 服务的方法之一是从工作线程服务模板开始。 但是&#xff0c;如果您希望能够让它托管 API 控制器&#xff08;也许是为了查看它正在运行的进程的状态&#xff09;&#xff0…

IC验证——perl脚本ccode_standard——c代码寄存器配置标准化

目录 1 脚本名称 2 脚本路径 3 脚本参数说明 4 脚本操作说明 5 脚本代码 1 脚本名称 ccode_standard 2 脚本路径 /scripts/bin/ccode_standard 3 脚本参数说明 次序 参数名 说明 1 address (./rfdig&#xff1b;.&#xff1b;..&#xff1b;./boot) 指定脚本执行路…

如何避免知识付费小程序平台的陷阱?搭建平台的最佳实践

随着知识经济的兴起&#xff0c;知识付费已经成为一种趋势。越来越多的人开始将自己的知识和技能进行变现&#xff0c;而知识付费小程序平台则成为了一个重要的渠道。然而&#xff0c;市面上的知识付费小程序平台琳琅满目&#xff0c;其中不乏一些不良平台&#xff0c;让老实人…

【零基础入门Python数据分析】Anaconda3 JupyterNotebookseaborn版

目录 一、安装环境 python介绍 anaconda介绍 jupyter notebook介绍 anaconda3 环境安装 解决JuPyter500&#xff1a;Internal Server Error问题-CSDN博客 Jupyter notebook快捷键操作大全 二、Python基础入门 数据类型与变量 数据类型 变量及赋值 布尔类型与逻辑运算…

flutter报错Cannot hit test a render box that has never been laid out

出现这个问题的原因可能是因为你把一个ListView或者GridView放到了一个没有设置大小的容器里面导致的&#xff0c;所以意思是不能渲染那一个没有布局过的容器。我这里遇到的错误是因为我把GridView放到了一个Container里面&#xff0c;并且我没有设置Container宽高。 就导致了那…

linux如何排查cpu持续飙高原因

一、检查CPU使用率 首先在Linux系统中检查CPU使用率。可以通过在命令行中输入top或htop命令来查看当前系统中各个进程的CPU使用率。如果CPU使用率大于80%&#xff0c;则可以考虑进行排查。 $ top二、检查系统负载 另外可以使用uptime命令来查看系统的平均负载情况。 $ upti…

elasticsearch6.6.0设置访问密码

elasticsearch6.6.0设置访问密码 第一步 x-pack-core-6.6.0.jar第二步 elasticsearch.yml第三步 设置密码 第一步 x-pack-core-6.6.0.jar 首先破解 x-pack-core-6.6.0.jar 破解的方式大家可以参考 https://codeantenna.com/a/YDks83ZHjd 中<5.破解x-pack> 这部分 , 也可…