首页 >> 大全

有关idea

2023-07-20 大全 35 作者:考证青年

有关idea

1、maven仓库的问题

步骤:

1、先看看设置里面的仓库,是不是自己的仓库。如果不是的话,先换成自己的仓库。(必须注意的)

2、检查一下你本地库里面,是不是有未下载完的文件。类似与这样的文件,删一下,仓库可能没有下载完毕。

2、mvn 看看

百度mvn 的使用方法。

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

mvn : // 命令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 columns = Arrays.asList(fields);data.entrySet().removeIf(next -> !columns.contains(next.getKey()));}
}

有关kafka

1、启动不起来Kafka

日志中找到

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

/opt//kafka/datas下面的meta.的.id改成jA

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

参考来源

2、有的节点启动不起来

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

ERROR all log dirs in /opt//kafka/data

have (kafka.log.)

注意:如果是重要数据,一定要备份!!!不能只删除。

之前可能是删除过topic,爆出了这样的错误。

于是,试了一下,这样做是可以的,网上其他的做法试了不行。

有关hbase、

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

hdfs - leave

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

3、hbase中的设计

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

hbase中的设计的参考文章

有关副本

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

好的分布是怎么样的?

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

负载均衡问题:

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

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

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

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

就是:   一张表如何划分成多个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分布。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了