自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 java 任务cpu占用高排查

问题背景:DNS隧道检测app 在使用测试数据测试的时候,长时间cpu占用接近100%,flink webui显示反压 100%安全数据湖 > DNS隧道检测app CPU占用过高问题排查 > image2022-5-27_15-31-4.png问题排查:(1)下载arthas在官网上下载离线arthas包,或者直接用如下包(2)启动任务使用命令启动AlphaRunner/opt/flink/bin/flink run -c com.sangfor.alphasecurity.a

2022-05-27 16:11:29 467

原创 flink执行流程

Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> Physical Graph。首先StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。这是在客户端刚开始提交任务时生成的,然后客户端还要对StreamGraph优化生成JobGraphJobGraph:是提交给 JobManager 的数据结构。主要的优化为: 将多个符合条件的节点 chain 在一

2021-12-12 00:15:35 1899

转载 java中的clone

clone和new对象的区别clone()不会调用构造方法;new会调用构造方法。new对象时根据类型确定分配内存空间的大小, clone是根据原对象分配内存为什么要克隆?方便,克隆的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”使用clone方式很方便;速度快,clone方法最终将调用JVM中的原生方法完成复制也就是调用底层的c++代码,所以一般使用clone方法复制对象要比新建一个对象然后逐一进行元素复制效率

2021-09-28 16:22:19 700 1

原创 scala面试题

scala语言有什么特点?什么是函数式编程?有什么优点?scala的特点:面向对象,函数式编程函数式编程:是一种典范,将电脑的运算视作是函数的运算。函数式编程有点:与过程化编程相比,函数式编程里的函数计算可以随时调用。Scala数据类型Any和AnyRef的区别Scala 中什么是闭包?匿名函数 就是闭包说说Scala中隐式转换?及优缺点?Scala提供的隐式转换和隐式参数功能,是非常有特色的功能。是Java等编程语言所没有的功能。它可以允许你手动指定,将某种类型的对象转换..

2021-09-13 17:32:56 300

转载 Map Reduce中的排序

排序贯穿于Map任务和Reduce任务,是MapReduce非常重要的一环,排序操作属于MapReduce计算框架的默认行为,不管流程是否需要,都会进行排序。在MapReduce计算框架中,主要用到了两种排序方法:快速排序和归并排序快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此使整个数据成为有序序列。归并排序:归并排序在分布式计算里面用的非常多,归并排序本身就是一个采用分

2021-09-13 15:16:17 540

原创 yarn任务运行流程

运行流程1、客户端向RM中提交程序2、RM向NM中分配一个container,并在该container中启动AM3、AM向RM注册,这样用户可以直接通过RM査看应用程序的运行状态(然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束)4、AM采用轮询的方式通过RPC协议向RM申请和领取资源,资源的协调通过异步完成5、AM申请到资源后,便与对应的NM通信,要求它启动任务6、NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动

2021-09-13 07:08:45 772

原创 sparkstreaming和flink的区别

sparkstreaming和flink的区别参考 https://blog.csdn.net/b6ecl1k7BS8O/article/details/81350587–组件:sparkstreaming:Master:主要负责整体集群资源的管理和应用程序调度;Worker:负责单个节点的资源管理,driver 和 executor 的启动等;Driver:用户入口程序执行的地方,即 SparkContext 执行的地方,主要是 DGA 生成、stage 划分、task 生成及调度;Exe

2021-09-10 17:31:42 2569

原创 spark任务运行源码

spark任务运行源码spark是一个分布式计算引擎,任务的运行是计算引擎的核心。一个spark任务怎么能运行起来呢?1 spark服务启动(Master,Worker):2 应用程序提交3 启动driver,executor4 driver构建DAG,划分stage,task set分发5 executor创建task执行,汇报执行状态...

2021-09-10 11:06:02 94

原创 数仓开发和数据治理

数据痛点及其解决方案:数据孤岛 - 划分主题域数据库名,表名不规范 - 制定规范,统一命名管理指标定义混乱 - 数据字典找数据困难 - 数据地图,元数据管理,血缘业务方自建数据仓库 - 开放ODS,DW层,自建ADS层DB全量数据同步慢 - 增量同步binlog信息敏感数据不安全 - 权限控制数据存储空间不够 - 数据生命周期管理数仓分层:ODS 数据采集 flume sqoop canal dbus - 按照业务主题域进行划分DWD/DWS 数据计算 hive flink spar

