【elasticsearch】删除文档后如何释放存储大小
在使用 Elasticsearch 的过程中,经常会有删除某个索引历史数据的需求。比如存储飞机票信息的索引,通常只需要保留今日及今日之后的机票信息。为提升索引的效率和防止索引过大,同时尽量避免删除过程中影响线上环境稳定性,一般会选在业务低峰期的时候删除历史数据。 如以下 DSL 通过调用 _delete_by_query 方法删除 flight_v20220107 索引中日期(dt)在 20220729 ~ 20220802 之间的机票信息数据: 123456789101112131415POST /flight_v20220107/_delete_by_query?size=1000000&conflicts=proceed{ "query": { "bool": { "filter": { "range": { "dt": { ...
使用Gson将字符串转成JsonObject对象
概述当在 Java 项目中使用 Gson 库处理 JSON 时,我们可以将原始 JSON 字符串转换成更容易使用的类对象或数据结构。如将 JSON 字符串转换为 **Map<String, Object>** 对象,或者其他自定义类型的对象。但有些时候将 JSON 字符串转换为通用对象会更方便使用。 本文将演示如何使用 Gson 将 JSON 字符串转为 **JsonObject** 对象。 配置Maven依赖首先,在 pom.xml 文件中配置 gson 依赖项: 12345<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.9.1</version></dependency> gson 版本根据实际情况进行选择,建议使用最新版本(见 Maven Central )。 本文使用的是 2.9.1 版本(当前最新版本)。...
如何查看 Ambari 版本
如何查看 Ambari 版本? 打开 Ambari web 界面(默认端口:8080,如 http://ambari:8080/#/login ),成功登录之后,点击右上角用户名,在下拉框中点击 About,即可查看当前 Ambari 的版本。 具体如下图所示:
生产环境MySQL慢查询问题定位
本文根据实际项目经验,详细描述 MySQL 慢查询问题的发现及排查解决过程。在不影响读者阅读理解的前提下,对部分原始数据进行脱敏处理。 背景生产环境 MySQL 硬件配置:32C/64G/2T ESSD MySQL 版本:5.7.28 存储数据主要来源:主要是 Flink 实时计算的指标,少部分 Presto 准实时计算的指标,同时还有部分离线数仓模型也会每天同步一份至该 MySQL,用于加速客户端查询和提升并发查询能力。 发现问题之前收到运维的反馈,生产环境上用于存放 Flink 实时计算指标的 MySQL 有告警——每分钟慢查询数超过告警阈值,需及时跟进。当时通过 MySQL 监控面板查看到部分关键指标如下: 慢查询数 QPS TPS 网络流量(流入、流出) 表锁 慢日志明细部分 SQL(当时只拉取一小部分的慢 SQL,以下这些语句是 Flink SQL 写入 MySQL 的) 12345678910111213141516# Time: 2022-07-28T01:16:52.760142Z# User@Host: bigdata[bigdata] @ ...
maven编译打包时跳过测试代码
使用 Maven 构建 Java 项目时,通常有以下两种方式,可以在打包编译时跳过项目中的测试部分代码。 -Dmaven.test.skip=true在 Maven 的命令中,使用参数 -Dmaven.test.skip=true 来跳过单元测试代码: 1mvn clean package -Dmaven.test.skip=true -DskipTests在 Maven 的命令中,使用参数 -DskipTests 来跳过单元测试代码: 1mvn clean package -DskipTests 使用 -Dmaven.test.skip=true 还是 -DskipTests使用 -Dmaven.test.skip=true 参数进行打包编译时,Maven 会完全忽略单元测试代码,既不执行测试用例类,也不编译测试用例类。 而使用 -DskipTests 参数进行打包编译,Maven 会编译测试部分的类,生成相应的 class 文件到 target/test-classes 目录下,但不会执行测试类。 一般没有特殊要求的情况,测试类最好还是进行编译。因此推荐使用...
【Linux常用命令】查看主机名
主机名(英语:hostname),也称计算机名,是指分配给计算机的一串唯一标识码,用于在网络上唯一识别该计算机。通常由字母、数字组成,也可以包含一些特殊字符,如英文连字符(-)、英文句点(.)和下划线(_)。典型的主机名最多包含 253 个字符。 在大多数 Linux 发行版中,主机名通常存储在 /etc/hostname 文件中。默认情况下,通过 ssh 命令在终端成功连接到目标服务器时,也可以看到目标服务器的主机名。如以下命令可以看到目标服务器的主机名为 kafka-eagle。 123456$ ssh hadoop@10.10.18.8Last login: Fri May 13 20:50:56 2022 from 10.10.18.215Welcome to Alibaba Cloud Elastic Compute Service ![hadoop@kafka-eagle ~]$ 介绍完主机名的概念,接下来,我们一起了解在 Linux 操作系统中其他各种查找主机名的命令。 使用 hostname 命令hostname 命令用于显示 Linux 系统的 DNS...
Apache Flink 1.14.5 发版公告
本文翻译自 Apache Flink 社区博文——《Apache Flink 1.14.5 Release Announcement》。 Apache Flink 社区很荣幸地宣布 Flink 1.14 的另一个错误修复版本正式发布。 此版本包括 67 个错误和漏洞修复以及 Flink 1.14 的小改进。您可在下面找到所有错误修复和改进的列表(不包括对构建基础架构和构建稳定性的改进)。有关所有更改的完整列表,请参阅:JIRA 列表。 我们强烈建议所有用户升级到 Flink 1.14.5 版本。 原文:The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.This release includes 67 bugs, vulnerability fixes and minor improvements for Flink 1.14. Below you will find a list of all bugfixes and improvements...
Ubuntu 20.04 安装 MySQL 5.7
Ubuntu 20.04 对应的 MySQL 版本是 8.0,如果要安装 5.7 版本,有以下三种安装方式: 下载 MySQL 二进制压缩包,解压并设置相关的参数即可运行。 通过命令 apt install 进行安装,先下载 MySQL 5.7 对应的源,然后执行安装命令 apt install mysql-server=5.7.37-1ubuntu18.04 。 通过命令 dpkg -i 的方式安装,下载 MySQL 5.7 对应的 deb 文件,然后执行安装命令即可。 这里只说明第三种方式的安装过程,即通过命令 dpkg -i 的方式。具体步骤如下: 下载从 MySQL 官网 下载文件 mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar : 1wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar 解压将下载好的文件解压到相应的目录,这里是解压到目录...
【Git常用命令】解决在本地还能看到已删除的Git远程分支
在使用 Git 进行代码管理时,通常会遇到某个开发分支已经在代码仓库中删除了,但在本地环境中还能查看到该被删除分支的情况。 为解决该问题,Git 提供了以下两个命令: 1git remote prune origin 或: 1git fetch origin --prune 例如,我们在 GitLab 代码仓库删除项目的开发分支 ljx ,但在本地环境中通过命令 git branch -a 还可以查看到该分支还存在的情况: 12345* master remotes/origin/HEAD -> origin/master remotes/origin/ljx remotes/origin/master remotes/origin/patch-2032 这时,我们可以通过命令 git remote prune origin 来解决: 12345➜ mydw git:(master) git remote prune originwarning: redirecting to...
【Git常用命令】删除本地/远程分支
删除本地分支命令: 1git branch -d 分支名称 注意:删除某个分支时,需先切换到另一个分支上。例如,删除分支 ljx 的操作如下: 1234567891011121314# 先切换至 master 分支git checkout master# 删除分支 ljxgit branch -d ljx# 查看分支git branch -a* master remotes/origin/HEAD -> origin/master remotes/origin/ljx remotes/origin/master remotes/origin/bugfix 删除远程分支命令: 1git push origin --delete 分支名称 如删除远程分支 ljx: 1git push origin --delete ljx (END)
Linux创建/删除软链接
创建软连接命令: 1ln -s TARGET LINK_NAME e.g. 123456789101112131415# 创建软连接前的目录➜ opt lltotal 2.4Mdrwxrwxrwx 1 hadoop hadoop 4.0K May 7 13:58 redis-6.2.6-rwxrwxrwx 1 hadoop hadoop 2.4M May 7 10:43 redis-6.2.6.tar.gz# 创建软连接:为文件夹 redis-6.2.6 创建软连接 redis➜ opt ln -s redis-6.2.6 ./redis# 查看创建软连接后的目录➜ opt lltotal 2.4Mlrwxrwxrwx 1 hadoop hadoop 11 May 7 13:59 redis -> redis-6.2.6drwxrwxrwx 1 hadoop hadoop 4.0K May 7 13:58 redis-6.2.6-rwxrwxrwx 1 hadoop hadoop 2.4M May 7 10:43...
LeetCode1:两数之和
LeetCode1:两数之和 难度:容易题目链接:https://leetcode-cn.com/problems/two-sum/数据结构:数组,哈希表 题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 123输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 12输入:nums = [3,2,4], target = 6输出:[1,2] 示例 3: 12输入:nums = [3,3], target = 6输出:[0,1] 约束: 2 <= nums.length <= 104 109 <= nums[i] <= 109 109 <= target <=...
CentOS安装MySQL 5.7失败:GPG Key验证不通过
问题描述在 CentOS 系统,通过 yum 命令安装 MySQL 5.7 时,出现如下错误: 1234Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed Failing package is: mysql-community-server-5.7.37-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql yum 命令如下: 1sudo yum install mysql-server 解决方法从错误信息可以确认这是由 GPG Key 验证没有通过引起的。解决方法如下: 方法一: yum 安装命令加上参数 --nogpgcheck,即绕过 GPG Key 验证: 1sudo yum install mysql-server --nogpgcheck 方法二(推荐): 导入 GPG KEY: 1sudo rpm --import...
卸载CentOS系统自带数据库MariaDB
问题描述在 CentOS 7 系统中,执行命令时: 1sudo rpm -Uvh mysql-community-common-5.7.36-1.el7.x86_64.rpm 出现 conflicts 错误(即文件冲突),类似错误信息如下: 12file /usr/share/mysql/czech/errmsg.sys from install of mysql-community-common-5.7.36-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.68-1.el7.x86_64file /usr/share/mysql/danish/errmsg.sys from install of mysql-community-common-5.7.36-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.68-1.el7.x86_64 解决方法从错误日志中可以看到 mariadb 相关信息,由此可确定问题是由于...
Centos7安装MySQL 5.7 步骤(yum安装)
一、添加 yum 源下载 MySQL 5.7 rpm 包: 1wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 安装 rpm 包: 1sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm 完成后会在 /etc/yum.repos.d/ 目录下生成两个repo文件: mysql-community.repo、 mysql-community-source.repo 二、安装 MySQL进入 /etc/yum.repos.d 目录: 1cd /etc/yum.repos.d/ 执行 yum 安装命令: 1sudo yum install mysql-server 安装过程中,会有提示确认信息,一般一路输入 y 即可。 如果显示以下输出,则表明安装已成功。 1234567Installed: mysql-community-server.x86_64 0:5.7.37-1.el7Dependency Installed: ...
Java17新特性:密封类(Sealed Classes)
密封类(Sealed Classes)通过在类定义前面放置关键字 sealed,可以将类声明为密封类。同时使用关键字 permits 来限制哪些类可以继承或实现该密封类。在下面的示例中,声明了密封类 BasePosition,并且只允许类 PointGuard 和类 ShootingGuard 可以继承该密封类。 123public sealed class BasePosition permits PointGuard, ShootingGuard { // Class members here.} 关键字 sealed 除了可以修饰类外,还可以用来修饰接口,只允许哪些类可以实现该接口。例如: 123public sealed interface UserService permits UserServiceImpl { // Some methods here.} 如果定义的密封类继承了父类,或实现了其他接口,那么关键字 permits 需要放在关键字 extends、implements 的后面。在下面的示例中,密封类...
Apache Flink 1.13.6 发版公告
本文翻译自 Apache Flink 社区博文——《Apache Flink 1.13.6 Release Announcement》。 Apache Flink 社区很荣幸地宣布 Flink 1.13 的另一个错误修复版本正式发布。 此版本包括 99 个错误和漏洞修复以及 Flink 1.13 的小改进,包括升级 Apache Log4j 版本至 2.17.1。您可在下面查看所有错误修复和改进的列表(不包括对构建基础架构和构建稳定性的改进)。有关所有更改的完整列表,请参阅:JIRA 列表。 我们强烈建议所有用户升级到 Flink 1.13.6 版本。 发行工件(Release Artifacts)Maven 依赖(Maven Dependencies)123456789101112131415<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> ...
Superset配置——连接Hive出现TTransportException异常
问题描述安装好 superset,通过命令 superset run -p 8088 -h 0.0.0.0 启动,在界面配置 hive 数据库连接时出现错误。在服务器上看到日志信息如下: 123Unexpected error TTransportExceptionWARNING:superset.views.core:Unexpected error TTransportExceptionINFO:werkzeug:10.10.17.34 - - [11/Jan/2022 12:07:37] "POST /superset/testconn HTTP/1.1" 400 - 看到 TTransportException,第一感觉是缺少依赖包(Python、系统),不过日志并没有记录具体的错误信息,没有办法直接定位到底是缺少哪个依赖包。 解决方法看到...
Ubuntu20.04 LTS执行Shell脚本出现Bad substitution错误
问题描述在 Windows 10 自带的 Ubuntu 20.04 子系统终端,执行 Shell 脚本时出现 Bad substitution 错误: 12➜ ~ sh +x tt.shtt.sh: 11: Bad substitution Shell 脚本是从服务器上下载下来的,在服务器上是可以正确执行的,服务器系统为 CentOS 7。 解决方法第一感觉应该是该 Shell 脚本在 Ubuntu、CentOS 两个系统不兼容的关系。 打开脚本文件,跟踪出错位置(第 11 行),定位到这行代码 day=${dt:6}。 查了 Ubuntu 官方文档,发现从 Ubuntu 6.10 开始,系统默认 Shell (/bin/sh) 由 bash shell 更改为 dash shell 了,原因是 dash shell 更轻量,运行更快。 查看 /bin/sh 在 Ubuntu 系统的链接: 12➜ ~ ll /usr/bin/lrwxrwxrwx 1 root root 4 Feb 25 2020 sh ->...
模块五:学霸养成
模块一:底层思维 模块二:高效学习 模块三:高度自律 模块四:时间管理 模块五:学霸养成 21|学霸为什么学什么都快?有哪些可以借鉴的方法论? 知识储备、能力储备不同 越早付出努力,你在之后的人生中,达成目的的速度越快、效率越高。 22|如何通过练习,让自己变得更聪明? 刻意练习,才是真正能够提升能力、让你变聪明的方式。刻意练习有 4 个特点: 目标要明确。 做事时需要极其专注。 需要及时看到反馈,并进行调整。 走出舒适区。 看一本书、学一个科目,你要知道自己的目的是什么,需要回答哪些问题,记住哪些东 西,最终达到怎样的效果。 23|教你利用“双加工理论”,有效提高学习能力 路径依赖、“自动化加工”、“受意识控制的加工” 24|重要:别再去找更好的学习方法了 关于拖延症,“5 分钟起步法”足以解决这个问题; 关于焦虑,每天冥想 15 分钟 + 每周 跑步 3~4 次,可以在很大程度上使其得到缓解; 关于记忆,精细加工后自己复述出来,可以把 80% 的东西记得很好。 在学习和工作中,琐碎的、重复的、机械的工作,才占据更多的时间。只有把这些细枝...