- 博客(78)
- 资源 (16)
- 收藏
- 关注
原创 Elasticsearch 索引写入流程分析
Elasticsearch 作为一个分布式索引,目前在各个公司应用场景还是很多的,下面我们就对索引的写入流程,做一个简单的介绍。我们已一个批量写入索引为例(Es版本7.10.2),使用下面的一个请求;PUT /test/_bulk{"index":{"_id":"11"}} {"name": "John Doe","age":23,"bir":"2012-12-12"}{"index":{"_id":"12"}} {"name": "Jane Doe","age":23,"b...
2021-10-28 11:15:24
1856
原创 【Flink Rest-ful API 】
Flink 有了一些查询job状态指标的API,这些监控API is a REST-ful API 接受 HTTP 请求并返回JSON data ;这些监控API以jobManager中web server 为基础,默认其监听端口为8081,当然你可以在flink-conf.yaml配置中通过rest.port 自定义其端口,下面我们就对其REST-ful API 进行尝试。 一:Flink 上传jar包REST-ful API PO...
2021-03-31 17:05:24
1633
原创 【Elasticsearch】Elasticsearch 索引恢复流程源码分析
一:索引恢复介绍 索引恢复是ES数据恢复过程。比如当集群宕机或者异常重启后,写入磁盘的数据先到文件系统缓存中,没有来的级刷盘,如果不通过某种方式把数据找回来,则会丢失一部分数据,找回数据丢失的过程就是索引恢复过程。 根据数据分片的性质,索引分为主副分片,那么数据恢复就要分为主分片恢复和副分片恢复。 主分片主要从Translog中自我恢复,尚未执行flush到磁盘的分段可以从tanslog中重建 副分片需要从主分片中拉取Lucene分段和tanslog进行恢...
2021-01-28 16:32:24
1106
原创 【Flink】Flink的分区策略及源码分析
一:Flink的分区策略 在Flink的应用中,每个算子都可以设置并行度,比如上游的Map算子的并行度为3,而下游filter的算子并行度为4,那当上下游算子并行度不一致的情况下,flink怎么传递数据呢,这就涉及到Flink的分区策略二:Flink的分区关键类源码分析Flink 中分区策略中有一个抽象类StreamPartitioner,源码如下:public abstract class StreamPartitioner<T> implements Chan...
2020-11-30 16:54:21
1098
原创 【Flink】Flink链化条件及源码分析
一:FLINK的链化优势 Flink 中的每个算子都可以设置并行度,每个算子的一个并行度实例就是一个 subTask。由于 Flink 的 TaskManager 运行 Task 的时候是每个 Task 采用一个单独的线程,这会带来很多线程切换和数据交换的开销,进而影响吞吐量。为了避免数据在网络或线程之间传输导致的开销,Flink 会在 JobGraph 阶段,将代码中可以优化的算子优化成一个算子链(Operator Chains)以放到一个 Task 中执行。二:链化的API层操作 ...
2020-11-30 15:13:00
537
原创 【Elasticsearch】Elasticsearch 的allocation模块源码流程分析
allocatio模块介绍 ES的分片分配就是把分片指派到集群中某个节点的过程,分配决策是有主节点完成的,其分配决策主要有两两面 1:哪些节点需要分配到哪个节点 2:哪个分片是主分片,哪个分片是副分片 对于分片的分配主要有两个组件allocation和deciders完成,allocation的任务是找个最优的节点来分配分片,而deciders负责判断是否要进行这次分配。 比如对于新建索引,allocation模块负责找出拥有分片最少的节点列表,然后deciders依次遍历节点,决定要不...
2020-11-20 15:11:30
924
原创 【Elasticsearch】Elasticsearch gateway模块源码分析
Elasticsearch gateway模块源码分析一:介绍 gateway模块负责集群元数据的存储和集群重启时候元数据的恢复.Elasticsearch的元数据含有集群层元数据、索引层元数据、分片层元数据; gateway模块主要负责集群层和索引层的元数据恢复,分片层的元数据是由allocation模块负责;二:gateway元数据的恢复过程 当集群完全重启后,达到recovery条件时候,进入元数据恢复流程,其主要实现在GatewayService类中,其过程如下 publ...
2020-11-20 10:25:42
427
原创 FlinkSql 读取kafka sink到mysql 案例
public static void main(String[] args) { StreamExecutionEnvironment bsEnv = StreamExecutionEnvironment.getExecutionEnvironment(); bsEnv.setStreamTimeCharacteristic(TimeCharacterist...
2019-11-27 15:36:18
1958
1
数据结构重习之1-数据逻辑结构和数据的存储结构
数据的逻辑结构:简单的来说就是指数据对象中各数据之间的相互关系。这个概念不是很难理解。比如把数据对象比作一个家庭,把逻辑关系就是家庭成员的之间的关系,如夫妻、父子等逻辑关系。在数据结构中,数据的逻辑关系比较稍微复杂一点,其关系有四个:1:集合结构2:线性结构 元素之间一对一3:树形结构 元素一对多4:图形结构 元素多对多关系数据的存储结构 ,也叫物理结构,就是数据逻...
2019-11-27 09:56:37
290
原创 Cannot instantiate user function.
Caused by: org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot instantiate user function. at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfi...
2019-09-26 16:54:46
6455
原创 Flink时间窗口代码分析
本代码分析以TumblingEventTimeWindows 为例,若有疏忽,请包涵。第一步 在TumblingEventTimeWindows 类中调用assignWindows()方法。public Collection<TimeWindow> assignWindows(Object element, long timestamp, WindowAssignerConte...
2019-08-16 15:23:18
2204
原创 ERROR: java.io.IOException: Table Namespace Manager not fully initialized, try again later
ERROR: java.io.IOException: Table Namespace Manager not fully initialized, try again later at org.apache.hadoop.hbase.master.HMaster.checkNamespaceManagerReady(HMaster.java:2693) at org.apache...
2018-08-10 17:15:02
2330
1
原创 网站性能测试基本概念
注:引用李智慧教授的架构核心原理书籍;若有不足地方欢迎指出一 系统性能测试的指标 1:响应时间 及一个操作到返回的时间;包括从发出请求开始到收到最后响应数据所需要的时间;这个指标直接放映了系统的反应的快慢。 2:并发数 指的是系统同时处理请求的数目,这个数字放映了系统的负载特性。 3:吞吐量 指的是单位时间内系统处理的请求数;体现系统的整体处理能力,常用的指标有请求数/秒或者页
2018-01-29 10:52:20
759
原创 Elasticsearch索引内部原理最简洁的归纳
Elasticsearch 内部索引写入原理 : 1: 索引首先会写入到索引的 buffer缓存和translog日志文件中,这个期间不能被客户端索引; 2:每隔一秒钟,buffer 缓存中的数据会被写入到新的segment缓存文件 file中,同时写入系统的缓存中os caching 中,并打开索引,外部客户端可以进行索引查询;这一点说明Elasticsearch 并不是所谓的实
2018-01-11 15:53:54
1782
原创 yarn提交总结
注:此记录仅做自己学习记录yarn的提交过程简单的总结如下:第一步:client 通过RPC 的applicationClientProcotol协议提交客户自己编码的应用程序到 resourceManager第二步:applicationMaster 启动后,首先向resourceManager 进行注册,注册通过RPC 的 applicationMasterProcotol协议
2017-09-07 15:13:51
711
转载 过拟合和欠拟合---西瓜笔记一
申明:仅学习过程笔记记录,多处引用周志华老师书本内容错误率:把分类错误的样本占总体样本总数的比率精度(accuracy)= 1 -错误率误差:把学习器的实际预测输出与样本的真实输出的差异叫做误差;
2017-08-01 16:55:28
599
原创 JVM 优化浅解分析
先上个图;了解一下gc各个内存分配:优化问题点: 1:内存回收导致的长时间停顿 ;由于堆设置太大,一次Full GC的停顿时间高达14秒。并且由于程序设计的关系,访问文档时要把文档从磁盘提取到内存中,导致内存中出现很多由文档序列化产生的大对象,这些大对象很多都进入了老年代,没有在Minor GC中清理掉。这种情况下即使有很大的堆,内存也很快被消耗殆尽,由此导致每隔十几分钟出
2017-07-24 17:58:02
428
原创 jvm 垃圾回收机制 安全点
上一节,我们说到 jvm 保洁阿姐一边打扫的,别人一边扔垃圾怎么处理呢?其实很简单,jvm保洁阿姐再打扫前,告诉公司所有说:我要打扫了,你们不准扔垃圾了;OK解决了!哈哈。那在jvm垃圾回收中,上面的情景怎么处理呢?在可达性分析中要分析哪个对象没有引用的时候,必须在一中快照的状态点进行,就是这个点所有的线程都被冻结了;不可以出现分析过程中对象引用关系还在不停的变化;如果该点不能满足的话,
2017-07-24 14:15:32
1925
原创 jvm的垃圾回收机制——jvm超简洁直白理解
jvm的保洁啊姐一早就来了,但让保洁阿姐犯愁的事情是: 一:哪些东西需要回收呢? 二:什么时候回收呢? 三:用什么方式回收呢?那我们先弄清上面疑问前,先了解一下jvm的内存分配jvm 内存可以分栈,本地方法栈,程序计数器、堆和方法区;栈 : 线程私有,生命周期和线程同步;存放局部变量(基本数据类型,对象的引用),其所需内存大小编译器时候 已经确认,故内存分配有确定性;程序计数器
2017-07-21 11:33:50
1505
原创 Kafka AdminClient 管理Kafka Offset代码实现
kafka offset 管理命令,kafka offset 代码现
2017-06-07 09:19:00
10975
1
翻译 决策树、随机森林简单原理和实现
本文申明:此文为学习记录过程,中间多处引用大师讲义和内容一:概念决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。决策数有两大优点:1)决策树模型可以读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。看了一遍概念后,我们先从一个简单的案例开
2017-05-01 20:37:03
11943
转载 逻辑Logistic回归原理和实现
首先申明:引用此博客为学习记录用,中间引用了Andrew NG的视频内容和Z老师的授课内容,因个人能力有限若有不足的地方,欢迎大家提出一起研究学习; 第一我们先给予逻辑回归的定义:逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。
2017-05-01 12:52:02
2915
转载 线性回归原理和实现基本认识
一:介绍 线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商品的大小,y代表为销售量;当月份x =5时,我们就能根据线性模型预测出 y =11销量;对于上面的简单的例子来说,我们可以粗略把 y =2x+1看到回归的模型;对于给予的每个商品大小都能预测出销量;当然这个模型怎么获取到就是
2017-04-28 17:04:57
72545
7
转载 svm算法 最通俗易懂讲解
最近在学习svm算法,借此文章记录自己的学习过程,在学习很多处借鉴了z老师的讲义和李航的统计,若有不足的地方,请海涵;svm算法通俗的理解在二维上,就是找一分割线把两类分开,问题是如下图三条颜色都可以把点和星划开,但哪条线是最优的呢,这就是我们要考虑的问题;首先我们先假设一条直线为 W•X+b =0 为最优的分割线,把两类分开如下图所示,那我们就要解决的是怎么获取这条最优直线呢
2017-04-21 16:57:54
131072
8
转载 sqoop从greenplum到数据到hive中
关于sqoop原理详见官文,这里都不做介绍,此处就记录用sqoop把greenplum数据导到hive中的方法和我测试时候遇到的问题;一:sqoop的解压安装后,配置sqoop-env.sh配置文件二:把链接数据库的mysql-connector-java-5.1.3-jar包传到sqoop lib目录下三:执行导入命令:sqoop import -m1 \ ------
2017-04-14 13:50:35
5798
2
转载 机器学习之 损失函数和风险函数
当样本容量足够大的时候,经验风险最小化能保证有很好的学习效果,但样本数量小的时候,就会产生“过拟合”现象。因为参数太多,会导致我们的模型复杂度上升,容易过拟合(训练误差会很小),但训练误差小不是我们的终极目标,我们的目标也是测试误差也小,所以我们要保证模型最简单的基础下最小化训练误差;模型复杂度可以通过正则函数来实现(约束我们的模型特征),强行的让模型稀疏,低秩,平滑等
2017-03-09 15:26:07
7987
转载 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。KKT条件是拉格朗日乘子法的泛化。之前学习的时候,只知道直接应用两个方法,但是却不知道为什么拉格朗日乘子法(Lagrange Multiplier) 和KKT条件能够起作用,为什么要这样去求取最优值呢?
2017-02-23 14:51:54
496
原创 虚拟存储器
一个系统中的进程是与其他进程共享CPU和主存资源的,然而,共享主存会形成一些特殊的情况,如果太多的进程需要太多的储存器,那么他们中的一些就根本无法运行。当一个程序没有空间可用的时候,那就是他运气不好。存储器还容易被迫害,如果一个进程不小心写了另一个进程使用的存储器,它就可能失去原先的逻辑。为了更有效的管理存储器,现在系统引入了一种对主存的抽象概念,叫做虚拟存储器;
2017-02-22 10:14:01
2895
原创 链接
链接是将各种代码和数据部分收集起来并组合成一个单一可执行文件的过程,这个文件可被加载到存储器并执行、链接可以在编译时(源代码被翻译成机器代码时候)、加载时执行,也可以在程序被加载器加载到存储器并执行时,甚至可以执行于运行时,由应用程序来执行。链接早期是手工的,在现在系统中,链接是由叫连接器的程序自动执行;
2017-02-22 09:34:01
529
flink-jdbc-driver-0.1-SNAPSHOT.jar
2020-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人