2021-09-10 11:01:45 513

转载 关于kafka和零拷贝

零拷贝是服务器网络编程的关键,任何性能优化都离不开。在 Java 程序员的世界,常用的零拷贝有 mmap 和 sendFile。普通的网络编程中用户态和内核态的上下文切换:kafka中网络数据持久化到磁盘 (Producer 到 Broker)传统方式实现:data = socket.read()// 读取网络数据 File file = new File() file.write(data)// 持久化到磁盘 file.flush()先接收生产者发来的消息,再落入磁盘。实际会经过四次

2021-08-31 10:22:55 328

原创 jvm基础知识

hotspot jvm的架构图:更详细的架构图:以下分别介绍:类加载子系统运行时数据区执行引擎中的编译器执行引擎中的垃圾回收本地方法类加载子系统下图所示是 加载Dog.class过程中调用各类加载器的过程和各类加载器class文件的路径运行时数据区运行时数据区包括:程序计数器,本地方法栈,虚拟机栈,堆,方法区其中程序计数器/本地方法/虚拟机栈是线程独享的空间,堆和方法区是多线程共享空间堆区详细信息如下关于java中对象的存储:在堆中的存储:在栈中存储的是对象的引

2021-08-29 01:07:30 236 1

原创 CountDownLatch使用

CountDownLatch是什么?jdk1.5开始concurrent包里提供的,并发编程工具类。CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。CountDownLatch实现原理CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。APIcountDownLatch.countDow

2021-08-26 10:20:38 61

转载 CyclicBarrier 使用

