自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(344)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java获取反射的三种方法

概述:Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。public class CollectionTest { public static void main(String[] args) { HashSet<String> hashset = new HashSet<>();

2022-03-13 13:28:16 4166

原创 数仓面试题

什么是数据仓库呢?数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、数据集成的(Integrated)、相对稳定(非易失)的(Non-Volatile)、反映历史变化(时变)(Time Variant)的数据集合, 用于支持管理决策(Decision Making Support)。说白了就是企业想做数据分析,但存在数据孤岛和数据量太大的问题,所以做一个能够系统解决集中存储,海量数据计算和最好支撑SQL的东西叫做数据仓库数据仓库和传统的业务数据库有什么区别?

2022-02-27 14:38:31 273

原创 presto 基本架构服务

什么是 PrestoPresto 是一种工具,旨在使用分布式查询有效地查询大量数据。如果您使用 TB 或 PB 的数据,您可能会使用与 Hadoop 和 HDFS 交互的工具。Presto 被设计为替代使用 MapReduce 作业管道(如 Hive 或 Pig)查询 HDFS 的工具,但 Presto 不限于访问 HDFS。Presto 可以并且已经被扩展为在不同类型的数据源上运行,包括传统的关系数据库和其他数据源,如 Cassandra。Presto 旨在处理数据仓库和分析:数据分析、聚合大量数据和

2022-02-20 17:18:22 2322

原创 Impala 基本架构与基础知识 (复习)

文章目录:什么是Impala ?特点:Impala 优点:Impala核心组件角色:支持的平台:什么是Impala ?Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。特点:Impala提供了快速的、交互式的SQL查询,直接对存储在HDFS、HBase或Amazon Simple Storage Service (S3)。除了使用统一存储平台

2022-02-20 15:36:45 515

原创 企业中使用的数仓分层 架构 (图)

2022-02-18 22:40:31 588

原创 HADOOP 在 CM 中的高可用原理.

文章目录:一、技术背景二、HA架构三、HDFS自动故障转移一、技术背景影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用;二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用。为了解决上述问题,Hadoop给出了HDFS的高可用HA方案:HDFS通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,比如处理来自客户端的RPC请求,

2022-02-17 22:30:37 230

原创 《将博客搬至CSDN》

博客搬家说明: 作为一名程序员,掘金是目前最适合我们的一个平台,所以决定将CSDN博客搬迁至掘金! CSDN是我第一个接触的博客平台,你将成为我最美的回忆,永远爱你!掘金博客地址:https://juejin.cn/user/1786083541518270/posts...

2022-02-13 18:18:05 177

原创 Flink TableAPI 报错--->类找不到

控制台报错:"C:\Program Files\Java\jdk1.8.0_201\bin\java.exe" "-javaagent:D:\ideaSoftware\IntelliJ IDEA 2020.2.3\lib\idea_rt.jar=52126:D:\ideaSoftware\IntelliJ IDEA 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_201\jre\lib\chars

2022-01-22 22:21:39 2225

原创 Idea快捷键大全(Windows)保存起来,用着就来看看。。

快捷键 介绍Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl + W 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范

2022-01-16 17:40:07 907

原创 JDBC 代码编写————大家好,我的名字叫卷卷,皮一下。

前言:热热热的,看到抖音某主播直播在写JDBC的教学,我也自己来一份,毕竟这样可以吃的饱饱的,嘻嘻。进入状态:package com.ZQQQ;import java.sql.*;/** * @Author hzq * @Description JDBC 练习 * @Date 2022/1/14 * @Param * @return **/public class JdbcExercise { public static void main(String[] args)

2022-01-14 22:24:07 139

原创 关于 Mybatis中 使用大于小于等于的正确方法

前言:1、由于这两天在写一个小需求,涉及到数据时间大于等于 写到Mapper 文件时,里面设计到两表关联得问题,所以写下此篇,仅此记录一下咯i2、在mybatis中sql是写在xml映射文件中的,如果sql中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎么办呢?方法一:使用特殊转义字符Mapper 文件内写法:select * from student dwhere d.PERIODCODE &gt;='202101' and d.PERIODCOD

2022-01-07 23:10:28 804

原创 使用Stream流从文件中读取数据(八.)

package Com.ZQQQ.Flinkwork;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.api.java.operators.DataSource;/** * @Author hzq * @Description 使用Stream流从文件中读取数据。 * @Date 2021/12/16 * @Param * @return **///使用场景:离线方式:批处理

2021-12-25 17:29:17 489

原创 Flink 流处理API 从集合读取数据,并输出 七.

1、创建出 Java Bean package Com.ZQQQ.pojo;import lombok.*;/** * @Author hzq * @Description 传感器温度读数得数据类型 * @Date 2021/12/16 * @Param * @return **/@Getter@Setter@Data@ToStringpublic class SensorReading { private String id; private Long te

2021-12-25 17:24:55 1059

原创 Flink 流出处理 API 滚动聚合 KeyBy 运行 Job 运行时报错解决:(六)

1、把数据中的L去掉,因为Long类型是整数的长整型,所以在正式环境时需要把数据处理赶紧。。2、把我继上一篇文章转Long类型的代码还原为按字段类型索引值取值: return new SensorReading(fields[0], new Long(fields[1]), new Double(fields[2]));3、然后开始运行。查看结果:...

2021-12-19 17:48:17 885

原创 Flink 《java.lang.NumberFormatException: For input string..数据:》(错误及解决办法 五.)

前言:在学习Flink 过程中,有一段map聚合代码需要把javabean映射出来并返回数据的一个需求。数据是在当前工程下的resources目录下创建的txt文档。在执行的时候,报错:java.lang.NumberFormatException: For input string具体数据…准备解决bug:此时我内心波涛汹涌,在想为啥会类型错误呢,不过安静下来,根据错误提示进去源码内查看报错说:没有合适的数据类型格式,然后想到了数据类型转换1. String aLong = String

2021-12-19 16:24:25 2040

原创 Flink流处理API 创建执行环境 源码版本解说(四)

源码:public static ExecutionEnvironment getExecutionEnvironment() { return Utils.resolveFactory(threadLocalContextEnvironmentFactory, contextEnvironmentFactory) .map(ExecutionEnvironmentFactory::createExecutionEnvironment) .orElseGet(ExecutionEnvironme

2021-12-19 13:53:33 1390

原创 Flink 基于DataSet 和 DataStream 进行 批处理WordCount代码(三)

基于DataSet:package Com.ZQQQ.Flinkwork;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.java.DataSet;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.api.java.tuple.Tuple2;import or

2021-12-18 17:09:28 445

原创 Flink 运行时四大组件(二.)

一、作业管理器(JobManager)1、控制一个应用程序执行的主进程,每个应用程序都会被一个不同的JobManager所控制。2、JobManager会先接收到应用程序,应用程序包括:作业图(JobGraph)、逻辑数据流图和打包的所有类库和其他资源的Jar包。3、JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做“执行图”(ExecutionGraph),包含了所有可以并发执行的任务。4、JobManager会向资源管理器(ResourceManager)请求执行

2021-12-18 16:44:49 238

原创 Flink介绍和基本概念(一)

概述Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它基于同一个Flink流式执行模型(streaming execution model),能够支持流处理和批处理两种应用类型。由于流处理和批处理所提供的SLA(服务等级协议)是完全不相同, 流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独立的开源框架来实现其中每一种处理方案。比较典型的有:实现批处理的开源方案有MapRe

2021-12-12 19:49:56 884

原创 关于 Redis 数据类型 HyperLogLog(十四)

HyperLogLog在开始这一节之前,我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现?如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。这样来一个请求,incrby 一次,最终就可以统计出所有的 PV 数据。但是 UV 不一样,它要去重,同一个用户一天之内的多次访问请求只能计数一次。这就要求每一个网页请求都需要带上用户的

2021-12-11 22:20:18 160

原创 关于 Redis 的 分布式锁 (十三)

分布式应用进行逻辑处理时经常会遇到并发问题。比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。(Wiki 解释:所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch 线程切换。)这个时候就要使用到分布式锁来限制程序的并发执行。Redis 分布式锁使用非常广泛,它是面试的重要考点之一,很多同学都知道这个知识

2021-12-11 22:07:39 134

原创 关于 Redis 的 懒惰删除 (十三)

平波缓进 —— 懒惰删除一直以来我们认为 Redis 是单线程的,单线程为 Redis 带来了代码的简洁性和丰富多样的数据结构。不过Redis内部实际上并不是只有一个主线程,它还有几个异步线程专门用来处理一些耗时的操作。Redis 为什么要懒惰删除(lazy free)?删除指令 del 会直接释放对象的内存,大部分情况下,这个指令非常快,没有明显延迟。不过如果删除的 key 是一个非常大的对象,比如一个包含了千万元素的 hash,那么删除操作就会导致单线程卡顿。Redis 为了解决这个卡顿问题,在

2021-12-11 21:50:57 361

原创 关于 Redis 的 过期策略 (十二)

Redis 所有的数据结构都可以设置过期时间,时间一到,就会自动删除。你可以想象 Redis 内部有一个死神,时刻盯着所有设置了过期时间的 key,寿命一到就会立即收割。你还可以进一步站在死神的角度思考,会不会因为同一时间太多的 key 过期,以至于忙不过来。同时因为 Redis 是单线程的,收割的时间也会占用线程的处理时间,如果收割的太过于繁忙,会不会导致线上读写指令出现卡顿。这些问题 Antirez 早就想到了,所有在过期这件事上,Redis 非常小心。过期的 key 集合redis 会将每个设

2021-12-11 21:40:12 147

原创 关于 Redis 的 Info 指令(十一)

在使用 Redis 时,时常会遇到很多问题需要诊断,在诊断之前需要了解 Redis 的运行状态,通过强大的 Info 指令,你可以清晰地知道 Redis 内部一系列运行参数。Info 指令显示的信息非常繁多,分为 9 大块,每个块都有非常多的参数,这 9 个块分别是:Server 服务器运行的环境参数Clients 客户端相关信息Memory 服务器运行内存统计数据Persistence 持久化信息Stats 通用统计数据Replication 主从复制相关信息CPU CPU 使用情况Cl

2021-12-11 21:37:53 179

原创 关于 Redis 的持久化机制 (十)

数据丢失问题:Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。持久化:Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。快照是一次全量备份,AOF 日志是连续的增量备份。快照是内存数据的二进制序列化形式,在存储上非常紧凑,而 AOF 日志记录的是内存数据修改的指令记录文本。AOF 日志在长期的运行过程中会变的无比庞大,数据库重启时需要加载 AOF 日志进行指令重放

2021-12-11 16:12:14 123

原创 字节流读取报错:java.lang.Exception: Method CopyFile should have no parameters (错误解决办法)

错误还原:近期在回顾Java基础到iIO流时,自己实现一段小Demo版本的需求,就是先读取本地.JPG 格式的文件到另外一个盘符,根据字节流来实现的。先写出一个基础版本的,接下来在基础版面本上进行优化:/** * 使用IO 字节流 读取 本地非文本文件,并复制到另外一个敌方 */public class FileInputOutPutStream { public static void main(String[] args){ //创建文件读取流 FileInputStream

2021-11-28 15:17:47 752

原创 使用 IO 流 读取 本 地 文 件 (两种方式)

/** * 使用IO 流读取本地文件 */public class FileReadWrite { public static void main(String[] args) { FileReader fr = null; try { //1. 创建读取文件 fr = new FileReader(new File("E:\\11.txt")); char[] chas = new char[1024]; int len; while ((len = fr.r

2021-11-25 23:06:13 1636

原创 String 与char[] bytes 数组之间的转换

// String 与char[] 之间的转换@Testpublic void Test3() { String str = "abc123"; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { System.out.println(charArray[i]); } //char与String 之间的互转 char[] chas = {'h', 'e', 'l', '

2021-11-25 22:10:08 237

原创 Arraylist 四种遍历方式(身先士卒,我先肝)

上一篇:肝了HashMap 的四种遍历方式这一篇:这篇我们肝Arraylist 四种遍历方式,上正菜: @Test public void ListTest(){ ArrayList<String> list = new ArrayList<>(); list.add("AA"); list.add("BB"); list.add("CC"); list.add("DD"); // 1. 增强for循环方式 for (String s : l

2021-11-24 23:17:57 335

原创 HashMap 四种遍历方式(你强任你强 )

package Com.bigDataWork;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Set;public class MapTest { public static void main(String[] args) { HashMap map = new HashMap(); map.put(null,null); map.p

2021-11-23 23:06:46 376

原创 字符串String 与char[] 之间的互相转换

// 字符串String 与char[] 之间的转换@Testpublic void Test3(){ String str ="abc123"; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { System.out.println(charArray[i]); }// char与String 之间的互转 char[] chas = {'h', 'e',

2021-11-21 11:58:09 533

原创 使用同步代码块解决设计模式之懒汉式线程安全问题

package Com.bigDataWork_intentjava;// 懒汉式public class MySinleton2 { public static void main(String[] args) { Order order = Order.getInstance(); Order order3 =Order.getInstance(); System.out.println(order==order3); System.out.println(order.equals

2021-11-14 15:13:17 3454

原创 Java 8 中接口的新特性

package Com.bigDataWork_exer04;/** * 此接口类似于工具类 */public interface ComparA { //静态方法 public static void method() { System.out.println("compar: 北京"); } // 默认方法 public default void method2() { System.out.println("compar :上海--"); } // 默认方法 def

2021-11-07 22:10:02 136

原创 理解 Java 基础创建接口匿名实现类的对象.

1、创建了接口的非匿名实现类的非匿名对象2、创建了接口的非匿名实现类的匿名对象3、创建了匿名实现类的匿名对象4、创建了接口的匿名实现类的匿名对象public class USBTest { public static void main(String[] args) { Computer computer = new Computer(); // 1、创建了接口的非匿名实现类的非匿名对象 Flush flush = new Flush(); computer.TraansferDa

2021-11-07 16:43:51 646

原创 Redis 订阅发布模型(九.)

一、 概述:Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:命令行实例:Redis 发布订阅命令 PSUBSCRIBE p

2021-10-16 20:17:43 120

原创 Redis 设置一个key的过期时间和生僻命令演习(八 .)

设置key 的存活时间100秒127.0.0.1:6379> EXPIRE HZQ 100查看还有多长时间存活127.0.0.1:6379> ttl HZQ(integer) 96127.0.0.1:6379> ttl HZQ(integer) 90127.0.0.1:6379> ttl HZQ(integer) 83127.0.0.1:6379> ttl HZQ 已经没了(integer) -2...

2021-10-16 15:57:47 115

原创 Redis 两种持久化 全方位解析(七)

Redis 持久化:Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化。RDB (Redis DataBase)图:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,他恢复时是将快照文件直接读到内存里。Redis 会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束了,再用这个临时文件替换上次持久化好的文件。整个过程中

2021-10-10 14:53:39 92

原创 Spring-boot 整合 Redis 操作篇(六)

文章目录:一、概念:说明:在SpringBoot 2.0中 版本中,Redis 客户端驱动现在由 Jedis变为了 Lettuce,也就是说在1.X 版本时,底层使用 jedislettuce 与jedis 的区别:参考 两者对比情况:整合步骤正式开始:1、在所在项目内导入包:2、源码分析:3、配置链接:4、测试链接redis使用API方式操作:通过 redisTemplate; 展示出的API 数据类型5、更改默认的JDK序列化, redis 常用序列化配置类:二、使用工具类操作Redis 数据类

2021-10-09 09:39:48 424

原创 Jedis 概念与 IntelliJ IDEA 集成(五)

前言:上篇文章搭建好的本地服务,就是为了使用Jedis而服务。一、Jedis 概念:Jedis 是Redis 官方推荐的java 链接开发工具,也就是使用Java操作Redis 中间件 ,命名为Jedis 。操作步骤:1、在idea内导入包<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> <groupId>redis.clients<

2021-10-08 13:46:23 5794

原创 Windows版本的Redis 搭建(四)

1、官网上找了半天没有找到下载Windows版的地方,网上找到了百度网盘下载的地方,谢这位大佬。2、百度网盘下载地址:密码:kdfqhttps://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g?_at_=16335857607713、下载完成之后,解压启动4、进入解压目录,使用cil 客户端工具进行链接5、验证是否链接成功,输入ping命令测试,显示链接成功!6、输入命令,体验下效果。买不起阿里云????7、注意点:...

2021-10-07 14:12:44 115

Spark算子.pdf

Spark对于大数据行业的实时处理数据来说,有着举足轻重的位置,特此学习整理了RDD 算子的各个含义,希望各位读者能够喜欢。谢谢

2020-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除