- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 在线修改jvm对象的属性值(私有)
一个spark job 在启动之后,就会确定 executor 的数量。但是存在一种情况,当我的队列资源宽松可能就要调整一些job的资源,但是spark job在启动的时候,最大的资源就确定了,所以能否可以通过直接修改jvm里面某些属性值来调整 job 的 资源使用大小。通过阅读 spark on yarn 的 提交job流程代码,发现在 ApplicationMaster registerAM 方法最后。
2023-12-11 20:00:00
1211
原创 Java_Callable&FutureTask&CompletableFuture.
提供对异步计算的支持,可以通过回调的方式处理计算结果,CompletableFuture 类实现了CompletionStage和Future接口,所以还可以像之前使用Future那样使用CompletableFuture ,尽管已不再推荐这样用了。相对阻塞式等待返回结果,CompletableFuture 可以通过回调的方式来处理计算结果,实现了异步非阻塞,性能更优。Future 类通过 get() 方法阻塞等待获取异步执行的运行结果,性能比较差。whenComplete() 并不能转换完成的结果。
2023-02-20 10:37:39
377
原创 Java_UnSafe&LockSupport&Atomic
特性Atomic变量volatile关键字Lock接口synchronized关键字原子性可以保障无法保障可以保障可以保障可见性可以保障可以保障可以保障可以保障有序性无法保障一定程度保障可以保障可以保障。
2023-02-20 09:57:14
392
原创 Flink JobManager 内存占用大 问题
当在 本地启动一个 flink 简单的 job 时候,发现出现了 heap outMemeory 问题,然后就不假思索的 调整了 jvm 的 heap -Xms1000m -Xmx16000m 参数,就可以正常的启动了。通过 jvisualvm 连接上 这个 jvm process,参看 堆大小 竟然达到了 4、5G。
2022-12-01 14:12:04
2705
原创 spark2.4.8 编译支持 hadoop3.3.3 hive2
因为 spark 只依赖 hdfs 文件系统,spark2 默认就支持了 hadoop2,如果要支持 hadoop3 只需要 把 hadoop 依赖 换为 hadoop3 即可;当然你可以使用官方的 spark 在 hadoop2 编译后的 spark 安装包,但是就不能使用 hdfs3 的 纠删码等特性了。
2022-10-10 14:55:11
1672
原创 Reference&ReferenceQueue源码解读
用来收集被 GC 后的对象(这个对象在这里是 会被 SoftReference、WeakReference、PhantomReference 包装的),这样的话,用户就可以在这个对象 GC 之后,做一些其它后续操作,比如 反向操作、数据清理等。
2022-09-28 09:35:54
283
原创 slf4j日志框架源码阅读
slf4j日志框架源码阅读slf4j日志框架源码阅读getILoggerFactory 方法详细解析 [](@first_link)performInitialization 方法详细解析bind 方法详细解析总结使用 slf4j 需要 引入的 jar 包,也是使用日志 必须引入的 jar 包使用 logback 需要 引入的 jar 包日志配置使用 log4j 需要 引入的 jar 包日志配置使用 log4j2 需要 引入的 jar 包log4j 日志配置转化为 logback 日志配置slf4j日志
2022-03-09 15:37:42
202
原创 Java ClassLoader 源码解读
Java ClassLoader 源码解读URLClassLoaderURLClassLoader findClassAppClassLoader 初始化过程URLClassPathURLClassPath getResourceURLClassPath getLookupCacheURLClassPath getNextLoader & getLoader#AppClassLoader loadClasspublic Class<?> loadClass(String var1,
2021-01-11 16:44:26
430
原创 运行在Yarn上的Java Demo 程序
RunAPPOnYarngitee地址github地址本项目的是 写一个可以运行在 Hadoop Yarn 的 APP ;须知:在 编写 APPMaster 程序的时候 参考了 Hadoop YARN权威指南 的书籍和代码;参考代码地址StartAPPAPP 是 主运行程序 ,如果网络条件和配置文件(需要配置文件放在 resources 目录下)允许的情况下可以在本地调试。APP 程序主要是 获取到 yarnClient ,通过 yarnClient 再获取到 NewApplicatio
2020-07-20 15:04:41
779
原创 Java-自定义的ClassLoader 生成的class字节数组,如何才能加载到 AppClassLoader等其他的classloader
自定义ClassLoader如何自定义 自己的 classLoader,其实很简单;只需要继承ClassLoader,然后重写一些方法实现自己的业务就可以了。下面以 加载 ASM(等其他方式)产生的 class 的 byte数组 生成 Class 对象 为例子:private static class MyClassLoader extends ClassLoader { public Class<?> defineClass(String name, byte[] b
2020-06-12 15:54:28
1336
原创 Spark-YarnClusterSchedulerBackend,YarnSchedulerBackend,CoarseGrainedSchedulerBackend 源码阅读
YarnClusterSchedulerBackend主要负责 和 executors 通信,在 driver 的用户线程中工作,TaskSchedulerImpl 的 任务会通过 这个类及其父类 分发到executor。//主要负责 和 executors 通信,在 driver 的用户线程中工作 private[spark] class YarnClusterSchedulerBacke...
2020-03-26 15:13:22
734
原创 Spark-TaskSchedulerImpl,TaskSetManager,Pool 源码解析
Spark-TaskSchedulerImpl,TaskSetManager,Pool 源码解析class PoolTaskSchedulerImplclass TaskSchedulerImplobject TaskSchedulerImplTaskSetManagerclass TaskSetManagerobject TaskSetManagerTaskResultGetterclass ...
2020-03-25 17:31:05
673
原创 Spark-HeartbeatReceiver 源码解析
Spark-HeartbeatReceiver 源码解析class HeartbeatReceiverobject HeartbeatReceiverHeartbeatReceiver这个类是一个 endPoint,在driver端才有其对象。他的主要作用是 定时监测 注册到 本dirver的所有的executor 是否存活。下面来看看源码:class HeartbeatReceiverp...
2020-03-16 11:01:01
221
原创 Spark-BroadcastManager&TorrentBroadcastFactory&BroadcastFactory&Broadcast 源码解析
Spark-BroadcastManager&TorrentBroadcastFactory&BroadcastFactory&Broadcast 源码解析BroadcastManagerTorrentBroadcastFactoryBroadcastFactoryTorrentBroadcastabstract class BroadcastBlockIdRDDBlock...
2020-03-06 21:29:37
237
原创 Spark-BlockManager、BlockManagerSlaveEndpoint、DiskStore、MemoryStore、BlockInfoManager、BlockInfo 源码解析
Spark-BlockManager、DiskStore、MemoryStore、BlockInfoManager、BlockInfo 源码解析class BlockInfo & Object BlockInfoclass BlockInfoManagerclass MemoryStore & class DiskStoreclass BlockManagerclass Block...
2020-03-06 17:16:19
1718
原创 Spark-NettyBlockTransferService、NettyBlockRpcServer、OneForOneBlockFetcher 源码解析
Spark-NettyBlockTransferService、NettyBlockRpcServer、OneForOneBlockFetcher 源码解析class NettyBlockTransferServiceclass NettyBlockRpcServerOneForOneBlockFetcherclass NettyBlockTransferService这个类的主要目的是 和其...
2020-03-06 16:26:27
572
原创 Spark-BlockManagerMaster、BlockManagerMasterEndpoint 源码解析
Spark-BlockManagerMaster、BlockManagerMasterEndpoint 源码解析abstract class BlockIdobject BlockIdRDDBlockIdShuffleBlockIdShuffleDataBlockIdShuffleIndexBlockIdBroadcastBlockIdTaskResultBlockIdStreamBlockIdT...
2020-02-21 14:08:01
811
原创 Spark-LiveListenerBus 消息总线 源码解析
Spark-LiveListenerBus 源码解析LiveListenerBusclass LiveListenerBusobject LiveListenerBusLiveListenerBusMetricsAsyncEventQueueclass AsyncEventQueueobject AsyncEventQueueSparkListenerBusListenerBusSparkCont...
2020-02-17 15:22:52
409
原创 Spark-MapOutputTracker 源码解析
Spark-MapOutputTracker 源码解析MapOutputTrackerMasterMapOutputTrackerWorkerabstract MapOutputTrackerclass ShuffleStatusMapOutputTracker 一共有2种类型,一个是MapOutputTrackerMaster,另一个是MapOutputTrackerWorker。MapOu...
2020-02-06 19:51:52
377
原创 Spark-MemoryManager、StorageMemoryPool源码解析
Spark-MemoryManager、StorageMemoryPool源码解析UnifiedMemoryManager objectUnifiedMemoryManager classabstract MemoryManagerExecutionMemoryPoolStorageMemoryPoolabstract MemoryPoolSpark的内存管理有2个版本,一个是1.6以前的S...
2020-01-20 11:39:41
171
原创 Spark-SerializerManager&JavaSerializer&KryoSerializer 源码解析
Spark-SerializerManager&JavaSerializer&KryoSerializer 源码解析abstract class SerializerJavaSerializerKryoSerializerabstract class SerializerInstanceJavaSerializerInstanceKryoSerializerInstanceabst...
2020-01-07 09:37:05
185
原创 Java-ObjectInputStream 反序列化 源码解析
Java-ObjectInputStream 反序列化 源码解析ObjectInputStreamBlockDataInputStreamObjectInputStream构造方法://需要传入一个 输入流,因为反序列化的来源的是一个 输入流public ObjectInputStream(InputStream in) throws IOException { verif...
2019-12-31 17:51:30
319
原创 Java- 序列化 ObjectOutputStream源码解析
Java-ObjectOutputStream 序列化 源码解析ObjectOutputStreamBlockDataOutputStreamDataOutputStreamHandleTableReplaceTableObjectStreamClass计算字段偏移量一个普通类obj(只实现Serializable接口)的序列化过程注意序列化的实现有2中方式,一个是实现Serializable接...
2019-12-29 21:38:32
381
原创 Spark - RpcEnv Object&abstract class RpcEnv&RpcEnvConfig&NettyRpcEnv class object 源码解析
Spark - RpcEnv Object &abstract class RpcEnv & RpcEnvConfig & NettyRpcEnv class object 源码解析object RpcEnvobject RpcEnv这个伴生对象只有2个方法,都是返回一个RpcEnv的实例:def create( name: String, //别称 ...
2019-12-23 22:38:54
101
原创 mongo-spark-connector 解决 Mongo长精度 0.0引起的Bug Decimal scale (12) cannot be greater than precision (1).
mongo-spark-connector_2.11-2.1.2.jar在使用mongo-spark-connector_2.11-2.1.0.jar 时,会由于Mongo长精度 0.0 导致 转化为 java 的BigDecimal 时的 异常检查 不用过。这个Bug在mongo-spark-connector_2.11-2.1.2 已经解决了,但是这个jar 中有使用了 java8的方法。这...
2019-12-19 20:35:18
815
原创 Spark - Inbox & InboxMessage & Dispatcher&RequestMessage&Outbox&OutboxMessage源码解析
Spark-Inbox & InboxMessage 源码解析trait InboxMessagecase class OneWayMessagecase class RpcMessagecase object OnStartcase object OnStopcase class RemoteProcessConnectedcase class RemoteProcessDisconne...
2019-12-13 17:23:35
452
原创 Spark-SparkEnv 源码解析
Spark-SparkEnv 源码解析SparkEnv ObjectSparkEnv Object属性SparkEnv Object方法create方法,比较重要的方法:SparkEnv ClassSparkEnv ObjectSparkEnv的伴生对象。下面是他的构造方法:SparkEnv Object属性@volatile private var env: SparkEnv = _ ...
2019-12-09 20:13:07
143
原创 Spark- ApplicationMaster Class& ApplicationMaster Object即Spark AppMaster ,executor的启动源码解析
Spark- ApplicationMaster Class& ApplicationMaster Object即Spark AppMaster 源码解析Object ApplicationMasterClass ApplicationMasterObject ApplicationMaster这个类是ApplicationMaster的伴生对象,当在yarn里面启动AppMaster...
2019-12-03 17:43:34
1228
1
原创 Spark spark-submit提交Job流程 解读
Spark-spark-submit提交Job流程 解读spark-submitspark-classload-spark-env.shorg.apache.spark.launcher.MainSparkSubmitCommandBuilder构造方法buildCommandOptionParser本篇博文详细讲讲spark-submit提交Job流程。spark-submit spark...
2019-11-29 18:09:43
2321
原创 Spark config配置项 一览
Spark config配置项 一览env配置env配置SPARK_PRINT_LAUNCH_COMMAND -> true 表示在spark-submit 提交job的时候是否打印LaunchCommand
2019-11-29 16:52:24
4838
原创 Spark-SparkSession.Builder 源码解析
Spark-SparkSession.Builder 源码解析class BuilderSparkSessionExtensionsclass Builder这个类主要用来builder SparkSession有以下的属性:1.private[this] val options = new scala.collection.mutable.HashMap[String, String];...
2019-11-22 14:11:30
5337
原创 Java-ThreadLocal与InheritableThreadLocal 源码解析
Java-ThreadLocal 源码解析ThreadMapThreadThreadLocalthreadLocal 的主要作用是用来保存线程变量的。它的生命周期主要和Thread类结合在一起使用。ThreadMapThreadLocalMap是ThreadLocal中的一个静态内部类。这个类为什么要是一个静态内部类啦?其类内部有staic类型的属性、方法、内部类。。。其类部还有一个静态类...
2019-11-19 16:33:09
308
1
原创 oozie-workFlow action之间传递参数sh示例
oozie-workFlow action之间传递参数sh示例参数提供方参数使用方运行结果验证参数提供方shthisDay='2019-11-16'echo "thisDay:$thisDay"2.action注意:1.一定在files中加入sh脚本,因为oozie调度是在整个平台上的,所以files中一定要加入进去,可以让任务执行时找到执行文件。2. shell-dbc9...
2019-11-18 15:22:21
351
原创 Java-非静态内部类与静态内部类 对比
Java-非静态内部类与静态内部类解说内部类的特性非静态内部类静态内部类内部类的特性非静态内部类可以非常方便的使用其所在外部类的变量和方法。静态内部类可以非常方便的使用其所在外部类的静态变量和方法,但是不能访问外部类的非静态变量和方法。非静态内部类注意点:1.在普通内部类里面是不能声明静态类变量和类常量及方法的。但是静态内部类是可以有的public class InnerClas...
2019-11-14 18:57:34
283
原创 Spark源码-SparkConf(scala)
Spark源码-SparkConf SparkConf ClassSparkConf objectConfigProviderEnvProviderSystemProviderMapProviderSparkConfigProviderConfigReader class objectConfigReader objectConfigReader class这个类的目的是配置用户运行时的一些配置...
2019-11-13 15:44:41
369
原创 Spark源码-StaticSQLConf (scala)
Spark-scala 源码-StaticSQLConf StaticSQLConf源码阅读StaticSQLConf ObjectSQLConf Object&classConfigBuilder case classTypedConfigBuilder classConfigEntry abstract classStaticSQLConf源码阅读StaticSQLConf Obj...
2019-11-12 19:15:55
297
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人