- 博客(6)
- 问答 (5)
- 收藏
- 关注
转载 Java FileChannel 和 零拷贝的 关系
前言大白话解释,零拷贝就是没有把数据从一个存储区域拷贝到另一个存储区域。但是没有数据的复制,怎么可能实现数据的传输呢?其实我们在java NIO、netty、kafka遇到的零拷贝,并不是不复制数据,而是减少不必要的数据拷贝次数,从而提升代码性能零拷贝的好处内核空间和用户空间缓冲区和虚拟内存传统的 I/Ommap+write 实现的零拷贝sendfile 实现的零拷贝带有DMA收集拷贝功能的sendfile实现的零拷贝java提供的零拷贝方式零拷贝的好处减少或避免不必要的CPU数
2022-03-23 21:49:04
275
原创 Spark 源码解析(三) Saprk的组件三巨头初始化 TaskSchuduler,Backend,DAGScheduler
当我们初始化SparkContext的时候 会创建 很多的组件 这里详解一个 Spark的重要组件 TaskScheduler,Backend,DAGSCheduler val (sched, ts) = SparkContext.createTaskScheduler(this, master, deployMode)进入到SparkContext的createTaskScheduler方法中进行模式匹配// local模式 略过// standAlone 模式case SPARK_REGE
2021-10-27 22:59:16
677
原创 Spark源码解析(二) SparkContext 初始化
Spark 初始化SparkContext上一次我们的源码跟踪到Spark通过反射来 获取我们所写的代码的main 方法。然后执行。我们都知道 我们的Spark编程的套路。1:获取环境 SparkContext2:添加source3:数据处理4:输出Sink5:stop停止Spark任务 。我们代码中的获取SparkSession的入口val spark: SparkSession = SparkSession.builder.appName("Spark Pi").getOrCreate(
2021-10-09 22:19:42
728
原创 Spark 源码解析大全(1) 任务的提交
Spark 源码解析 任务提交1: 代码提交 ### 我们提交spark任务的步骤为: ### 1):将IDE中所写的scala/java 代码 打包为一个jar包 ### 2):将jar 包上传到 服务器 ### 3): 通过spark-submit 运行 命令” ./spark-subimt --class org.apache.examples --master yarn ./exmples/jars/spark-examples_2.12-3.0.0.jar “ 这样
2021-09-22 22:22:44
407
原创 JAVA 1.8新特新 CompletableFuture 的详解
2.1. 线程回顾初始化线程的4种方式:继承Thread实现Runnable接口实现Callable接口 + FutureTask (可以拿到返回结果,可以处理异常)线程池方式1和方式2:主进程无法获取线程的运算结果。不适合当前场景方式3:主进程可以获取线程的运算结果,并设置给itemVO,但是不利于控制服务器中的线程资源。可以导致服务器资源耗尽。方式4:通过如下两种方式初始化线程池:Executors.newFiexedThreadPool(3);//或者new ThreadPo
2021-09-09 17:01:50
535
原创 Apache Spark 实时监控设置 自定义实现KafkaSink 以及如何通过业务场景来找到我们需要修改的位置
private def create(conf: SparkConf, executorId: String, bindAddress: String, advertiseAddress: String, port: Option[Int], isLocal: Boolean, numUsableCores: Int, ioEncryptionKey: Option[Array[Byte]], listenerBus: LiveListenerBus = null, mock
2021-09-05 23:23:09
679
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人