- 博客(75)
- 收藏
- 关注
原创 【ZooKeeper】zookeeper源码7-FastLeaderElection网络通信机制&选票交换机制&lookForLeader执行选举
FastLeaderElection网络通信机制&选票交换机制&lookForLeader执行选举
2022-11-19 17:59:17
929
原创 【ZooKeeper】zookeeper源码6-FastLeaderElection选举算法
zookeeper源码-FastLeaderElection选举算法
2022-11-06 21:56:47
767
原创 【Scala语言】scala简介_scala环境搭建_创建scala工程demo_ java和scala执行效率比较_scala的REPL交互式解释器
001-scala基础语法scala简介为什么要使用scalascala开发环境安装安装JDK安装scala SDK安装IDEA的scala插件创建demo工程java和scala执行效率比较scala简介scala是运行在 JVM 上的多范式编程语言,同时支持面向对象和面向函数编程JVM:java虚拟机多范式:java语言是面向对象编程的语言,随着jdk不断的升级,开始慢慢支持一些面向函数式的编程。而scala具有具有这两种风格。scala的主要优势:表达性随着spark和kafka作为大数
2021-01-16 18:48:53
421
原创 【hadoop二次开发】对namenode的启动流程的总结
009-hadoop二次开发启动http元数据加载创建RPC守护线程工作和总体流程NameNode启动流程首先在源码文件NameNode.java中的main函数中,主要基于createNameNode方法,进入该方法后,根据参数,进行模式匹配,匹配到default,进入NameNode构造函数,会在createHAContext方法(在FSNamesystem.java源码文件中)中启动一些回调函数,比如startActiveServices()函数,开启守护线程this.nnrmthread =
2020-10-06 15:22:05
212
原创 【hadoop二次开发】根据汇报的数据块判断是否可以离开安全模式
008-hadoop二次开发在源码文件FSNamesystem.java执行完nnResourceChecker = new NameNodeResourceChecker(conf);立马执行checkAvailableResources(),检查可用资源是否足够:如果不够,日志打印警告信息,然后进入安全模式。然后 /** * 磁盘资源不足的情况下,任何对元数据修改所产生的日志都无法确保能够写入到磁盘, * 即新产生的edits log和fsimage都无法确保写入磁盘。所以要进入安
2020-10-06 14:13:18
306
原创 【hadoop二次开发】检查磁盘资源的守护线程类
007-hadoop二次开发启动NameNode的场景打开源码文件NameNode.java,找到main函数,找到createNameNode方法进入,经过模式匹配,匹配到NameNode进入, /** * 1、对namenode做参数的注册(fs.defaultFS、rpc地址等) * 2、初始化 * 3、根据初始化处理的结果,namenode进入对应的状态(active、backup、standby) * */ protected NameNode(Configur
2020-10-05 16:10:28
131
原创 【hadoop二次开发】NameNodeResourceChecker的构造函数
006-hadoop二次开发针对源码文件NameNode.java中startCommonServices(Configuration conf)下namesystem.startCommonServices(conf, haContext)源码文件FSNamesystem.java中startCommonServices(Configuration conf, HAContext haContext)下nnResourceChecker = new NameNodeResourceChecker(co
2020-10-05 15:29:29
137
原创 【hadoop二次开发】RPC的创建流程
005-hadoop二次开发在源码NameNode.java文件第716行创建RPC:/** * NameNodeRpcServer里面有两个主要的RPC服务: * 1):clientRpcServer , 主要管理的协议是hdfs的客户端(用户)去操作HDFS的方法 * 2):ServletRpcServer , 服务之间互相进行的方法的调用(注册、心跳等) * */rpcServer = createRpcServer(conf);怎么创建RPC的呢?进入createRpcServer
2020-10-05 12:46:11
404
原创 【hadoop二次开发】源码中namenode是如何启动http服务器对外提供服务的
004-hadoop二次开发在NameNode.java源码文件中: /** * 1、对namenode做参数的注册(fs.defaultFS、rpc地址等) * 2、初始化 * 3、根据初始化处理的结果,namenode进入对应的状态(active、backup、standby) * */ protected NameNode(Configuration conf, NamenodeRole role) throws IOException { t
2020-09-20 13:20:20
574
原创 【hadoop二次开发】通过源码NameNode类的mian函数进行启动namenode
003-hadoop二次开发main函数main函数一旦调用org.apache.hadoop.hdfs.server.namenode.NameNode,那么在该类下一定有个main函数。启动NameNode需要提交参数,首先对参数要进行合法校验,if (DFSUtil.parseHelpArgument(argv, NameNode.USAGE, System.out, true)) { System.out.println("####参数校验#####"); System.exit(0
2020-09-20 09:28:19
267
原创 【hadoop二次开发】查看NameNode的启动脚本
002-hadoop二次开发NameNode是什么,有哪些职责NameNode如何启动的(通过脚本)NameNode是什么,有哪些职责首先namenode是一个服务中心,管理文件系统命名空间的,比如当前文件名叫什么,以及管理的元数据,blockID,block大小,块池列表,在哪些机器上。在WEB-UI界面50070端口,Utilities下Browse Directory查看hdfs文件信息。当在客户端输入hadoop fs -ls /命令后,通过rpc发送给namenode,执行操作,返回结果到
2020-09-19 12:08:07
447
原创 【hadoop二次开发】模仿源码,手写一个RPC过程调用
001-hadoop二次开发Hadoop RPC创建一个demo工程(hadoopProject)rpc-server工程rpc-client工程RPC总结Hadoop RPCRPC(Remote Procedure Call)-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议(比如TCP\UDP)。代码实现添加pom依赖<dependency> <groupId>org.apache.hadoop</groupId>
2020-09-18 22:17:05
323
原创 【Flink流式计算框架】checkpoint(容错)_恢复数据(容错)_savepoint
012-Flinkcheckpoint(容错)checkpoint概述checkpoint配置恢复数据(容错)重启策略概述重启策略多checkpoint从checkpoint恢复数据savepoint(重量级checkpoint)checkpoint(容错)checkpoint概述(1)为了保证state的容错性,Flink需要对state进行checkpoint。(2)Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator/task的
2020-08-09 20:50:47
631
原创 【Flink流式计算框架】State(KeyedState/OperatorState)和StateBackend及配置
011-FlinkStatestate概述State类型KeyedState案例Operator State案例(unKeyedState)State backendMemoryStateBackendFsStateBackendRocksDBStateBackendStateBackend配置方式State:一般指一个具体的task/operator的状态。 Keyed State(keyBy):托管状态、原始状态 工作中用的较多
2020-08-05 23:24:20
989
1
原创 【源码学习-spark2.1.1和yarn2.11】SparkOnYarn部署流程(二)ApplicationMaster_CoarseGrainedExecutorBackend
002-源码spark-2.1.1版SparkOnYarn部署流程-ApplicationMasterSparkOnYarn部署流程-CoarseGrainedExecutorBackendSparkSubmit// 启动进程– main// 封装参数– new SparkSubmitArguments// 提交– submit// 准备提交环境– prepareSubmitEnvironment// Cluster– childMainClass = “org.apache.spa
2020-08-05 14:14:58
478
原创 【源码学习-spark2.1.1和yarn2.11】SparkOnYarn部署流程(一)从sparksubmit提交到yarn启动进程ApplicationMaster
001-源码spark-2.1.1版SparkOnYarn部署流程源码散步1.整体框架2.框架组件、通信3.任务的划分、调度、执行这里基于spark-2.1.1版本的源码,官网现在是spark-3.0.0和spark-2.1.1的源码还是有很多区别的。SparkOnYarn部署流程bin/spark-submit \-class org.apache.spark.examaple.SparkPi \-master yarn \-deploymode client \./examples
2020-08-04 16:28:38
495
原创 【Flink流式计算框架】并行度_slot_task_数据传输方式_OperatorChain
010Flink有状态的流和分布式计算并行度&Slot&Task并行度的设置数据传输的方式Operator Chain使用StreamExecutionEnviroment.createLocalEnvironmentWithWebUI(new Configurati-on()),可以在本地看到flink的运行信息需要引入依赖nc -lk 8888建立以一个socket源客户端多少个并行度就有多少个task每个方法,每个算子后面都可以设置并行度.setParallelism()
2020-08-03 17:33:16
559
原创 【Flink流式计算框架】flink任务提交
009FlinkFlink基本架构概述Client 客户端JobManagerFlink基本架构standalone模式:主从式的架构yarn模式概述Flink 整个系统主要由两个组件组成,分别为 JobManager 和 TaskManager,Flink 架构也遵循 Master - Slave 架构设计原则,JobManager 为 Master 节点,TaskManager 为 Worker (Slave)节点。所有组件之间的通信都是借助于 Akka Framework,包括任务的状
2020-08-03 15:29:11
509
转载 【Flink流式计算框架】DataSet算子操作
008FlinksourcetransformMapPartitiondistinctjoinOutJoinCrossFirst-n 和 SortPartitionpartitionsinkDataSet算子操作(有界的、批处理、离线)Spark:1.2RDD->1.3DataFrame->1.6DataSet keyBy和groupBy效果一样,为了区分DataStream和DataSet source基于文件:readTextFile 基于集合:fromCollection(Co
2020-08-02 15:46:43
403
原创 【Flink流式计算框架】常见Transformation操作
006Flinkmap和filterflatMap,keyBy和sumunionconnect,conMap和conFlatMapSplit和Select获取source的方式(自带的) 基于文件:readTextFile() 基于socket:socketTextStream 基于集合
2020-08-02 10:47:25
338
原创 【Flink流式计算框架】常见sink操作
007Flinkprint() / printToErr()writeAsText()Flink提供的sink自定义sinkprint() / printToErr()打印每个元素的toString()方法的值到标准输出或者标准错误输出流中writeAsText()/** * 数据源:1 2 3 4 5.....源源不断过来 * 通过map打印一下接受到数据 * 通过filter过滤一下数据,我们只需要偶数 */public class WriteTextDemo { public
2020-08-02 10:46:44
1698
原创 【Flink流式计算框架】Flink数据源
005Flink获取source的方式(自带的) 基于文件:readTextFile() 基于socket:socketTextStream 基于集合:fromCollection(Collection) 自定义数
2020-07-28 19:42:13
448
原创 【Flink流式计算框架】Local模式安装_Standalone模式安装(local)_Flink on Yarn模式安装_Flink Shell使用
004FlinkLocal模式安装(集群只有一个节点)Local模式安装在集群上提交任务Standalone模式安装(local)Flink on Yarn模式安装第一种方式第二种方式help信息(yarn-session.sh和flink run)Local模式安装(集群只有一个节点)Local模式安装(1)安装jdk,配置JAVA_HOME,建议使用jdk1.8以上(2)安装包下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-
2020-07-28 17:24:30
644
原创 【Spark内存计算框架】SparkStreaming调优策略
007SparkStreamingSparkStream的核心抽象是DStream调优策略:Sparkstreaming+kafka,用不到receiver,选择direct方式基于receiver基于directshuffle上游shuffle下游调整数据处理的并行度(task)数据的序列化SparkStreaming两种需要序列化的数据:a. 输入的数据:默认是以StorageLevel.MEMORY_AND_DISK_SER_2的形式存储在executor上的内存中b. 缓存
2020-07-26 18:19:34
314
原创 【Flink流式计算框架】flink入门程序实现(单词计数)_实时统计_离线统计
003FlinkFlink程序步骤一:获取执行环境,获取的是程序入口步骤二:获取数据源步骤三:数据处理Out.collect(new Tuple2<>(word,1))Out,collect(Tuple2.of(word,1))这俩结果一样步骤四:数据的输出步骤五:启动应用程序工作中算子参数,用面向对象的抽离复杂的算子实时需求分析 实时统计每隔1秒统计最近2秒单词出现的次数开发环境部署官网建议使
2020-07-26 17:35:31
917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人