自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 收藏
  • 关注

原创 [flink/scala] 在 maven 项目中设置 flink 内存

在 maven 项目中修改 flink 的 taskmanager 和 jobmanager 的总内存大小的方法

2022-10-11 11:13:05 588 1

原创 [Jupyterhub] 两种设置免密登录的方式

免密访问其它用户的 jupyter 文件

2022-07-08 17:05:15 2813

原创 [Scala/Flink] 写入 Redis

1. 依赖&版本<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <maven.compiler.compilerVersion>8</maven.compiler.compilerVersion> <flink.vers

2022-05-17 11:27:01 738

原创 [Scala/Flink] 读写 Kafka

Scala+Flink 读写 KafkaScala-2.12.7 / Flink-1.12.1 / Kafka-2.4.1

2022-05-17 10:01:02 1115

原创 [Scala/Flink] 基于Docker搭建Flink+Kafka+Redis流数据处理系统

基于Docker搭建Flink+Kafka+Redis流数据处理系统

2022-05-07 14:03:01 2095

原创 [Maven] 通过 pom 文件配置多环境切换

1. 创建配置文件在 src/main/resources 目录下新建 env.properties 作为配置文件, 并写入host=@host@2. 加入 profiles 标签在 pom.xml 中加入以下内容<profiles> <profile> <id>test</id> <activation> <!--指定该环境为默认配置--> &l

2022-05-05 15:37:18 2022

原创 [Java] 常用日期获取及转换操作

常用日期获取及常见日期格式间的转换操作

2022-04-13 14:35:14 385

原创 [Kafka] 基于 docker-compose 快速安装及使用 Kafka

基于 docker-compose 快速安装及使用 Kafka

2022-04-10 14:30:34 2701

原创 [Kafka] 在 SpringBoot 项目中使用 Kafka

在 SpringBoot 项目中安装和使用 Kafka

2022-04-10 13:55:25 2154

原创 [Scala] 在 Jupyter 中安装 Scala 内核及其依赖包

1. 安装 Almond 和 Scala 内核安装参考官方文档, 下载安装时依赖的 coursier 容易失败, 可以通过下面的链接获取: https://pan.baidu.com/s/11FM9SQtfNMqRM2RX1-fGIQ (密码:tawa)使用命令 jupyter kernelspec list 能看到 Scala 内核表明安装成功2. 安装 Scala 依赖包通过 ivy 安装依赖包, 依赖包仓库地址为: https://repo1.maven.org/maven2/, 下面给出安

2022-03-30 14:13:18 2682

原创 [Linux] 生成 PEM 密钥对实现服务器的免密登录

问题背景为了保障服务器的安全, 最近公司的服务器改为使用密钥登录, vscode 已经设置的免密登录不受影响(设置参考这篇博客), 但是在设置 FinalShell 的密钥登录时遇到如下报错提示中已经给出解决方法, 下面记录一下每步的操作解决方法1. 在远程服务器生成 PEM 密钥对cd ~/.sshssh-keygen -m PEM -t rsa -C "注释"生成时的密码可以设置为空, "注释"的内容可以根据自己的需要进行修改, 为了不影响之前的密钥文件, 这里将密钥文件名称设为 id

2022-03-29 10:57:18 3498

原创 [Python] 正则匹配三种常见格式的日期

使用下面的代码可以匹配三种常见格式的日期: %Y%m%d, %Y-%m-%d, %Y/%m/%dimport re# date_str = '20220101'# date_str = '2022-01-01'date_str = '2022/01/01'date_reg_exp = re.compile('\d{4}[-/]?\d{2}[-/]?\d{2}')date_reg_exp.findall(date_str)...

2022-02-22 14:14:32 1799

原创 [Echarts] 异步请求和展示 tooltip 中的 formatter

echarts formatter 回调函数请求后端数据

2022-02-18 14:01:26 4262

原创 [MySQL] ERROR 1406 (22001): Data too long for column xxx

