- 博客(69)
- 收藏
- 关注
原创 HBase监控
Prometheus+Grafana搭建HBase监控参考https://blog.youkuaiyun.com/devcloud/article/details/115069449
2021-11-07 22:48:45
1351
原创 需要监控JanusGraph的一些指标
一.官方文档中说明开启metrics可以监控JanusGraph中的指标:1.开始,提交和回滚的事务数2.每种存储后端的尝试和失败的操作类型3.每种存储后端操作类型的响应时间分布实际操作后,在配置文件中配置控制台输出后,在控制台会具体输出,截图如下:可以看到包括如下:1.当前统计指标的时间精确到秒2.统计所有不同操作的数量Countera.事务的相关统计b.操作数据的相关统计c.不同存储后端操作统计3.统计数据的直方图表示Histogram,包括中位数,最大最小值,方差等4.统计操
2021-11-04 14:37:13
1000
原创 开启JanusGraph中的监控功能
开启JanusGraph中的metrics功能进行监控:1.在配置文件中指定配置项# Copyright 2019 JanusGraph Authors## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at
2021-11-03 18:08:53
369
原创 使用java连接JanusGraph进行操作,hbase报错信息为:Caused by: org.apache.hbase.thirdparty.io.netty.channel.AbstractCh
报错部分截图如下:部分代码截图如下:
2021-11-03 10:50:32
2113
原创 JanusGraph报错:Unknown external index backend
使用java连接JanusGraph进行创建图操作,报错地方是程序运行第50行代码其作用是生成混合索引,截图如下:后在0.6版本官方文档发现有说明先贴一份截图:具体说明如下:The example above defines a mixed index containing the property keys name and age. The definition refers to the indexing backend name search so that JanusGraph know
2021-11-02 18:19:17
195
原创 Caused by: java.lang.RuntimeException: can not run elasticsearch as root
爆报错截图如下:此错误是在centos7中启动elasticsearch6.0是报的错,原因报错中也已经写明是因为elasticsearch不能用root用户启动,解决方法如下:1.需要新建个用户组与用户:groupadd elsearchuseradd elsearch -g elsearchpasswd elsearch2.给用户赋予权限cd /optchown -R elsearch:elsearch elasticsearch-6.0.13.再次切换用户重新启动:su else
2021-10-27 09:55:58
1178
原创 (面试)java基础-== 和 equals 的区别?
== 是比较栈帧中局部变量表的值,如果变量是基本数据类型,则栈内存中存放的就是具体数值,如果是引用类型,则栈中存放的是引用的内存地址。所以对于基本数据类型,== 是比较值是否相等,对于引用数据类型,比较的是引用的内存地址是否相等。equals 是 Object 类中的一个方法,其本质就是在用 == 进行判断。作为Object 的子类String重写了equals方法:首先判断引用地址是否相同,不同则判断值是否相同类似的还有File类也重写了此方法...
2021-10-09 11:09:30
90
原创 hdfs小文件问题
一.dfs小文件带来的危害1.在HDFS中数据和元数据分别由DataNode和NameNode负责,这些元数据每个对象一般占用大约150个字节。大量的小文件相对于大文件会占用大量的NameNode内存。对NameNode内存管理产生巨大挑战,可能会导致JVM频繁发生GC。2.NameNode重启时,它需要将文件系统元数据从本地磁盘加载到内存中。如果NameNode的元数据很大,重启速度会非常慢。3.NameNode会不断跟踪并检查集群中每个block块的存储位置。这是通过DataNode的定时心跳上报
2021-10-08 21:29:48
664
原创 算法-二叉树的最近公共祖先
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。思路:可能的情况有两种,如下图:贴上代码:public class LowestCommonAncestor { @Test public void test(){ TreeNode head = new TreeNode(1); head.left = new TreeNode(2); head.right = new TreeNode(3); head.l
2021-09-27 21:08:38
74
原创 算法-打印一个字符串的全部子序列,包括空字符串
题目:打印一个字符串的全部子序列,包括空字符串假如该字符串为"abc"则用画图的方式穷举所有可能代码如下:public class PrintAllSubsquences { /** * 方法一 * @param str */ public static void function(String str) { char[] chs = str.toCharArray(); process(chs, 0, new Arra
2021-09-09 21:37:37
172
原创 MySQL文件
参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。日志文件:用来记录MySQL实例对某种条件做出相应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。套接字文件:当用UNIX域套接字方式进行连接时需要的文件。pid文件:MySQL实例的进程ID文件。表结构定义文件:用来存放MySQL表结构定义文件。InnoDB存储引擎文件:存储引擎都会有自己的文件来保存各种数据。这些存储.
2021-09-04 23:20:52
76
原创 MySQL事务隔离级别
SQL 标准定义了四种隔离级别,MySQL 全都支持。这四种隔离级别分别是:读未提交(READ UNCOMMITTED)读已提交 (READ COMMITTED)可重复读 (REPEATABLE READ)串行化 (SERIALIZABLE)MySQL默认的隔离级别为可重复读以下几个概念是事务隔离级别要实际解决的问题:脏读脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据,这就是脏读。
2021-09-04 23:14:05
79
原创 算法-链表-给定一个数小于该值的在左边等于在中间大于的在右边
题目:给定一个单链表的头节点head,节点的值类型是整型,再给定一个整数pivot。实现一个调整链表的函数,将链表调整为左部分都是值小于pivot的节点,中间部分都是值等于pivot的节点,右部分都是值大于pivot的节点。思路:新建六个指针分别为小于给定值的头节点,尾节点;等于给定值的头节点,尾节点;大于给定值的头节点,尾节点。然后还需要一个next指针保存当前节点的下一个节点。具体代码:public ListNode listPartition(ListNode head,int target
2021-09-02 21:52:37
497
原创 算法-打印两个有序链表的公共部分
题目要求:给定两个有序链表的头指针node1和node2,打印两个链表的公共部分。思路:比较简单,用两个指针从头节点开始遍历,比较两个节点的值,有三种情况1.如果node1的指针指向的值大于node2的指针指向的值值,将node2的指针指向后一个节点。2.如果node1的指针指向的值小于node2的指针指向的值值,将node1的指针指向后一个节点。3.如果node1的指针指向的值等于node2的指针指向的值值,打印节点的值,将node2的指针和node1的指针都指向后一个节点。该过程在while循
2021-08-31 17:35:06
372
原创 算法-反转单链表
1.非递归的解法先上代码:public static LinkNode singleReverse(LinkNode node){ if (node == null) return null; LinkNode head = null; LinkNode next = null; while (node != null){ next = node.next; node.
2021-08-31 17:20:49
91
原创 java设计模式-模板模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。实例代码:package com.zgy.ThreadAllDemo.CreateThreadDemo.day13.java1;/** * @Author Rabindranath Tagore 515783116@qq.com * @Date 2021/8/31 15:56 */public class TemplateMethodTest { publi
2021-08-31 16:05:25
75
原创 java基础-单例模式的懒汉模式和饿汉模式
饿汉式class Taekea{ private Taekea(){ System.out.println("创建了Taekea对象"); } private static Taekea instance = new Taekea(); public static Taekea getInstance() { return instance; }}懒汉式class Bank{ private static vola
2021-08-30 20:28:17
218
原创 java基础-static
1.static静态的(存在方法区的静态域):2.static可以用来修饰:属性,方法,代码块,内部类3.使用static修饰属性:静态变量,类变量 1.静态属性 vs 非静态属性(实例变量) 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象中的 非静态属性时,不会导致其它对象中同样的属性值的修改。 2.我们创建了类的多个对象,多个对象共享同一个静态属性,当修改其中一个对象中的静
2021-08-30 20:25:58
93
原创 计算机网络- ARP(地址解析协议)
ARP协议就是将IP地址转换为MAC物理地址;与之有关联的还有RARP,就是ARP的逆向,也就是将MAC物理地址转换为IP地址主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。下面借用wireshark官网的arp捕获例子说明一下arp的请求过程可以看到请求时确实是以广播的形式而且目标主机的mac地址全为0即不知道具体的目的地
2021-08-26 14:19:36
429
原创 算法-判断是否是完全二叉树
定义:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。public static boolean CBT(Node head){ if (head != null){ //新建一个队列 LinkedList<Node> queue = new LinkedList<>(); //判断是否是叶子节点 boolean leaf = false;
2021-08-25 23:06:25
108
原创 算法-判断一颗树是否是搜索二叉树
定义:(二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。解法一:用二叉树的递归中序遍历改//中序遍历改 public static int preValue = Integer.MIN_VALUE; public static boolean checkBST(Node head){ if (h
2021-08-25 22:48:47
168
原创 MySQL-数据库三大范式
什么是设计范式:设计表的依据,按照这三个范式设计的表不会出现数据冗余三范式都是哪些?第一范式:任何一张表都应该有主键,并且每一个字段的原子性不可再分。第二范式:建立在第一范式的基础之上,所有非主键子段完全依赖主键,不能产生部分依赖。多对多关系:三张表,关系表两个外键。第三范式:建立在第二范式的基础上,所有非主键字段直接依赖主键,不能产生传递依赖。一对多关系:两张表,多的表设外键注意:实际开发中会拿冗余换速度...
2021-08-25 22:01:52
85
原创 MySQL执行顺序
MySQL执行sql的顺序从 from 开始,以下是执行的顺序流程1、FROM2、JOIN3、ON4、WHERE5、GROUP BY6、HAVING7、SELECT8、DISTINCT9、ORDER BY10、LIMIT
2021-08-24 21:57:37
80
原创 Java基础-集合:set
1.无序性:不等于随机性。存储的数据在数组中并非按照数组索引的顺序添加,根据数据的哈希值添加*2.不可重复性:保证添加的元素按照equals()判断时,不能返回true,即:相同的元素只能添加一次二。添加元素过程:以hashSet为例: 向HashSet中添加元素时,首先调用元素a的hashcode方法,计算其哈希值, 此哈希值对底层数组长度进行取模求其存放的位置,判断此位置是否有元素: 如果没有其它元素,则元素a添加成功 如果有其它元素(有可能是单个.
2021-08-23 23:02:22
120
原创 java基础-集合:list
List接口:存储有序,可重复的数据|—ArrayList:主要实现类,线程不安全,效率高,底层使用Object[] elementData存储|—LinkedList:底层使用双向链表存储,频繁插入,删除效率比ArrayList高|—Vector:古老实现类,线程安全ArrayList源码分析:查询效率高 jdk7: public ArrayList();调用无参创建新的对象底层创建一个长度为10的Object[]数组elementData public b
2021-08-23 23:01:14
69
原创 java基础——重写与重载
重载:方法名一样,参数列表的个数,类型,顺序不一样,早期绑定,编译期间就确定方法引用的地址重写:方法名一样,参数列表的个数,类型,顺序一样,晚期绑定,运行期间才确定方法引用的地址...
2021-08-22 23:04:19
87
原创 String.intern()方法JDK6与JDK7/JDK8不同
在JDK6中,String.intern()方法先去运行时常量池中查看有无该字符串,如果有,则直接返回该字符串在方法区的内存地址。如果没有则会先将该字符串对象复制一份保存在常量池中,并返回该字符串对象在方法区的内存地址在JDK7/JDK8中,String.intern()方法先去运行时常量池中查看有无该字符串,如果有,则直接返回该字符串在方法区的内存地址。如果没有则会先将该字符串对象引用地址复制一份保存在常量池中,并返回该字符串对象在方法区的内存地址...
2021-08-21 17:07:15
356
原创 java基础-值传递
二。值传递机制 如果参数是基本数据类型,此时实参赋给形参的是实参的真实存储的数据值(栈是线程私有的,每个方法在自己的栈帧中声明一个局部变量,每个方法内部修改属性值对其它方法不可见,方法调用结束即栈帧出栈,其内部的局部变量也就失效了) 如果参数是引用数据类型,此时实参赋给形参的是实参的地址值,指向堆空间中同一个对象(堆空间是线程共享的,一个引用修改里面的属性值,其它引用可见)...
2021-08-20 21:09:18
64
原创 java基础-方法重载
**方法重载:**同一个类方法名相同,参数列表个数或参数不同即可口诀:“两同一不同”:同一个类,相同方法名参数列表不同:参数个数不同,参数类型不同,参数顺序不同**注意:**判断是否重载跟方法的修饰符,返回值类型,形参变量名,方法体都没关系!!!...
2021-08-20 20:14:25
66
原创 String,StringBuffer,StringBuilder三者的异同
String,StringBuffer,StringBuilder三者的异同:?String:不可变的字符序列;底层使用char[]存储(用final修饰)StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储(不用final修饰)StringBuilder:可变的字符序列;jdk5.0新增的,非线程安全的,效率高;底层使用char[]存储(不用final修饰)源码分析:* String str = new String(); //new cha
2021-08-20 15:58:37
120
原创 算法-在一个字符串中一个字符出现的次数
public static String myReverse(String str,int index,int last) {// if (str != null && index >= 0 && last < str.length()){// char[] chars = str.toCharArray();// for (int l=index,r=last-1;l<r;l++,r--){
2021-08-20 15:54:40
100
原创 字符串数组-获取两个字符串中最大的相同子串(最大相同子串有且只有一个)
public String getMaxSameStr(String str1,String str2){ if (str1 != null && str2 != null){ String maxStr = str1.length() >= str2.length() ? str1 : str2; String minStr = str1.length() < str2.length() ? str1 : str2
2021-08-20 15:53:26
187
原创 (面试)java基础-String一些特性
String:字符串,使用一对“”引用表示1.String声明为final,不可被继承2.String内部定义了final char[] value用于存储字符数据3.String:代表了不可变的字符序列。简称:不可变性 体现:a.当堆字符串重新赋值时,需要重写指定区域赋值,不能使用原有的value进行赋值 b.对现有的字符串进行连接操作(有变量参与)时操作时,需要重新指定内存区域赋值,不能使用原有的value进行赋值 c.当调用String的replace方.
2021-08-19 21:00:48
63
原创 二叉树后序遍历-递归与非递归(左右根)
递归版本:public static void reverseIn(Node head){ if (head == null) return; reverseIn(head.left); reverseIn(head.right); System.out.print(head.value+","); }非递归版本:public static void unReverseIn(Node head){
2021-08-18 22:03:36
110
原创 二叉树中序遍历-递归与非递归
递归版本:public static void reversePos(Node head){ if (head == null) return; reversePos(head.left); System.out.print(head.value+","); reversePos(head.right); }非递归版本:public static void unReversePos(Node head){
2021-08-18 21:55:08
131
原创 二叉树前序遍历-递归与非递归
递归版本:public static void reversePre(Node head){ if (head == null) return; System.out.print(head.value+","); reversePre(head.left); reversePre(head.right); }非递归版本:public static void unReversePre(Node head){
2021-08-18 21:47:19
67
原创 MySQL事务
事务(Transaction)概念:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(最典型的例子例如银行账户转账业务,该业务就是一个最小的工作单元)事务只和DML(insert,update,delete)语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同要保证两条以上的DML语句要么同时成功,要么同时失败事务的四大特性(ACID):原子性:事务是最小的不可再分的工作单元一致性:事务要保证两条以上的DML语句要么同时成功,要么同时失败
2021-08-18 20:39:34
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人