
大数据
_Mr. White
这个作者很懒,什么都没留下…
展开
-
什么是Flink端到端状态一致性
一般我们看到的一致性保证都是由流处理器实现的, 也就是Flink内部的一致性是靠checkpoint实现的, 是有保证的; 而在实际的应用中, 流处理应用除了流处理器以外, 还包含了数据源(例如Kafka)和输出到持久化系统 端到端的一致性保证, 意味着结果的正确性贯穿了整个流处理应用的始终; 每一个组件都保证了它自己的一致性 整个端到端的一致性级别取决于所有组件中一致性最弱的组件...原创 2021-07-20 20:55:15 · 247 阅读 · 1 评论 -
Flink检查点的实现算法
检查点分界线FLink的检查点算法用到了一种称为分界线(barrier)的特殊数据形式, 用来把一条流上数据按照不同的检查点分开分界线之前到来的数据导致的状态更改, 都会被包含在当前分界线所属的检查点中; 而基于分界线之后的数据导致的所有更改, 就会被包含在之后的检查点中检查点运行过程1, JobManager会向每个source任务发送一条带有新检查点ID的消息, 通过这种方式来启动检查点(比如有两个source现在source-1处理到2了, source-2处理到3了, 这个时候sour原创 2021-07-14 22:40:01 · 361 阅读 · 1 评论 -
Flink中的状态
一, 什么是Flink的状态 State每个算子在运行的过程当中会维护自己的某些临时数据, 比如获取流中的最小值, 肯定是需要维护当前的流到哪个数据了, 以及目前最小的值是什么, 方便比与下一个数据进行比较, 而这些临时数据是放在内存中的, 可以理解状态就是算子维护的本地变量, 而且状态始终与特定算子相关联二, Flink状态的类型1,Operator State算子状态的作用范围限定为算子任务算子状态数据结构列表状态(List state): 将状态表示为一组数据的...原创 2021-07-06 23:01:08 · 1021 阅读 · 1 评论 -
Flink状态后端
MemoryStateBackend内存级的状态后端, 状态保存在TaskManager的JVM堆上, 而将checkpoint存储在JobManager的内存中特点: 快速, 但是不稳定, 节点挂了就没了, 受内存大小限制, 一般用于本地和测试环境测试FsStateBackend将checkpoint存到远程的持久化文件系统(FileSystem)上, 而对于本地状态, 跟MemoryStateBackend一样, 也会存在TaskManager的JVM堆上同时拥有内存级的本地访问速度原创 2021-07-12 21:54:59 · 165 阅读 · 0 评论 -
Flink中WaterMark的传递
一般情况下, Watermark 是 source task 产生,不是source task也是靠近source task的map或reduce等算子产生的, 然后通过keyby 分组后触发窗口计算。注意keyby只是一个分配的过程而不是一个算子, 只有开窗之后的窗口方法才是真正的计算先放上结论, 然后再结合下面图示理解① Watermark 要单调递增。② Watermark在keyby之后的window操作之后取最小值向后传递。作者:熊本极客链接:https://www.jians..原创 2021-07-07 23:01:31 · 1507 阅读 · 7 评论 -
Flink滚动窗口起始偏移量如何确定
怎样知道FLink设置的滚动时间窗口起始的第一个时间是从哪里开始计算呢比如下图timeWindow是15秒, 但是是从哪个15秒呢往下看, timeWindow方法如下由于我设置的是EventTime时间语义,所以看TumblingEventTimeWindows上面的是TumblingEventTimeWindows中 分配窗口的方法, 真相就在这出发 看到start变量没有进入 getWindowStartWithOffset 方法得知运算 初始值的算法...原创 2021-07-05 23:15:50 · 549 阅读 · 2 评论 -
ES 搜索高亮
Elasticsearch默认会用<em></em>标签标记关键字, 其实我们可以自定义标签自定义搜索高亮自定义strong标签GET books/_search{ "query": { "match": { "title": "javascript" } }, "highlight": { "fields": { "title": { "pre_tags": ["<strong>原创 2021-07-02 10:38:52 · 519 阅读 · 0 评论 -
ES 特殊查询
script query脚本查询GET books/_search{ "query": { "bool": { "must": [ { "script": { "script": "doc['price'].value>80" } } ] } }}查询含义: 查找字段price值大于80的文档查询结果:...原创 2021-07-02 10:02:53 · 173 阅读 · 0 评论 -
Flink WaterMark的原理和特点
watermark: 中文翻译为水位线可以理解为, 当达到这个水位线就要关闭窗口了, 关闭什么窗口呢?这里要引出与watermark搭配使用的 EventTime Window了, 这个事件时间窗口比如现在有一个Flink Stream 流如图, 我们正常不使用water mark时, 使用event time控制的话, 如果窗口为5秒(左闭右开小于五秒的数据放入一个桶), 那么数据按照顺序正常来还好, 如果数据是乱序, 就像图中, 1秒的数据 4秒的数据, 后面就是5秒...原创 2021-06-30 22:44:29 · 301 阅读 · 2 评论 -
ES 位置查询之geo_point
创建语句PUT geo{ "mappings": { "properties": { "name":{ "type": "keyword" }, "location":{ "type": "geo_point" } } }}其中 location字段的分词器类型为 geo_point, 这样就可以对地理相关的的数据进行操作, geo是地理的geographic单词缩写, 当为这个类型时数据格原创 2021-06-30 19:35:30 · 3445 阅读 · 0 评论 -
ES 词项搜索
terms queryterms查询是term查询的升级,可以用来查询文档中包含多个词的文档GET books/_search{ "query": { "terms": { "title": [ "java","python" ] } }}range queryrange查询用于匹配在某一范围内的数值型、日期类型或者字符串型字段的文档GET books/_search{ "query": { "ran.原创 2021-06-30 16:20:00 · 222 阅读 · 0 评论 -
Flink时间语义
Event Time: 事件创建的时间, 每一条数据在它发生地产生的时间Ingestion(摄入) Time: 数据进入Flink(data source)的时间Processing Time: 执行操作算子的本地系统时间, 与机器下相关, 这个才是window算子执行的时间...原创 2021-06-29 22:15:58 · 612 阅读 · 1 评论 -
ES Term-Query使用
词项搜索term查询用来查找指定字段中包含给定单词的文档,term查询不被解析,只有查询词和文档中的词精确匹配才会被搜索到,应用场景为查询人名、地名等需要精准配备的需求。GET books/_search{ "query": { "term": { "title": { "value": "思想" } } }}返回部分字段GET books/_search{ "_source": ["title","price"], "原创 2021-06-29 10:32:44 · 2211 阅读 · 0 评论 -
windows运行FLINK出现 FLINK_CONF_DIR问题
运行Flink报错:The configuration directory was not specified. Please specify the directory containing the configuration file through the ‘FLINK_CONF_DIR’ environment variable.使用的FLink 1.10以上版本解决办法:1, 临时解决办法, 在FLink的bin目录下运行 flink.bat命令2,永久解决办法, 修改flink.ba原创 2021-06-21 12:14:56 · 1056 阅读 · 2 评论 -
Lucene查询结果高亮
代码package com.baifan.lucene.index;import com.baifan.lucene.ik.IKAnalyzer6x;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.document.Document;import org.apache.lucene.index.DirectoryRe原创 2021-06-17 09:52:22 · 235 阅读 · 0 评论 -
Flink三个重要问题
一, Flink怎样实现并行计算每个TaskManager是一个JVM进程(也就是一台机器), 然后配置文件flink-conf.yaml中可以设置每个机器的taskmanager.numberOfTaskSlots: 4, 推荐是配置为机器的CPU核心数, slot是静态设置的资源(内存, IO)分配为多少份, 实际并行运行的时候是一个task是一个jvm线程, 然后他们之间可能在相同的slot上运行, 也可能在不同的slot运行, 然后不同task之间还会跨taskmanager进行交互, 比如说ke原创 2021-06-16 22:38:15 · 349 阅读 · 0 评论 -
Lucene布尔查询
//省略相同代码Query query1 = new TermQuery(new Term("title", "美国"));Query query2 = new TermQuery(new Term("content", "日本"));BooleanClause bc1 = new BooleanClause(query1, Occur.MUST);BooleanClause bc2 = new BooleanClause(query2, Occur.MUST_NOT);BooleanQuery原创 2021-06-16 09:41:37 · 238 阅读 · 0 评论 -
Lucene词项(term)查询
package com.baifan.lucene.index;import com.baifan.lucene.ik.IKAnalyzer6x;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexReader;原创 2021-06-15 10:06:34 · 353 阅读 · 1 评论 -
Lucene多域查询
多域查询也就是相当于多个字段查询package com.baifan.lucene.index;import com.baifan.lucene.ik.IKAnalyzer6x;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.i原创 2021-06-15 09:56:15 · 302 阅读 · 1 评论 -
Yarn运行原理咕泡版
Yarn的产生在Hadoop1.x版本中, 存在的最大的问题就是资源管理问题,就是资源管理问题!!随着技术的发展, 人们已经不再满足Hadoop集群中只使用mapreduce一个计算框架(例如: spark mapreduce Mars 等一列计算框架)人们更希望有一套合理的管理机制, 来控制整个集群的资源管理,于是yarn诞生了Yarn的组成1, ResourceManager 是全局资源管理器***(RM)***2, NodeManager 是节点资源任务管理器***(NM)***我们可原创 2021-06-14 22:52:06 · 170 阅读 · 2 评论 -
Flink并行度设置优先级
1, 从socket流中读取数据并行度只能是 1//从socket文本流读取数据DataStream<String> inputDataStream = env.socketTextStream(host, port);2, 特定的算子设定了并行度最优先//基于数据流进行转换计算DataStream<Tuple2<String, Integer>> resultStream = inputDataStream.flatMap(new MyFlatMapper(原创 2021-06-14 14:42:38 · 1188 阅读 · 0 评论