问题描述在向 MySQL 导入数据时遇到如题报错, 看样子应该是编码错误, 但修改数据库编码没用. 现有两个 MySQL 启动在不同的服务器, 使用 show variables like "%char%"查看数据库编码, 结果如下mysql1character_set_client utf8character_set_connection utf8character_set_database latin1character_set_filesystem

2021-11-26 15:21:20 388

原创 [Python] 基于 Flask + OnlyOffice 实现 Office 文件在线查看

1. 实现思路安装并启动 OnlyOffice构建一个文档展示页面通过 Flask 提供的服务访问文档页面通过 Falsk 向文档页面传入要展示的文件信息在文档页面里发送请求获得要展示的文件内容(由 Flask 返回)文档内容通过 OnlyOffice 展示在文档页面中2. 启动 OnlyOffice官方文档: https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx?_ga=2.

2021-07-17 15:41:39 2693

原创 [Python/Vue] 基于 Flask + Vue 实现前端文件上传及下载

目录1. 文件上传1.1 前端代码1.2 后端代码2. 文件下载2.1 前端代码2.2 后端代码1. 文件上传说明使用 ElementUI 的 el-upload 组件发送的文件上传请求中包含请求头和请求参数后端接收到文件并存储到指定路径上传成功后前端给出提示信息1.1 前端代码<template> <div class="app-container"> <el-upload class="upload-demo" :sh

2021-07-17 15:13:22 5734 3

原创 [ElementUI] DatePicker 报错 TypeError: dateStr.match is not a function

报错描述在使用 DatePicker 的取日期范围(type="daterange")时遇到如题的报错信息解决方法首先是不要设置 value-format 属性, 其次要保证传入的日期数组在的日期为Date类型报错分析如果设置 value-format 属性, 则日期在输入及输出 DatePicker 时, 会先做日期格式转换, 错误就是在转换日期格式时出现的, 这可能是个bug, 选取单个日期(type="date")时不会出现这个问题...

2021-07-03 10:55:48 8363 2

原创 [Vue] 使用 .sync 实现父子组件间数据的双向绑定

目录1. 子组件2 父组件刚写完这篇博客 [Vue] 父子组件间数据的双向绑定, 还没来得及在项目中使用就发现了一个更简单的实现方式, 本文继续以 ElementUI 的 DatePicker 组件为例, 就当是对上篇博客的补充吧主要改进的地方有两个:子组件传递数据时使用 update:myPropName 的模式触发事件父组件接收数据时使用 sync 修饰符这样做的好处是无需通过在事件上绑定方法来为父组件变量重新赋值, 使代码更简洁1. 子组件<template> &lt

2021-05-31 16:29:40 339

原创 [Vue/ElementUI] DatePicker 作为子组件与父组件实现数据双向绑定

本文主要是记录一下 ElementUI 的 DatePicker 作为子组件与父组件实现数据双向绑定的代码, 具体的代码解析可以参考 [Vue] 父子组件间数据的双向绑定子组件代码<template> <div> <el-date-picker v-model="select_date" align="right" type="date" placeholder="选择日期" @change="chan

2021-05-31 13:40:55 945

原创 [Vue] 父子组件间数据的双向绑定

目录1. 创建子组件1.1 设置 template1.2 设置 model1.3 设置 props1.4 设置 data1.5 设置 methods2. 创建父组件2.1 引入并注册子组件2.2 设置 tempate2.3 设置 data2.4 设置 methods3. 完整代码3.1 子组件3.2 父组件本文以 ElementUI 的 DatePicker 组件为例, 详细记录实现父子组件间数据的双向绑定的完整过程1. 创建子组件1.1 设置 template<template>

2021-05-31 13:34:21 365 1

原创 [ClickHouse] 管理用户权限的两种方案

目录1. 序言2. 通过配置文件管理用户权限3. 通过 SQL 驱动方式管理用户权限3.1 开启SQL驱动方式的访问权限和账户管理3.1 创建用户3.2 创建角色3.3 为用户或角色赋予权限3.4 从用户撤销权限1. 序言一般情况下, 可以通过配置文件/etc/clickhouse-server/users.xml来设置用户权限, 比如设置用户的资源占用/参数取值/对某个数据库的读写权限等. 但是对于一些更精细的权限管理, 使用配置文件很难实现或者实现起来特别麻烦, 比如考虑这样一个应用场景: 有两个数

