<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TreeCode的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/TreeCode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TreeCode]]></copyright><item><title><![CDATA[Flink 本地任务添加配置参数]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/139973562</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/139973562</guid><author>TreeCode</author><pubDate>Tue, 25 Jun 2024 23:49:41 +0800</pubDate><description><![CDATA[配置一个Configuration，然后通过StreamExecutionEnvironment.getExecutionEnvironment(configuration)传入。]]></description><category></category></item><item><title><![CDATA[Kafka根据时间戳消费数据并返回最近的十条]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/129170400</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/129170400</guid><author>TreeCode</author><pubDate>Wed, 22 Feb 2023 21:06:58 +0800</pubDate><description><![CDATA[根据时间戳消费kafka topic数据并返回最近十条。]]></description><category></category></item><item><title><![CDATA[Flink-Conneector-DTS原理解析-附带源码]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/123776235</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/123776235</guid><author>TreeCode</author><pubDate>Sun, 27 Mar 2022 17:59:58 +0800</pubDate><description><![CDATA[学习flink
DTS简介：数据传输服务DTS（Data Transmission Service）支持RDBMS、NoSQL、OLAP等数据源间的数据交互，集数据同步、迁移、订阅、集成、加工于一体，助您构建安全、可扩展、高可用的数据架构。
阿里云dts连接器官方使用说明
Flink-Conneector-DTS原理解析：
一、POM文件初识DTS
根据pom文件(略过provided/test)内容：可以看出，dts实际上是kafka-connector的一层外包装，即dts是将数据库的变更数据读到kaf]]></description><category></category></item><item><title><![CDATA[2022-ES学习与实践]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/123775285</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/123775285</guid><author>TreeCode</author><pubDate>Sun, 27 Mar 2022 16:23:00 +0800</pubDate><description><![CDATA[ES学习系列
核心场景：es5.x基于Flink-Connector-Elasticsearch实现EsSink
问题：添加权限控制，即x-pack相关实现。
解决：
ES5.x中，与es交互的client是TransportClient。
以下为flink-connector-es5源码：
    @Override
    public TransportClient createClient(Map&lt;String, String&gt; clientConfig) {
        Setti]]></description><category></category></item><item><title><![CDATA[2022规划]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/123774836</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/123774836</guid><author>TreeCode</author><pubDate>Sun, 27 Mar 2022 15:54:09 +0800</pubDate><description><![CDATA[需要完成的事情：

重新学习数据结构与算法、操作系统、计算机网络、计算机组成原理
学习大数据知识
阅读《Flink设计与实现》，深入了解Flink
深入了解ES
学习JVM相关知识
读完20本书
了解金融反欺诈业务，了解常见场景，常见指标


目前进度：
3.27：

重新学习数据结构与算法、操作系统、计算机网络、计算机组成原理  -------0%
学习大数据知识    -------0%
阅读《Flink设计与实现》，深入了解Flink   -------20%
深入了解ES
学习JVM相关知识    ]]></description><category></category></item><item><title><![CDATA[ElasticSearch关于CREATE写入模式问题记录]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/122497574</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/122497574</guid><author>TreeCode</author><pubDate>Fri, 14 Jan 2022 16:46:25 +0800</pubDate><description><![CDATA[ElasticSearch关于CREATE写入模式的问题记录
问题：
使用CREATE模式写入TPS骤降。数据特点：每条doc有4条相同的副本，即100条数据中，包含20组相同的数据。
产生问题原因：
Java代码中对所有Reponse中包含VersionConflictException异常的请求都进行了十次重试操作，无论请求是INDEX还是CREATE还是UPDATE。
然鹅，看了官方文档以及实操后发现CREATE写入方式恰恰是通过版本锁来保证相同id只有第一条能写入成功，所以除了第一条写入的doc，其]]></description><category></category></item><item><title><![CDATA[es x-pack monitor权限问题]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/121041724</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/121041724</guid><author>TreeCode</author><pubDate>Fri, 29 Oct 2021 20:31:32 +0800</pubDate><description><![CDATA[es monitor权限
对集群信息拥有只读的权限
问题
使用flink-es-connector连接es服务时，如果开启xpack功能，需要monitor权限，如果登录的用户没有这个权限，es会报权限错误。但是实际生产中，monitor权限和index写的权限基本上不会同时赋予一个生产角色。所以需要更改这部分的源码，绕过monitor权限。
解决
自己写一个ping方法，仅检查ip:port是否能连通就行，其他的信息没有monitor权限也查不了
拓展
关于xpack权限的详细描述可以查看这篇文章里面有关]]></description><category></category></item><item><title><![CDATA[ES写入四大模式：INDEX、CREATE、UPDATE、DOC_AS_UPSERT]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/120556179</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/120556179</guid><author>TreeCode</author><pubDate>Wed, 29 Sep 2021 21:02:09 +0800</pubDate><description><![CDATA[四大模式区别：
INDEX：
这个模式下，可以采用es内部生成id的方式，使得每次写入都是新增数据，因为每一次的id都不同
CREATE：
需要指定id，如果id已存在，则该条数据写入失败（被丢弃）
UPDATE：
需要指定id，如果id已存在，覆盖原有数据
UPDAET  --OPTION: DOC_AS_UPSERT
需要指定id，如果id已存在，以UPSERT的方式更新数据，而不是直接覆盖原有数据。
Java API
// index
requestIndexer.add(Requests.index]]></description><category></category></item><item><title><![CDATA[flink-connector-hbase 任务提交yarn出现类冲突bugfix]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/120185674</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/120185674</guid><author>TreeCode</author><pubDate>Wed, 08 Sep 2021 18:13:10 +0800</pubDate><description><![CDATA[第一种报错信息：
java.lang.RuntimeException: Cannot create connection to HBase.
	at org.apache.flink.connector.hbase.sink.HBaseSinkFunction.open(HBaseSinkFunction.java:99)
	at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java]]></description><category></category></item><item><title><![CDATA[FlinkSQL hbase连接器读取数据失败问题]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119748997</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119748997</guid><author>TreeCode</author><pubDate>Tue, 17 Aug 2021 09:48:34 +0800</pubDate><description><![CDATA[sql：
        tEnv.executeSql("DROP TABLE IF EXISTS ywb_source");
        tEnv.executeSql(
                "CREATE TABLE ywb_source (\n" +
                        " rowkey STRING,\n" +
                        " info1 ROW&lt;name STRING&gt;,\n" +
           ]]></description><category></category></item><item><title><![CDATA[定时任务quartz应用场景及问题解决]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119700452</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119700452</guid><author>TreeCode</author><pubDate>Sat, 14 Aug 2021 14:59:35 +0800</pubDate><description><![CDATA[应用场景：
客户每隔一段时间执行一次flinkssql的批任务，具体有四个场景：

一次性：选择一个时间点上线任务。
间隔周期：选择一个时间点，选定一个间隔小时数和一个间隔分钟数，在时间点首次触发，之后每隔间隔小时和间隔分钟执行一次，例如在2021-08-13 12:00:00上线，之后每隔1h30m执行一次。
时间周期：选择一个上线日期，一个上线时间点，例如上线日期选择2021-8-13，时间点选择12:00，则在2021-08-13的12:00首次执行，如果当前时间已经超过12:00则在次日的12:00]]></description><category></category></item><item><title><![CDATA[定时任务--quartz]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119351455</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119351455</guid><author>TreeCode</author><pubDate>Tue, 03 Aug 2021 16:04:19 +0800</pubDate><description><![CDATA[在定时任务中，cron表达式就显得非常重要：
cron表达式语义：


示例：


]]></description><category></category></item><item><title><![CDATA[fastjson转换大全]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119332981</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119332981</guid><author>TreeCode</author><pubDate>Mon, 02 Aug 2021 20:27:42 +0800</pubDate><description><![CDATA[字符串转json：
    /**
     * 将一个json字符串转换成json对象
     */
    public static JSONObject stringToJson(String json){
        JSONObject jsonObject = JSONObject.parseObject(json);
        return jsonObject;
    }

json转字符串：
    /**
     * 将一个json对象转换成json字符串
     *]]></description><category></category></item><item><title><![CDATA[NoMatchingTableFactoryException 异常解决]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119247819</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119247819</guid><author>TreeCode</author><pubDate>Fri, 30 Jul 2021 14:57:34 +0800</pubDate><description><![CDATA[报错信息：
Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException: Could not find a suitable table factory for 'org.apache.flink.table.factories.TableSinkFactory' in
the classpath.

Reason: Required context properties mismatch.

T]]></description><category></category></item><item><title><![CDATA[Hbase-shell DML增删改查操作]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/119217739</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/119217739</guid><author>TreeCode</author><pubDate>Thu, 29 Jul 2021 20:44:57 +0800</pubDate><description><![CDATA[增/改：put
增加和修改都使用关键字put来执行
规范：其中ns表示namespace，不填默认default，t表示table，r表示rowKey，c表示column，通常列用（列簇：列名）表示
  hbase&gt; put 'ns1:t1', 'r1', 'c1', 'value'
  hbase&gt; put 't1', 'r1', 'c1', 'value'
  hbase&gt; put 't1', 'r1', 'c1', 'value', ts1
  hbase&gt; put 't1',]]></description><category></category></item><item><title><![CDATA[es查询原理]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/118975700</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/118975700</guid><author>TreeCode</author><pubDate>Wed, 21 Jul 2021 20:37:48 +0800</pubDate><description><![CDATA[es查询原理：
步骤：

查询请求将被随机发送到一个es节点，该节点成为coordinating node，即协调节点
协调节点根据路由算法算出被查询doc所在的primary shard在哪个节点
协调节点使用轮询调度算法（Round-Robin Scheduling）将请求平均的分配到primary shard和replica shard上，目的是负载均衡
处理请求的节点将请求结果返回给协调节点
协调节点将结果返回给用户

本文参考
千锋教育 搜索引擎 ElasticSearch 视频教程全集（60P）]]></description><category></category></item><item><title><![CDATA[flink parallel 问题]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/118890929</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/118890929</guid><author>TreeCode</author><pubDate>Mon, 19 Jul 2021 11:51:55 +0800</pubDate><description><![CDATA[问题：
java.lang.IllegalArgumentException: Source: 21 is not a parallel source
org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Source: 21 is not a parallel source
        at org.apache.flink.client.program.Packaged]]></description><category></category></item><item><title><![CDATA[es漏采集数据解决办法]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/118737976</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/118737976</guid><author>TreeCode</author><pubDate>Wed, 14 Jul 2021 22:19:27 +0800</pubDate><description><![CDATA[背景：使用search_after采集
使用search_after采集需要指定一个或多个sort字段，我的初步方案是用一个时间戳字段

]]></description><category></category></item><item><title><![CDATA[Elasticsearch7 index语法]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/118613714</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/118613714</guid><author>TreeCode</author><pubDate>Fri, 09 Jul 2021 19:56:30 +0800</pubDate><description><![CDATA[Elasticsearch7 index语法
查询：
Get API | Elasticsearch Guide [7.13] | Elastic
GET index/_doc/_id
举例：
GET my-index-000001/_doc/0

插入和更新：
Update API | Elasticsearch Guide [7.13] | Elastic
_id存在就是更新，否则执行插入操作
PUT /index/_doc/_id
{
 "content":"it is cool !"
}
举例：
P]]></description><category></category></item><item><title><![CDATA[method ＜init＞()V not found解决]]></title><link>https://blog.youkuaiyun.com/TreeCode/article/details/118582198</link><guid>https://blog.youkuaiyun.com/TreeCode/article/details/118582198</guid><author>TreeCode</author><pubDate>Thu, 08 Jul 2021 21:06:04 +0800</pubDate><description><![CDATA[错误信息：
java.lang.NoSuchMethodError: org.apache.flink.streaming.connectors.elasticsearch7.ElasticsearchSink: method &lt;init&gt;()V not found

产生原因：
method ()V not found这种原因就是没找到正确的无参构造方法：

引用的类里面没有无参构造方法
引用的类出现冲突，有两个或以上的方法被捕获，但是系统无法判断用哪个

我的问题：
出于某种原因，我需要继承]]></description><category></category></item></channel></rss>