yaoyaobird11
码龄4年
关注
提问 私信
  • 博客:15,802
    15,802
    总访问量
  • 19
    原创
  • 2,036,097
    排名
  • 2
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山西省
  • 加入CSDN时间: 2021-07-13
博客简介:

yaoyaobird11的博客

查看详细资料
个人成就
  • 获得5次点赞
  • 内容获得5次评论
  • 获得57次收藏
创作历程
  • 1篇
    2022年
  • 24篇
    2021年
成就勋章
TA的专栏
  • 大数据
    14篇
  • java
    9篇
  • 云原生
  • 感悟
    1篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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 ·
522 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

flink执行流程

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

java中的clone

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

scala面试题

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

Map Reduce中的排序

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

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 ·
823 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
2645 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

spark任务运行源码

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

数仓开发和数据治理

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

关于kafka和零拷贝

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

jvm基础知识

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

CountDownLatch使用

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

CyclicBarrier 使用

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

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

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

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 ·
1684 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

认知觉醒 读书笔记

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

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 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

spark启动源码架构

原创
发布博客 2021.08.17 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存一致性协议

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

kafka面试题

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