2021-05-27 15:58:47 2688 2

原创 [vue+vant] 使用 Swiper 组件轮播本地图片

目录1. 序言2. 在 assets 目录上传图片3. 在 Swiper 组件中设置图片列表4. 在页面中引用 Swiper 组件1. 序言Swiper 组件中的官方示例中, 轮播的图片是以 URL 链接的方式导入组件, 如果把示例中的 URL 链接直接换成本地图片路径, 会发现图片无法正常显示, 下面记录一下轮播本地图片的方法.2. 在 assets 目录上传图片将需要轮播的图片上传到 assets 目录下, 假设有 p1.png, p2.png, p3.png 三张图片3. 在 Swiper

2021-05-14 11:25:47 3171

原创 [Vue+Vant] 多页面共用底部导航栏 Tabbar

目录1. 序言2. 在 views 目录中创建页面文件3. 在 router 中配置路由4. 在 components 目录中创建组件4. 在 App.vue 中引用 Tabbar 组件1. 序言移动端 app 的底部一般有3到5个底部按钮, 每个按钮对应一个页面, 对于此种情况最直观的处理方法是在每个页面中引用底部按钮组件, 但那样会引入很多冗余代码, 也不方便代码的维护. 为了更好地处理多页面共有组件, 可以将组件设置为共用组件, 本文将以底部导航栏 Tabbar 为例记录下详细的设置过程.由于需

2021-05-11 14:49:07 7181 5

原创 [Vue+Vant] 使用 Vant 组件的详细操作流程

目录1. 序言2. 在 main.js 中注册组件3. 在 components 目录中创建组件4. 在 App.vue 中引用组件1. 序言首先创建一个基于 Vue 和 Vant 的项目, 项目的创建和配置可以参考 [Vue+Vant] 使用脚手架创建和配置项目, Vant 组件的详细参数和用法参考 Vant 官方文档 , 下面以组件 Tabbar 为例说明组件的使用流程2. 在 main.js 中注册组件在 main.js 中注册组件属于全局注册import { createApp } fro

2021-05-11 10:10:23 1669

原创 [Vue+Vant] 使用脚手架创建和配置项目

目录1. 安装 nodejs/npm2. 安装 vue-cli3. 安装 vant4. 安装 router5. 启动服务1. 安装 nodejs/npm下载 & 安装curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -sudo yum -y install nodejs替换 npm 源npm get registry # 查看npm config set registry http://registry.np

2021-05-09 16:24:31 649

原创 [GitHub] Failed connect to github.com:443; Connection timed out 的三种解决方案

对于 GitHub 连接超时的问题, 网上常见的解决方案有两个, 一个是修改 DNS, 另一个是将 GitHub 项目导入 Gitee, 然后通过 Gitee 管理代码. 第一个方案在某些时期或者某些场景中也许有用, 但在当前这个时间点不能解决问题, 第二种方案是可行的, 不过设置要复杂一点, Git 的使用习惯也要做一些改变, 除此之外还有一个关键问题, 从官网的说明来看, 项目从 Gitee 到 GitHub 的同步好像不能自动完成, 也就是说代码提交到 Gitee 之后, 还需要去 Gitee 上面手

2021-03-12 17:05:57 23885 2

原创 [Centos] 设置服务器间互相免密登录

最近遇到一个比较奇葩的需求, 这个需求是这样的: 服务器A要远程执行服务器B上的一个任务, 而服务器B上的这个任务是向服务器A发送一个文件. 如果不想每次执行任务都输入两次密码的话, 就需要在这两台服务器间设置互相免密登录, 这个需求的实现方法放在下篇博客里写, 这里先写一下怎么设置服务器间互相免密登录.一. 设置 A 到 B 免密登录1. 在服务器 A 上生成 sshkeyssh-keygen -t rsa -C "user1@ip1" 这里的 "user1@ip1" 只是生成的 sshkey

2021-03-12 11:42:27 483