CyclicBarrier 使用CyclicBarrier是什么CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行。CyclicBarrier好比一扇门,默认情况下关闭状态,堵住了线程执行的道路,直到所有线程都就位,门才打开,让所有线程一起通过。应用场景运动会男子100米决赛,8名选手。每个运动员都就位后才开始。public class CyclicBarrierTest { pu

2021-08-26 09:11:24 95

原创 Java 锁基本概念 以及 Reentrantlock的特性

Java 锁中的基本概念1. AQS – 指AbstractQueuedSynchronizer类。AQS是java中管理“锁”的抽象类,锁的许多公共方法都是在这个类中实现。AQS是独占锁(例如,ReentrantLock)和共享锁(例如,Semaphore)的公共父类。2. AQS锁的类别 – 分为“独占锁”和“共享锁”两种。(01) 独占锁 – 锁在一个时间点只能被一个线程锁占有。根据锁的获取机制,它又划分为“公平锁”和“非公平锁”。公平锁,是按照通过CLH等待线程按照先来先得的规则,公平的获取

2021-08-25 17:50:21 176

转载 java中的队列

一、队列的定义我们都知道队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了java.util.Queue接口用来表示队列。Java中的Queue与List、Set属于同一个级别接口,它们都是继承于Collection接口。Java中还定义了一种双端队列java.util.Deque,我们常用的LinkedList就是实现了Deque接口。下面我们看一下类的定义:Queue & Dequepublic interface Queue<E> extends C

2021-08-23 11:17:26 1629

原创 认知觉醒 读书笔记

认知觉醒 读书笔记无论现在经历着什么 请坚持对未来的韧性学习方法:(1)启用元认知审视当前思维,消除模糊,自控而不是被本能控制(2)专注于当前所做的事,挑水的时候就挑水,砍柴的时候就砍柴(3)在舒适区的边缘做事和学习,难度匹配,不会痛苦,成长最快(4)深度学习,发现不熟悉的内容,强化学习,关联到已有知识体系,然后实践和输出习惯养成:发现别人的好习惯,立刻变成自己的早起前天晚上要想好早起要做的事情,对每天要做的事有规划迅速进入专注状态并长时间保持专注冥想,把注意力放在呼吸,练习7个小球

2021-08-22 23:37:46 114

转载 spark rpc 简单示例

spark rpc 简单示例假设我们要开发一个Hello服务,客户端可以传输string,服务端响应hi或者bye,并echo回去输入的string。第一步,定义一个HelloEndpoint继承自RpcEndpoint表明可以并发的调用该服务,如果继承自ThreadSafeRpcEndpoint则表明该Endpoint不允许并发。class HelloEndpoint(override val rpcEnv: RpcEnv) extends RpcEndpoint { override def

2021-08-18 15:41:23 212

原创 spark启动源码架构

2021-08-17 21:48:39 110

原创 缓存一致性协议

缓存一致性协议在执行程序时,每一条指令都是在CPU中执行的,执行指令过程中会包含读取与写入的操作。一般来说程序运行过程中的临时数据都存放在主存(即内存)中,由于CPU执行速度很快,但每次从内存读取数据和向内存写入数据的过程与CPU执行指令速度比起来要慢的多,若是每次对数据的操作都与内存进行交互的话,会大大降低指令执行的速度,为了提升性能,CPU中出现了高速缓存(cache,现在一般都有三级缓存)!CPU有了高速缓存之后,但程序在运行时,会将运算需要的数据从主存中复制一份到CPU的高速缓存中,接着进行读取

2021-08-16 15:19:38 1669 3

原创 kafka面试题

1.Kafka数据积压如何处理?1. 实时/消费任务挂掉导致的消费滞后a. 任务重新启动后直接消费最新的消息,对于"滞后"的历史数据采用离线程序进行"补漏"。b. 任务启动从上次提交offset处开始消费处理如果积压的数据量很大,需要增加任务的处理能力,比如增加资源,让任务能尽可能的快速消费处理,并赶上消费最新的消息2. Kafka分区少了如果数据量很大,合理的增加Kafka分区数是关键。如果利用的是Spark流和Kafka direct approach方式,也可以对KafkaRDD进行repa

2021-08-16 10:05:07 1162

原创 HDFS源码架构图

HDFS源码架构图(1)HDFS namenode启动(2)HDFS datanode启动(3)HDFS datanode注册(4)HDFS 元数据管理(5)HDFS 写数据/上传文件

2021-08-15 21:32:46 141

原创 Java VisualVM

Java VisualVM 概述内存堆Heap分析CPU分析线程分析死锁分析概述VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使用 VisualVM 进行性能分析及调优。自从 JDK 6 Update 7 以后已经作为 Oracle JDK 的一部分,位于

2021-08-12 16:37:51 306

原创 思维方式训练

思维方式训练步骤建立知识体系 也就是内化成自己的思考模式。内化后 可以得出一些第一性原理 本质的内容 总结出方法论。新知识点 要融入知识体系 通过提问题去联想 去连接原有知识 。反复梳理 理清关系 得出知识间的逻辑关系 升级思考模型通过知识体系高维度看待学习的知识点建立知识体系 也就是内化成自己的思考模式。内化后 可以得出一些第一性原理 本质的内容 总结出方法论。新知识点 要融入知识体系 通过提问题去联想 去连接原有知识 。反复梳理 理清关系 得出知识间的逻辑关系 升级思考模型通过知识体系高维度看

2021-08-06 06:41:16 50

原创 Supervisor安装

单机的airflow scheduler很容易挂掉,出现服务故障,所以使用supervisor监控进程,实现服务故障发生时,自动重启服务。Supervisor安装1 使用pip安装安装supervisor安装后的执行文件会默认安装在pip的执行文件目录。进入这个目录,会看到新生成的三个文件,2 生成配置文件./echo_supervisord_conf > supervisored.conf设置配置文件mkdir -p /etc/supe.

2021-07-13 10:10:24 334

原创 Airflow安装

1 安装python略。2 安装pip略。3 安装数据库airflow支持mysql postgrey oracle等,我们使用的数据库是mysql。安装步骤略。4 安装airflowpip3 install apache-airflow5 数据库配置连接mysql,执行如下命令:create user 'airflow'@'%' identified by 'yourpassword';grant all privileges on airflow.* to '

2021-07-13 09:32:05 118

空空如也

空空如也

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

TA关注的人

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