尝试在云服务器上部署 Flink 并提交计算任务

网站相似度计算:裸机 & Kubernetes 部署实战 背景与目标 任务:基于 Flink Table API,用 SQL 计算网站间的相似度(Jaccard Coefficient)。 数据:referrer-referree 格式的 CSV,数千到数万条记录。 目标: 跑通 Flink Job,并且能够在外部访问 flink web ui 在K8S集群中部署flink,能够使用多台机器共同计算较大的数据集 一些常用命令备忘: ## 将文本文件转换为csv # 1. 添加表头 echo "referrer,referree" > medium_relation.csv # 2. 替换空格为逗号并追加到新文件 sed 's/ /,/g' medium_relation >> medium_relation.csv ## 压缩和解压缩 tar -czvf xxx tar -xzvf xxx.tar.gz -C ~/ # -c 创建一个新的 tar 文件 # -x 解压文件 # -z 使用gzip压缩 后缀为.tar.gz # -j 使用bzip2压缩 后缀为.tar.bz2 # -v 显示详细的压缩过程 # -f 指定 tar 文件的名称 # -C 指定解压缩包的目录 ## 下载文件 curl -L -o helm-v3....

May 15, 2025 · 5 min · 885 words · sirius1y

BLOG迁移之旅

迁移的开始 在随着华为云服务器到期邮件和电话的轰炸之下,我终于开始行动起来要去迁移我的博客了。太久没有写博客,已经忘记了距离上一篇博文一经过了很久很久了,想不起来时间,只记得是在做 aorb 项目的时候写的。 也忘记了之前对博客进行了一系列 CI 的优化,现在已经能够实现提交博客内容到 git repo 上,会自动拉起 github action 进行检查和部署的操作。 不幸 然额呢,隐约记得我之前在部署的时候在 workflow 里面编写了一些机密 (secrets) 用于访问服务器但是又不公开,现在大体忘却了他们是干什么的了。服务器过了十二点就冻结了,现在晚上十点,明天下午有一个面试,可能面试官会看我的博客(虽然我大概知道他们不会这么做),但是还想在这之前把他修好。冰冷的房间,饥饿的肚子,颤抖的双手,宕机的脑袋…尝试了无论怎么修改 secrets 中的 private key,依然显示我的 SSH 验证不通过。似乎我隐约记得上次我也这么干过,在这里也卡住了。 … 还尝试了不用 github action,直接把它部署到云服务器上的方案,虽然最后也没成功(因为我后来发现这台新电脑上的博客拉下来之后本地都没有跑对页面)。 但是复习到了以下内容: 存放我们 public/ 代码的地方在 /var/www/blog/ 下,我是直接把 public/ 下的内容拿过的,没有要 public/ 这一层。这里要与 nginx 的配置相对应 nginx 的配置文件在:/etc/nginx/sites-availble/sirius1y.top,日志文件在 /var/log/nginx/error.log ,分析网站为什么返回403、404很常用的 检查 nginx 配置文件是否正确的命令:sudo nginx -t,重新加载 nginx 配置文件的命令 sudo systemctl reload nginx /var/www/下的文件所有者和组应该是 www-data,并且对目录和文件的权限有要求的 … 第二天晚上,在清醒的大脑之下,在排除了用户的权限和文件夹、文件的权限正确设置之后,google 了一下,发现网上有两种说法:https://github.com/openssl/openssl/issues/20054 。大概是: 添加一段 before_script 的代码 私钥后添加 \n 然后我尝试之后,由于我设置的用户没有 sudo 权限,所以在 before_scirot 中的 chmod 命令无法执行。然后就试了第二种方法,还是不行。然后我索性在私钥之后按下回车。然后,It works!...

December 16, 2024 · 1 min · 157 words · sirius1y

在docker中安装redis

常规步骤:安装vim openssh,生成密钥 sudo apt-get update sudo apt-get install vim openssh-server cd .ssh ssh-keygen -t rsa -C "sirius1y@outlook.com" cat id_rsa.pub > authorized_keys ssh localhost exit rm known_hosts 安装docker 设置 Docker 的apt存储库 官网教程:https://docs.docker.com/desktop/install/ubuntu/ # Add Docker's official GPG key: sudo apt-get update # 安装证书、下载工具、证书验证工具 sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 证书对所有人都可读 sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker....

January 4, 2024 · 3 min · 583 words · sirius1y

把blog部署到华为云nginx

起因 本来博客是一直使用github pages进行部署的,但是国内的github.io太慢了,并且刚好在年末促销买了一台一年的华为云服务器,就想试一试。 在云服务器上安装nginx sudo apt-get install nginx nginx的常用命令 # 启动 Nginx 服务 sudo systemctl start nginx # 停止 Nginx 服务 sudo systemctl stop nginx # 重新启动 Nginx 服务(用于配置更改后使更改生效) sudo systemctl restart nginx # 重新加载 Nginx 配置文件(不中断服务) sudo systemctl reload nginx # 检查 Nginx 服务的状态 sudo systemctl status nginx # 测试配置文件的正确性(在实际重新加载或重启 Nginx 之前) sudo nginx -t # 显示 Nginx 的版本和配置选项 nginx -v # 设置 Nginx 开机自动启动 sudo systemctl enable nginx # 禁用 Nginx 开机自动启动 sudo systemctl disable nginx # 查看 Nginx 的错误日志(路径可能根据安装和配置有所不同) sudo tail -f /var/log/nginx/error....

December 16, 2023 · 3 min · 464 words · sirius1y

Docker和K8S部署

生成ssh密钥并实现免密登录 docker 安装完成docker后进行检验: 安装k8s 验证kubeadm版本为1.18 在腾讯云中制作为镜像 更改主机名字hostname和hosts 重启之后关闭内存交换 初始化主结点 sudo kubeadm init --apiserver-advertise-address=172.19.16.2 --image-repository=registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config slave加入 sudo kubeadm join 172.19.16.2:6443 --token rthfcd.xkdz1bma0zr0pcf0 \ --discovery-token-ca-cert-hash sha256:7a255bd0f1a8a7d87bbc9f443bb901426e17f94057fe1a5a7ce4a246ddb2c749 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl get pods --all-namespaces kubectl get nodes 创建部署 查看状态 访问前端网站 放开端口30940之后就可以访问前端页面了 可以通过两个公网IP都能访问得到该网站。 尝试删除其中一个pod kubectl delete pod frontend-769fbdbdcc-5bkvz 在尝试删除一个front pod之后,可以看到kubernetes系统自动为我们新建了一个frontend的pod pod扩容 kubectl scale deployment frontend --replicas=5

December 14, 2023 · 1 min · 69 words · sirius1y