记一次使用coGroup产生的问题
记一次使用coGroup产生的问题(Caused by: org.apache.flink.util.TraversableOnceException: The Iterable can be iterated over only once. Only the first call to 'iterator()' will succeed)
记录 Flink 结合 Docker 部署配置
首先安装flink,这里以1.13.1举例(docker安装的话,jobmanager和taskmanager需要分开部署)flink-docker-github-repository (这个参数flink文档中没找到)关于query.server.port: 6125不用去管,这个不填也会默认自动生成: yml中的内容不说了, 下面贴几张关于 Flink 生产配置最佳实践的图,钉钉公开课趣头条实时平台负责人分享:https://www.bilibili.com/video/BV1iE411r7S6 Flink在yarn上运行,每个TaskManager的slot个数怎么设置?经验公式:slot个数tm个数=并行度并行度=kafka的分区个数(10分区)slot的个数要小于yarn设置的单个container最大可以申请的cpu核数(5个 8-36个)。那么就是 5个slot2个tm=并行度=kafka分区数多个小集群好还是一个大集群好?1.小集群的话任务分布在不同的集群,任务之间的影响小。不会因为一个任务占用...
记录一次 Flink 的数据转换解决方式
12345678910111213/** * { * 1:[2,3,4], * 2:[3,4,5] * } * ↓ * { * 2:[1], * 3:[1,2], * 4:[1,2], * 5:[2] * } */ flink由上转成下面的数据格式 打散 1234562:1,3:1,4:1,3:2,4:2,5:2 2.再根据key分组并且reduce 12345678910111213141516171819202122232425262728DataSet<Tuple2<String, String>> test = ...test.flatMap(new FlatMapFunction<Tuple2<String, String>, Tuple2<String, String>>() { @Override public void flatMap(Tuple2<String, String> ...
记录开发中遇到关于 Flink 的一些错误(长期)
2022-01-20 09:25:58,308 WARN org.apache.flink.client.deployment.application.DetachedApplicationRunner [] - Could not execute application:org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Job was submitted in detached mode. Results of job execution, such as accumulators, runtime, etc. are not available. Please make sure your program doesn't call an eager execution function [collect, print, printToErr, count] 这是因为当 flink 作业是以 detached 模式提交的时候,...
git命令(长期)
git回滚上一个版本/回滚到上个版本123456789linux:git reset --hard HEAD^windows:git reset --hard HEAD"^"git reset --hard HEAD~<n>然后执行git push --force <origin master(可选)> (强制推送分支) 回滚到指定版本1234git reset --hard <hashid>然后执行git push --force <origin master(可选)> (强制推送分支) git commit之后,想撤销commit123git reset --soft HEAD^:撤销上一个commitgit reset --soft HEAD~2:撤销前两个commitgit commit --amend:修改注释 强制提交1git push -u origin 分支 -f git强制更新并覆盖本地修改123git reset --hard origin/develop //使用指定分支...
git问题处理
不小心使用 git 强制 push 推送了代码, 希望回退到 push 前的状态 如果不小心使用 git 强制 push 推送了代码,还可以回退到 push 前的状态。主要可以通过以下两种方式: 使用 git reflog 查找回退到 push 前的 commit git reflog 会记录最近的操作和 commit 记录,找到 push 前的提交点。 然后使用 git reset --hard <commit> 回退到那个提交点即可。 如果进行了多次 push,reflog 记录很乱,可以回退到某个知道的良好版本 例如回退到版本 v1.2: 1git reset --hard v1.2 然后使用 git push -f 强制推送来覆盖之前的错误提交。 当然最好的方式还是在推送前使用 git stash 暂存变更,或新建分支进行操作。 但强制 push 后的恢复还是可以的,主要是使用 git 提供的回退机制来撤销错误的提交。 git通过ssh认证拉取代码失败,需要手动输入密码: 解决方法 eval ssh-agent -s #启动ssh-agent...
Git 中 merge 和 rebase 的区别
Git 中 merge 和 rebase 的区别参考: https://developer.aliyun.com/article/652579 简介: $ git pull --rebase和$ git pull区别 是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。 $ git pull --rebase和$ git pull区别是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。更新本地仓库 merge 和 rebasemerge 是合并的意思,rebase是复位基底的意思。现在我们有这样的两个分支,test和master,提交如下: 123 D---E test /A---B---C---F master 在...
配置ssh key(一个或多个key)
配置一个SSH Key 生成ssh公私钥(默认就是2048字节, 邮箱也可以不加,邮箱是作为title存在, 所以可以配置个有标识性的名称之类的): ssh-keygen -t rsa -C "yourEmailAddr" -b 2048 如果ssh密码没有配置在默认路径, 需要按照如下步骤进行配置 启动ssh-agent:eval ssh-agent -s添加私钥到agent【ssh-add "私钥文件地址" 】 如:ssh-add "c:/Users/xxx/.ssh/id_rsa" 第二步提示:Could not open a connection to your authentication agent,执行ssh-agent bash 将公钥添加到远端库ssh管理处(github/gitee/gitlab) clone 代码:git clone git@xxx.git 配置多个SSH Key场景描述开发人员通常只会生成一个SSH Key,名字叫id_rsa,然后提交到多个不同的网站(如:GitH...
golang建立项目以及go-module和vendor的区别
$GOPATH默认位置 操作系统 默认路径示例 环境变量表示法 macOS /Users/用户名/go $HOME/go Linux /home/用户名/go $HOME/go Windows C:\Users\用户名\go %USERPROFILE%\go not a valid zip filegithub.com/shirou/gopsutil/process: zip: not a valid zip file 此类问题多是因为GOPROXY所导致。 使用https://mirrors.aliyun.com/goproxy/,direct的时候,在进行go build/go mod tidy等指令时就会出现此错误。 换成https://goproxy.cn,direct即可。 123456789101112131415161718192021$ mkdir go-example && cd go-example#GO111MODULE=on,使用go module,不使用GOPATH#GO111MODULE=off,使用GO...
pprof 调优学习
Go性能优化 测试代码: https://github.com/behappy-project/behappy-url-shortener Go语言项目中的性能优化主要有以下几个方面: CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory Profile(Heap Profile):报告程序的内存使用情况 Block Profiling:报告 goroutines 不在运行状态的情况,可以用来分析和查找死锁等性能瓶颈 Goroutine Profiling:报告 goroutines 的使用情况,有哪些 goroutine,它们的调用关系是怎样的 采集性能数据Go语言内置了获取程序的运行数据的工具,包括以下两个标准库: runtime/pprof:采集工具型应用运行数据进行分析 net/http/pprof:采集服务型应用运行时数据进行分析 pprof开启后,每隔一段时间(10ms)就会收集下当前的堆栈信息,获取各个函数占用的CPU以及内存资源;最后通过对这些采样数据进行分析,形成一个性能分析报告。...
