- 博客(54)
- 收藏
- 关注
原创 布隆过滤器的简单使用
创建一个简单的布隆过滤器.添加依赖:<!-- 布隆过滤器 --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </depend
2021-10-19 21:25:39
346
原创 clickhouse总结
一.clickhouse-简介ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse1.优点灵活的MPP架构,支持线性扩展,简单方
2021-10-08 17:29:18
1418
1
原创 scala的常见函数与方法(二)
交集并集差集val list = List(1,2,3,4,5)val arr = Array(3,4,5,6,7)//交集arr.intersect(list).foreach(println)//差集 在集合1中出现,集合2中没有出现的元素list.diff(arr).foreach(println)//并集list.union(arr).distinct.foreach(println)拉链操作拉链操作就是以数据少的为主,从左到右,形成对偶元组val li
2021-09-24 21:15:36
198
原创 scala中Object与class的区别
关键词 Object和Class的区别在Object中的内容都是静态的 单例的 安全的 高效 程序的入口:main 也是写在object中 是可以执行的class中的内容就是普通内容了 main方法写在class中就是一个普通方法,需要new 这个对象去调用该方法在同一个文件中时,object与class名字一致,两者互为伴生关系(object)对象是(class)类的伴生对象(class)类是(object)对象的伴生类...
2021-09-19 22:34:53
772
原创 hive常用函数-夹杂简单语法
语法语句:external 外部的 创建外部表所用. 外部表被删除时数据不会被删除 小知识: hive的表分为内部表(管理表)和外部表 external(外部) 默认内部内部表(管理表) :在进行删除表的时候会将数据删除,导致其他使用这个数据的表,数据丢失. 如果数据是共享的,数据比较重要,建议使用外部表 管理表不用指定location 默认有自己与表名相同的目录 外部表指定location 指定数据位置 也可不指定 指定后,表名与数据文件夹名不一致 外部表不需要自己的目录...
2021-09-18 23:30:34
83
原创 hive的分区表与分桶表的介绍
分区表含义:分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHER.E子句中的表达式选择查询所需要的指定的分区.作用:将数据存储在表的不同文件夹中,根据分区字段查询,会直接锁定文件夹,减少加载数据量,并且不用过滤,提升查询效率静态分区表:partitioned by 创建分区表create table tb_log3(name stri.
2021-09-18 20:29:56
275
原创 hbase的部分内部核心原理及方法调用
元数据的存储元数据存储在某台region-server上,减少了对master的依赖,flush的内部流程数据put到所在列族的内存中,每次调用flush方法,内存空间就会生成对应的stroeFile文件对象,对应真实物理文件读写数据流程和实现数据更新写数据客户端执行put请求连接Zookeeper会返回元数据位置信息然后客户端会去下载元数据信息,然后解析元数据信息,定位到是在哪个region-server的哪个region的列族上,写到内存上.读数据客户端执行put
2021-09-18 17:40:49
155
原创 hive的文件存储格式
Hive支持的存储数的格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET.行式存储特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。列式存储特点:因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。常见格式的存储:TEXTFILE
2021-09-18 15:05:12
263
原创 HBase在java客户端使用时所需依赖
<dependencies> <!--zookeeper--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> .
2021-09-11 21:07:13
826
原创 MR在Yarn上的运行流程
图片与文本有略微出入1.客户端向ResourceManager提交job申请2.ResourceManager根据申请内容返回相关信息(例:根据input的路径,返回对应的文件元数据信息,还有job资源的提交路径)3.客户端根据返回的信息生成资源文件(job.split,conf.xml,app.jar)并将资源文件提交至hdfs(job的初始化)4.资源提交完后(初始化完毕),客户端提交运行命令请求,向yarn中的Scheduler申请资源(根据当前yarn的调度模式进行调度)5.调度器...
2021-09-07 21:31:47
428
原创 MR内部处理数据流程,一看就会,动手就?
客户端指定map端读取数据位置,map端的并行度由客户端对文件的逻辑切片决定的.(文件大小,文件数量)将maptask,reducetask提交给资源调度系统,资源调度系统将任务分配给虚拟机.通过FileInputFormat的实现类TextInputFormat类的LineRecordReader方法来读取数据(以KV的形式).map方法在执行时是在一个循环中(Mapper类的方法中的循环)每读取到一组KV,map执行一次.处理数据KV,生成新的KV,并通过context将数据写出....
2021-09-06 20:45:38
265
原创 类的加载器和反射的简单使用
类的加载器 介绍:BootStrapClassLoader 根类加载器 引导类加载器 并不是由Java语言编写 而是由C++语言编写 主要负责加载核心包下的类ExtClassLoader 扩展类加载器 Java语言编写 主要负责加载扩展包下的类 ext包下AppClassLoader 应用类加载器 Java语言编写 主要负责加载我们写的类 和 第三方工具的类注意:三个类加载器之间没有任何集成关系但是BootStrap...
2021-08-18 20:35:28
181
原创 单元测试/枚举
单元测试 可以理解为 取代main方法定义一个空参数没有返回值的方法在方法上写@org.junit.Test选中Test方法名 右键运行在其他方法上@Before 之前 @After 之后 当写了这个之后,每当有一个单元测试,这个单元测试前后都会执行被@Before@After 修饰的方法public class Demo02_Junit { @After public vo...
2021-08-18 19:50:36
1768
原创 网络通信协议UDP,TCP
网络编程三要素 协议IP地址端口号协议协议 计算机之间进行数据传输需要遵守的规则 UDP: 面向无连接的通信协议,两台计算机进行数据传输不需要建立连接, 发送端给接收端发送数据 不会确认接收端是否存在 接收端接收到数据 也不会告知发送端特点 两台计算机不需要建立连接 ,消耗资源少,发送效率高,但...
2021-08-17 19:32:47
207
原创 Stream流常用API的使用
集合转换为Stream类型Collection 默认方法 Stream stream()数组转换为StreamStream static Stream of()public class Demo01_Stream { public static void main(String[] args) { List<String> list = new ArrayList<>(); //list--...
2021-08-15 20:05:43
303
原创 函数式编程思想及函数式接口的简单使用
介绍面向对象思想 关注的是具备功能的对象函数式编程思想 关注的不再是对象 而是功能Lambda表达式 可以理解为 用一个匿名方法 对一个接口的抽象方法进行重写 标准格式 (参数类型 参数名)->{方法体} ():小括号里面写的是参数 数据类型 参数名 当多个参数是,用逗号隔开 ->:代表指向动作 ...
2021-08-15 19:50:16
148
原创 序列化与反序列化的方法使用,打印流的简单介绍
ObjectOutputStream 序列化流 构造方法:public ObjectOutputStream(OutputStream out) OutputStream out :所有字节输出流的超类 抽象类 可以传入其任意子类对象 FileOutputStream BufferedOutputStream特有方法: writerObject(Object obj) 写对象到磁盘持久化ObjectInputStream 反序列化流 ...
2021-08-14 19:55:31
113
原创 转换流StreamReader的使用介绍
java.io.InputStreamReader extends Reader 字节通往字符的桥梁 可以使用Reader的read方法构造方法: InputStreamReader(InputStream in)InputStreamReader(InputStream in,String charseName) InputStream in : 所有字节输入流的超类 抽象类 ...
2021-08-14 19:40:19
318
原创 缓冲流Buffered的基本使用
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率.BufferOutputStream构造方法:public BufferedOutputStream(OutputStream out): 创建一个新的缓冲输出流。方法:voidwrite(int b)写一个字节void write(byte[] bytes)写一个字节数组...
2021-08-14 15:20:05
201
1
原创 字节流及字符流的API详解与Properries属性集
IO流:根据数据的流向可以分为:输入流Input:从硬盘中的文件读取的数据到内存中的java程序输出流 Output: 从内存中的java程序向硬盘写数据根据操作的数据分为:字节流:可以操作字节的流计算机上的一切数据都是由字节构成 所以字节流可以操作一切数据字符流: 可以操作字符的流,只能操作文本文件作用: 可以向硬盘中的文件写数据或者读取硬盘中的文件数据字节输...
2021-08-12 20:00:25
165
原创 File类及API知识了解,递归
File类的静态方法File.separator 静态方法 与系统有关的默认名称分隔符 window是 \ linux是 /File.pathSeparator 静态方法 与系统有关的路径分隔符 window是 ; linux是 :创建文件和文件夹API 都是成功 true 失败 falsemkdirs 多级文件夹mkdir 单级文件夹createNewFile 新建文件判断方法booleanexists() ...
2021-08-11 21:40:41
86
原创 自定义线程池
自定义线程池ThreadPoolExecutor的构造方法:public ThreadPoolExecutor(int corePoolSize, 核心线程数int maximumPoolSize, 最大线程数Long keepAliveTime, 临时线程空闲时最大的存活时间TimeUnit unit, 存活时间的单位BlockingQueue workQueue, 线程池使用的缓冲队列ThreadFactory thr
2021-08-11 21:10:36
91
原创 可以获取执行结果的线程
Callable接口1.定义类 实现Callable接口2.重写call方法3.开启线程需要注意Thread类并没有接收Callable接口的构造方法所以需要使用FutureTask包装一下 在传入Thread类中实现接口public class MyCall implements Callable<Integer> { @Override public Integer call() throws Exception { T..
2021-08-09 20:47:49
71
原创 单例设计模式之 懒汉式
优点:延迟加载 一进来并没有着急创建对象 而是什么调用方法什么时候创建对象缺点:多线程下会出现问题写好点,不让他出问题public class Single { /* volatile 可以CPU不会优化代码,打乱代码顺序,以防出现问题*/ private static volatile Single s ; private Single(){} int m = 10; public stati...
2021-08-09 20:35:33
60
原创 单例设计模式之 饿汉式
优点:多线程下没有任何问题 写法简单缺点:静态内容随着类的加载而加载 只要Single这个类加载到内容那么对象就会直接创建 可能并没有使用这个对象那么创建对象就白白占用空间public class Single { private static Single s = new Single(); //静态成员,随着类的加载,这个对象就生成了 private Single(){} //构造方法私有,外界就无法new 对象了 public
2021-08-09 20:27:41
82
原创 JAVA并发编程的三大特性之一:原子性AtomicInteger
在java并发编程中,如果想要保证程序的线程安全,就要保证代码的原子性,可见性,有序性Java本身的原子性 由java内存模型来直接保证具有原子性变量操作的有 read/load/use/assign/store/write.java提供了原子性的技术保障有如下:1.synchronized(互斥锁)2.Lock(互斥锁)3.原子类(CAS)以上两个都是通过互斥锁实现,即同一时刻只允许一个线程来操作该变量,保障了原子性. 上两种也...
2021-08-09 20:23:01
233
原创 Condition接口
介绍Condition接口将Object监视器方法(wait,notify和notifyAll)分解成截然不同的对象,以便通过将这些对象和任意Lock实现组合使用.Lock替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用.方法public void await() 线程等待public void signal() 唤醒一个等待的线程public void singalAll 唤醒所有等待的...
2021-08-09 19:49:27
65
原创 Thread线程API及线程安全锁
第一种开启线程的方式1.定义一个类继承Thread类2.重写run方法(线程任务:线程将执行的内容)3.开启线程 创建子类对象 调用start方法//定义个类,继承线程Threadpublic class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 50; i++) { Sys...
2021-08-08 20:21:46
204
原创 Java常见的修饰符
public 公共的,修饰类,成员变量,方法,任意包下都可以访问protected 受保护的,修饰方法,成员变量,只能在本包及子包下访问private 私有的,修饰类,成员变量,方法,只能在本类中访问deafualt 默认的,修饰类,方法,成员变量,只能在本包下访问final 最终的,修饰类,成员变量,成员方法,局部变量,修饰的方法和变量不能被重写,变量成为常量,修饰的类不能被继承static 静态的,修饰类的成员,成员方法,成员变量,被修饰的成员归类所有,...
2021-08-07 20:04:43
74
原创 Map双列集合及其实现类的详细介绍
java.util.Map<K,V> 双列集合的顶层接口K:key 键,键是唯一的v:value 值,只可以重复key和value统称键值对方法 put(K key,V value)向map集合中添加键值对元素 一般情况下返回值都是null,如果键相同时,添加元素会被覆盖并返回被覆盖的值 get(Object key) 根据键找值 remove(Object key) 删除一对元素,并返回被...
2021-08-07 16:49:29
142
原创 JDK1.5 可变参数的介绍,只能说一点点
当参数的数据类型确定 但是个数不确定时,可以使用可变参数格式 数据类型...参数名 真的是三个点,不要写多 可以传入当前类型的任意个值 可变参数本质就是一个数组 可以直接传入数组注意:一个方法只能有一个可变参数如果方法有多个参数,可变参数一定要放在最后 因为可变参数会将所有传入的值获取到,后面的形参永远拿不到值如果可变参数的类型为Object...obj 那么可以传入任意类型,任意个数...
2021-08-07 16:48:23
121
原创 Collection的三个Set集合
java.util.Set 特点 元素唯一,list元素可重复 常用实现类 TreeSet 特点:排序,唯一.不允许添加null值 HashSet 特点:无序,唯一,允许null值 LinkedHashSet ...
2021-08-07 15:35:02
99
原创 List及其子类的详细介绍
升序自定义的类只需要实现Comparable接口,重写方法即可如果是String和Interger类型,直接调用Collections的sort方法,默认即是升序排序
2021-08-05 19:54:29
217
原创 自定义泛型
使用? 泛型的通配符泛型的限定 上限限定 ? extends 类 只能是当前类 及其子类类型 下限限定 ? super 类 只能是当前类 及其父类类型 定义泛型 泛型可以定义在类 接口 方法上,将数据类型作为参数传递定义泛型的好处 1.可以预先使用未知的类型 2.明确了集合中存储数据的类型 3.在保证参数不写死的情况下,使用泛型可以将运行时的异常,提前到...
2021-08-03 21:37:33
88
原创 增强For循环总结
增强for循环也叫foreach循环作用:用来遍历集合或者数组 底层就是一个迭代器,所以在使用时,不能对集合的长度进行修改,会抛出并发修改异常---ConcurrentModificationException格式 for(集合或者数组存储元素的数据类型 变量名 : 要遍历的集合或者数组){ 变量名就代表取出的元素,可以进行相对应的操作}...
2021-08-03 20:52:06
80
原创 Collection与迭代器
Collectionjava.util.Collection单列集合的顶层接口 没有任何的直接实现类 方法 public boolean add(E e): 把给定的对象添加到当前集合中. public void clear(): 清空集合中的所有元素. public boolean remove(E e): 把给定的元素在当前集合中删除....
2021-08-03 20:50:34
228
原创 异常小知识,自定义异常
异常第一种处理方式捕获异常,将异常信息打印,并继续执行剩余代码try{ 可能会出现异常的代码}catch(异常的类名 变量名){ 打印异常信息}catch(异常的类名 变量名){ ...这些catch中的异常类中,如果没有什么直接的继承关系,先后是没有顺序的 但如果有继承关系,父类需要放在子类后面,父类会将...
2021-08-02 20:35:53
78
原创 Math与Big类的API,有点小多
Java.lang.Math 数学工具类方法publucstatic int abs(int a) 返回参数的绝对值public static double ceil(double a) 返回大于或者等于参数的最小double值,等于一个整数public static double floor(double a) 返回小于或者等于参数的最大double值,等于一个整数public ...
2021-08-02 20:14:43
114
原创 正则表达式
正则表达式含义:正则表达式就是一个规定了某种规则的 字符串正则表达式的部分规则[] 代表里面的内容任选其一[^ ] 代表除了里面的内容都可以. 任意字符? 0-1次* 任意次+ 至少一次{n} 恰好n次{n, } 至少n次{n,m} n-m次 包含n与m[a-zA-Z_0-9] 字母,数字,_ 统称单...
2021-08-02 19:59:07
103
原创 kafka脚本编写 例
vi /usr/bin/kfkall.sh的文件#!/bin/bashfor i in {1..3}dossh linux0${i} "source /etc/profile; /opt/apps/kafka_2.11-2.0.0/bin/kafka-server-${1}.sh -daemon /opt/apps/kafka_2.11-2.0.0/config/server.properties"done然后要给他执行的权限,否则运行时会报权限被拒绝chmod +x /usr/b
2021-01-09 21:20:13
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人