原创 [Vue] 解决 v-model 在 layui-form 中双向绑定失效的问题

今天在使用 layui-form 时遇到一个坑, 就是使用 v-model 无法与 layui-form 中的下拉框内容实现双向绑定, 出现这个问题的原因不太清楚, 应该是两个框架之间在某些地方产生的冲突, 下面利用两个框架各自的特性来变相地实现双向绑定.1. layui-form 向 Vue 绑定想要实现的效果是当 layui-form 下拉框中的内容变动时, Vue 中与之绑定的变量同步变动, layui-form 的代码如下<form class="layui-form" action="

2021-03-06 22:49:31 2088

原创 [ClickHouse] 将 mutation 操作由异步非阻塞改为阻塞

ClickHouse 中的 mutation 操作(update/delete) 默认是异步执行的, 这会导致一种情况的出现: 删除的数据在一段时间内还能查询到. 在非事务性的使用场景中这个设置可以加快处理速度, 并且不会影响后来数据的添加, 但在要求事务性的使用场景中(比如新增数据依赖历史数据), 这个设置会导致后加的数据出现错误.为了解决这个问题, 尝试了下面两种方法通过查询 system.mutations 表的 is_done 字段来判断一个操作是否已完成, 在 is_done = 1 之前人

2021-03-06 14:33:40 2509

原创 [ClickHouse] 使用 Bifrost 全量(实时)同步 MySQL 数据

本文记录一个从 MySQL 同步数据到 ClickHouse 的方案. 在 GitHub 上以 MySQL 和 ClickHouse 为关键字搜索到几个相关的开源项目, 首先试了下 synch , 结果在安装依赖包 mysqlclient 时一直失败, 然后改为使用 Bifrost 这个项目.Bifrost 目前有接近 700 个 star, 从这两天的使用来看, Bifrost 的功能比较齐全, 基本能满足我们的使用场景, 比如全量同步/增量同步/表的批量操作等, 而且经过测试发现速度还是挺快的, 要说

2021-03-06 13:52:47 3461 4

原创 [GIT] insufficient permission for adding an object to repository database

今天提交代码时遇到了如题的错误, 不知道是什么原因导致的, 解决方法是修改 .git 目录中文件的权限, 具体操作如下:# 进入项目根目录cd repo# 进入隐藏的 .git 目录cd .git# 修改 .git 目录下所有文件的权限sudo chmod -R g+ws *# 修改文件的分组, 这个mygroup跟项目文件同组sudo chgrp -R mygroup *# 这一步应该是修改 git 配置的git config core.sharedRepository true

2021-01-14 22:34:04 257

原创 [Python] 使用import_module动态导入模块和方法

假设有两个模块 module_a 和 module_b, 两个模块各包含一些方法, 然后现在有一个需求: 尝试从 module_a 中导入 func_1, 若 module_a 中不包含 func_1, 则从 module_b 导入 func_1, 若两个模块均不包含 func_1 抛出错误.这个问题涉及到方法的动态导入, 使用类中的函数重载可以很容易解决这个问题, 在不使用类的情况下, 可以考虑使用 importlib 模块的 import_module 这个方法, 其实我们在 python 文件的开头

2020-12-31 14:14:27 632

原创 [ClickHouse] 使用 Pandas 读写 ClickHouse

由于 Pandas 本身不支持 ClickHouse 相关操作, 所以自己封装了一些读写操作一. Pandas 读取 ClickHouseGitHub 上面有几个 Python 操作 ClickHouse 的开源项目, 不过收藏数量都不多(几百个 star), 经过试用, 发现 clickhouse_driver 这个项目相对靠谱一点, 先使用 pip 安装, 读取数据的代码如下:from clickhouse_driver import Clientimport pandas as pdimpo

2020-11-22 15:50:02 9268 5

原创 [OCR/Python] 图片文字提取 (百度vs讯飞)

