本人的一些总结

有关idea

1、maven仓库的问题
在这里插入图片描述

步骤:
1、先看看设置里面的仓库,是不是自己的仓库。如果不是的话,先换成自己的仓库。(必须注意的)
2、检查一下你本地库里面,是不是有未下载完的文件。类似与这样的文件,删一下,仓库可能没有下载完毕。
在这里插入图片描述
2、mvn package看看
百度mvn package的使用方法。

3、idea上就是爆出xxx.jar不存在,明明配置了自己的maven仓库。

mvn dependency:sources  // 命令jar包被下载下来

首选这种
在这里插入图片描述

在这里插入图片描述

有关flink

1、代码中容易忽略的地址问题。

只要没有new,就是同一个地址,也就是对同一个地址上的内容进行修改。

package com.atguigu.app.function;

import com.alibaba.fastjson.JSONObject;

public class test {


    public static void main(String[] args) {



       // {"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}
        JSONObject value=new JSONObject();
        value.put("db", "database") ;
        value.put("tablename", "table1");
        value.put("before1", "xyz");
        value.put("before2", "xyz");
        value.put("after", "123456");
        System.out.println(value.toString());


       // {"value":{"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}}
        JSONObject value1=new JSONObject();
        value1.put("value",value) ;



      // {"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}
        JSONObject data = value1.getJSONObject("value");

        String filterColumn = "db"+","+"tablename"+","+"after";


        test2.filterColumn(data, filterColumn);

        System.out.println(value1.toString());

    }

}

在这里插入图片描述

{"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}
{"value":{"after":"123456","tablename":"table1","db":"database"}}

用到的过滤方法

package com.atguigu.app.function;

import com.alibaba.fastjson.JSONObject;

import java.util.Arrays;
import java.util.List;

public class test2 {
    
    protected static void filterColumn(JSONObject data, String sinkColumns) {

        String[] fields = sinkColumns.split(",");
        List<String> columns = Arrays.asList(fields);

        data.entrySet().removeIf(next -> !columns.contains(next.getKey()));

    }
}

有关kafka

1、启动不起来Kafka

在这里插入图片描述

在日志中找到
在这里插入图片描述

在三台机器上面的/opt/module/kafka/datas路径下,分别:

/opt/module/kafka/datas下面的meta.properties的cluster.id改成iMgAX07PTsyBQnXIQZSfjA

kafka启动不输出消息到控制台,输出到指定的文件名。这里输出到temp.log中。temp.log的路径是执行命令时候的当前路径。也就是在Kafka下面。
在这里插入图片描述
在这里插入图片描述

参考来源

2、有的节点启动不起来

打开日志(KafkaServer.out文件),然后最后一行是这样的错误。

ERROR Shutdown broker because all log dirs in /opt/module/kafka/data
have failed (kafka.log.LogManager)

注意:如果是重要数据,一定要备份!!!不能只删除。
在这里插入图片描述
之前可能是删除过topic,爆出了这样的错误。
于是,试了一下,这样做是可以的,网上其他的做法试了不行。

在这里插入图片描述

有关hbase、phoenix

1、一定要退出安全模式,在启动hbase之前,否则会有一些错误,比如phoenix无法连接。

在这里插入图片描述

hdfs dfsadmin -safemode leave

在这里插入图片描述

2、phoenix迟迟连不上,首先检查安全模式的有没有关,不行的话,然后试试下面的方法。

在这里插入图片描述

在这里插入图片描述

3、hbase中的rowkey设计

HBase的rowkey设计一直都是难点和痛点,不合适的rowkey设计会导致读写性能、吞吐不佳等诸多问题。

hbase中的rowkey设计的参考文章

有关副本

HBase的副本机制是通过通过底层的HDFS实现的。所以,HBase的副本与分片是解耦的,是存储计算分离的。这使得region可以在RS之间灵活的移动,而不需要进行数据迁移,这赋予了HBase秒级扩容的能力和极大的灵活性。

好的分布是怎么样的?

  对于单个表而言,一个“好”的数据分布,应该是:
       -- 每个region的数据量大小相近,请求量(吞吐)接近,每台机器调度的region数量大致相同。
  这样,这张表的数据和访问能够均匀的分布在整个集群中,从而得到最好的资源利用率和服务质量,即达到负载均衡。当集群进行扩容、缩容时,我们希望这种“均衡”能够自动保持。
  如果数据分布未能实现负载均衡,则 ---负载较高的机器---  很容易称为整个系统的瓶颈,这台机器的响应慢,可能导致客户端的大部分线程都在等待这台机器返回,从而影响整体吞吐。所以,负载均衡是region划分和调度的重要目标。

负载均衡问题:

数据的逻辑分布:即region划分/分布,是rowkey到region的映射问题
数据的物理分布:即region在RS上的调度问题
访问的分布:即系统吞吐(请求)在各个RS上的分布问题,涉及数据量和访问量之间的关系,访问热点等。

HBase能够实现灵活调度、秒级扩容的关键

可见,一行数据的分布(找到一行数据所在的RS),存在2个层级的路由:
           一是rowkey到region的路由,
           二是region到RS的路由。
  这一点是HBase能够实现灵活调度、秒级扩容的关键。

逻辑分布 – 基于rowkey范围的region划分

就是:   一张表如何划分成多个region
region划分的粒度是行,region就是这个表中多个连续的行构成的集合。行的唯一标识符是rowkey,所以,可以将region理解为一段连续分布的rowkey的集合。所以,称这种方式为基于rowkey范围的划分。

一个region负责的rowkey范围是一个左闭右开区间,所以,后一个region的start key是前一个region的end key。注意,第一个region是没有start key的,最后一个region是没有end key的。这样,这个表的所有region加在一起就能覆盖任意的rowkey值域。
一般来说,region的生成有3种方式:

建表时进行预分区:通过对rowkey进行预估,预先划分好region
region分裂:手工分裂,或达到一定条件时自动分裂(如region大小超过一个阈值)
region合并:手工合并
所以,为了使表从一开始就具备良好的吞吐和性能,实际生产环境中建表通常都需要进行预分区。但也有一些例外,比如无法预先对rowkey范围进行预估,或者,不容易对rowkey范围进行均匀的拆分,此时,也可以创建只有一个region的表,由系统自己分裂,从而逐渐形成一个“均匀的”region分布。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值