本文主要介绍百度和讯飞的OCR调用方法, 从结果来看百度的效果要比讯飞好很多, 不过讯飞给的免费流量比百度多很多.一. 百度OCR大致流程:进入百度智能云官网, 注册并登录在产品服务中选择"文字识别"在"应用列表"中创建应用, 并记录下 API Key 和 Secret Key将 API Key 和 Secret Key, 已经要提取文字的图片传入下面的函数即可获得提取出的文字import sysimport jsonimport base64from urllib.reques

2020-11-15 20:45:23 2870

原创 [Centos] Boost.Python 的安装及使用

编译环境Python: 3.6.8gcc: 4.8.5Boost: 1.661. 安装 gcc 和 python36-devel安装 gccsudo yum install gcc安装 python36-develsudo yum -y install python36-devel安装这个包的作用是避免出现找不到python的部分头文件的错误, 如下图2. 下载编译 Boost下载&解压# 下载wget https://dl.bintray.com/b

2020-11-05 22:43:35 989

原创 [Centos] pyconfig.h:没有那个文件或目录

报错原因出现这个错误的原因是 /usr/include/python3.6m 目录下缺失文件 pyconfig.h 导致的, 报错时该目录下只有文件 pyconfig-64.h解决方法解决方法是安装模块 python36-develsudo yum -y install python36-devel安装完成之后会发现目录 /usr/include/python3.6m/ 下多了很多头文件, 其中就包括文件 pyconfig.h...

2020-11-04 15:37:42 3502

原创 [Centos/Jupyterhub] 多用户远程登录 Jupyter 详细配置

目录1. 安装环境配置1.1 安装 npm/nodejs1.2 安装 jupyterhub1.3 安装 configurable-http-proxy2. Jupyterhub配置2.1 用户登录设置2.2 URL 设置2.3 启动/关闭的初始设置2.4 关闭空闲servers3. 常见问题3.1 无法多用户同时登录3.2 无法找到系统环境变量1. 安装环境配置1.1 安装 npm/nodejs方法一:yum安装sudo yum install npm nodejs方法二:使用安装包安装

2020-10-01 18:50:08 8583 12

原创 [云服务/Centos] 使用frp+阿里云做反向代理

目录一. 硬件信息二. 外网服务器设置2.1 下载 frp2.2 配置 frp2.3 启动 frp三. 内网服务器设置3.1 下载 frp3.2 配置 frp3.3 启动 frp3.4 测试连接四. 路由器配置公司内网服务器上有一个web服务, 想要从外网访问该服务, 但问题是内网服务器没有公网 IP, 无法直接从外网访问, 所以考虑使用方向代理. 试用了一天用autossh搭建的反向代理, 结果发现连接经常中断, 于是又在路由器上用frp搭了一个, 目前看来效果不错. 下面分别记录一下在服务器和路由器上

2020-09-20 10:58:17 353

原创 [云服务/Centos] 使用autossh+阿里云做反向代理

目录一. 外网设置1.1 配置ssh1.2 配置防火墙二. 内网设置2.1 设置防火墙2.2 设置免密登录2.3 端口映射2.4 设置开机自启一. 外网设置1.1 配置ssh打开/etc/ssh/sshd_config, 将GatewayPorts设为yes执行sudo service sshd restart重启sshd服务1.2 配置防火墙登录阿里云服务器的控制台, 将要映射的外网端口(如8080)加入安全组二. 内网设置2.1 设置防火墙首先开放要映射的外网端口# 检查端口是否

2020-09-18 20:36:04 353

原创 [Oracle] 修改字符串最大长度解决 ORA-12899: value too large for column

问题分析出现这个问题的原因是, 某列中包含的数据长度超出了建表时对该列的限制, 一般情况下修改出错列的长度设置, 然后重新建表即可. 不过有时问题会更复杂一些, 存储字符串常用的 VARCHAR2 类型的默认长度上限是 4000 bytes, 如果要存储的数据中包含超过 4000 bytes 的数据该如何解决?问题解决遇到 VARCHAR2 类型长度不够用的情况时, 可以考虑两种方案:改用其它数据类型如改为 LONG 或者 CLOB, 这两种数据类型可以存储 GB 级别的字符串, 但也有各自的局

2020-09-08 17:46:48 3087

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除