MySQL如何开启binlog日志
查看是否开启binlog日志连接 MySQL,执行以下命令: 1show variables like 'log_%'; 查询结果类似以下内容: Variable_name Value log_bin OFF log_bin_basename log_bin_index … 变量 log_bin 的值为 OFF,说明未开启 binlog 日志,若为 ON 说明已开启。 开启binlog日志若 MySQL 未开启 binlog 日志,可通过修改 MySQL 的配置文件 mysqld.cnf 启用 binlog 日志。 打开配置文件(注意:配置文件位置需改为你自己的存放位置): 1vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加以下配置项: 123server_id = 20log_bin = mysql-binbinlog_format = ROW 保存修改内容,并重新启动 MySQL 使修改后的配置项生效,如使用 service...
Lightweight Asynchronous Snapshots for Distributed Dataflows
Author皇家理工学院 Paris Carbone1 Gyula Fora ´2 Stephan Ewen3 Seif Haridi1,2 Kostas Tzoumas31KTH Royal Institute of Technology - {parisc,haridi}@kth.se2Swedish Institute of Computer Science - {gyfora, seif}@sics.se3Data Artisans GmbH - {stephan, kostas}@data-artisans.com AbstractDistributed stateful stream processing enables the deployment and execution of large scale continuous omputations in the cloud, targeting both low latency and high throughput. One of the most fundamental challenges of this...
【Elasticsearch】Query DSL查询指定字段值为null的文档
Hey,大家好!我是 Elasticsearch 新手。我想知道如何通过 Query DSL 找出指定字段值为 null 的文档。 以下是我索引(索引名:class_info_v22002,用来存放班级信息)创建的 DSL: 123456789101112131415161718192021PUT class_info_v22002{ "settings": { "refresh_interval": "1s", "number_of_replicas": 1, "number_of_shards": 3 }, "mappings": { "properties": { "class_id": { "type": "integer" }, ...
Elasticsearch使用Query DSL批量写数据至索引报json_e_o_f_exception异常
我在 Kibana 的开发工具页面中使用 Query DSL 给索引批量添加数据时,出现了 json_e_o_f_exception 异常。 重现步骤如下: 创建索引 DSL: 12345678910111213141516171819202122232425262728PUT user_info_v202210120517219 { "settings": { "refresh_interval": "1s", "number_of_replicas": 1, "number_of_shards": 5 }, "mappings": { "properties": { "user_id": { "type": "integer" }, ...
运行第一个Flink应用
准备工作 基于 UNIX 环境 如果使用的是 Windows 环境,可以安装虚拟机软件(如 VMware Workstation Pro)并配置一个 Linux 系统(如 CentOS 8,Ubuntu 等)的虚拟机,也可以安装 Cygwin( 一个 Windows 下的 Linux 环境),或者配置 WSL (Windows Subsystem for Linux, Windows 10 中新加的功能)。 这里运行环境为 Windows 10 的 Linux 子系统: 1234➜ /opt cat /proc/versionLinux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020➜ /opt cat /etc/issueUbuntu 20.04.4 LTS \n \l 安装 Java 8 1234➜ /opt java -versionjava version...
Apache Flink Table Store 快速入门
本文通过一个示例来简要介绍如何使用 Apache Flink Table Store。 步骤一:下载 Flink 注意:Flink Table Store 仅从 Flink 1.14 开始支持。 本示例使用的是 Flink 1.15.2 版本,使用 wget 下载: 1wget https://dlcdn.apache.org/flink/flink-1.15.2/flink-1.15.2-bin-scala_2.12.tgz 下载完成之后,解压文件: 1tar -xzf flink-1.15.2-bin-scala_2.12.tgz 本示例中,flink 的安装目录为 /mnt/d/flink-1.15.2 。为便于本文的后续说明,这里使用 ${FLINK_HOME} 代指 flink 的安装目录。 解压后的文件目录如下: 12345678910111213➜ flink-1.15.2 lltotal 616K-rwxrwxrwx 1 root root 12K Aug 17 20:10 LICENSE-rwxrwxrwx 1 root root 600K Aug 18...
Apache Flink Table Store——流批一体存储
Flink Table Store 面向更新场景的 OLAP 应用。作为流批统一存储,在 Flink 中为流式处理和批处理构建动态表,支持实时流式更新/删除变更日志摄取、实时流消费和高性能数据查询。当大量更新数据(如 MySQL 的 binlog 日志)写入 Flink Table Store 后,Flink Table Store 后台会根据主键来合并数据,默认保留最新变更后的数据。Flink Table Store 目前仍处于 beta 状态,正在快速发展,不建议直接在生产环境中使用。 出现背景在过去的几年里,得益于众多的贡献者和用户,Apache Flink 已经成为最好的分布式计算引擎之一,尤其是在大规模有状态流处理方面。然而,当试图深入了解实时数据时,仍然面临着一些挑战。在这些挑战中,一个突出的问题是缺乏满足所有计算模式的存储。 到目前为止,为了不同目的部署几个存储系统来使用 Flink 是很常见的。一个典型的部署是用于流处理的消息队列、用于批处理和即席查询的可扫描文件系统/对象存储、以及用于查找的 K-V...
用户画像是什么
简介在大数据领域,用户画像一般指用户信息标签化。首先,通过多种渠道方式,尽可能多地收集用户各种各样维度的数据,如用户信息、消费水平、消费习惯、购买产品类目偏好等;其次,综合收集到的数据,对用户特征进行刻画与抽象;最后再对这些特征进行分析、统计和推断,挖掘潜在价值。 一个完善的用户画像系统,不仅可以帮助企业进行精细化运营管理,如提升用户购买转化率、商品的曝光/点击率等运营指标,甚至为企业的战略决策提供支持。现在,互联网上常见的针对用户进行个性化推荐、精准营销(如定向广告投放)、个性化服务等,有不少是直接依赖用户画像。例如,不同用户打开同一个外卖 APP,用户极有可能在 APP 首页上看到的是不同的推荐商家,即所谓的“千人千面”,其背后就是用户画像的一个应用场景——根据用户当前所在位置、历史订单数据(口味、消费水平等),给用户打上“标签”,并根据标签给用户推荐合适的商家。 根据打标签的方式,可以将标签分为以下三大类: 统计类标签,通过对用户信息、访问记录、下单消费等常规数据直接进行统计得到,如用户性别、常驻地、年龄、设备类型、近 30 日活跃天数、近 30 日下单天数、近 30...
Windows下修改与刷新hosts配置文件
hosts 文件位置: 1C:\windows\system32\drivers\etc 选中 hosts 文件,右键,使用文本工具(如 Notepad++、VS Code、Sublime Text、记事本等)打开修改即可。如添加以下 host 配置: 110.10.18.21 bigdata1.johnson.com bigdata1 为使刚刚的更改生效,需要刷新 DNS 配置,具体步骤如下: 打开 命令提示符 应用: 快捷键:win + r 输入 cmd,回车,即可打开 命令提示符 应用。 在打开的 命令提示符,输入 ipconfig /flushdns,回车,即可: 1ipconfig /flushdns 显示 DNS 缓存内容: 1ipconfig /displaydns (END)
如果Java在技术上落后,为什么人们还在使用Java呢
本文翻译至《Why do people still use Java, if Java is behind technologically》。 首先,Java 开发人员有很多工作岗位,这是一个原因,但为什么人们仍然使用 Java,包括在新项目中使用呢? 最近流行的高级语言,如 Python、Ruby,因其代码简便性和简洁性,可以很好地提高开发人员的生产力、灵活性和快速迭代。这些语言的动态特性对于许多广泛的应用程序来说非常棒,但是,当项目变得非常大、涉及到大量开发人员或者当速度和容错性至关重要时,它们就会开始崩溃。 有一些技术和约定可以解决动态类型的代码稳定性问题,但是技术和约定意味着人们需要遵循它们,即使这样,也存在难以预防的漏洞。以 PHP 为例,它在整个 Facebook 中用于后端编码,Facebook 对其进行了扩展,为其提供静态类型和动态编译,以便它可以提供使用 Java 等技术时所获得的速度和稳定性。Scala、Haskel、Erlang 和 Golang 等外来语言将主要用于最适合它们的特定应用程序。 另一方面,对于许多应用程序来说,Java...
Elasticsearch索引添加字段
本文基于 7.1.0 版本的 Elasticsearch 演示如何给已有的索引添加新字段,并对比添加新字段前后的数据情况。(以下 API 调用均在 Kibana 开发工具上操作) 创建索引 user_info_v220101: 1234567891011121314151617PUT user_info_v220101 { "mappings": { "properties": { "user_id": { "type": "integer" }, "phone": { "type": "keyword" }, "create_time": { "type": "date", ...
【Redis】flushall命令——清空所有缓存数据
如何清空 Redis 集群的所有缓存数据?即删除所有数据库的所有 key。 使用 Redis 的 flushall 命令。 该命令适用 Redis 版本:≥ 1.0.0 执行结果总是返回:OK。 NOTE:生产环境谨慎操作!!!除非你很清楚自己正在做什么! 具体步骤如下: 在终端命令行窗口,输入连接 Redis 指令: 1redis-cli -h 192.168.182.227 -p 1379 参数说明: -h:Redis Host(连接地址,如果连接地址为 127.0.0.1,可忽略该参数); -p:Redis Port(端口号,如果端口号为 6379,可忽略该参数); -a:Redis 连接密码(如有密码的话,需要上该参数,如 -a 1234567890k) 连接成功后,输入 flushall 指令即可清空 Redis 所有缓存数据: 1flushall 示例: 123$ redis-cli -h 192.168.182.227 -p 1379192.168.182.227:1379> flushallOK (END)
在Presto中实现Hive LATERAL VIEW EXPLODE
我是 Presto 新手,我们公司数据仓库中有一张表(表名:dwd_user_country),记录了用户到访过的国家与地区。这里为简化问题描述,将该表结构抽象为两个字段:user_id 和 countries,其中 countries 字段的值采用英文逗号连接用户到访过的国家与地区。 表数据如下表所示: user_id countries 26841018 中国,马来西亚,美国,瑞士,泰国,冰岛 现在,我需要从该表中统计每个国家或地区的到访人数,在 Hive 语法中,我可以使用 LATERAL VIEW EXPLODE 将该表的数据转成以下格式,再按 country 字段做 GROUP BY 统计。如果现在是使用 Presto 该怎么做呢? user_id country 26841018 中国 26841018 马来西亚 26841018 美国 26841018 瑞士 26841018 泰国 26841018 冰岛 Hive 查询 首先使用 split 函数将 countries 字段分割成数组,再使用...
【Flink作业运行出错】beyond the 'PHYSICAL' memory limit. Killing container
问题描述Flink 版本:1.13.6 部署模式:Flink On YARN Application Mode 当 Flink 作业在 YARN 上运行了几天之后,容器会因为物理内存使用超出物理内存限制而被杀死,并报如下错误: 1234567892022-08-12 12:36:04,168 WARN akka.remote.ReliableDeliverySupervisor [] - Association with remote system [akka.tcp://flink@flink-node-06:42477] has failed, address is now gated for [50] ms. Reason: [Association failed with [akka.tcp://flink@flink-node-06:42477]] Caused by: [java.net.ConnectException: Connection refused:...
【Linux常用命令】tar压缩和解压文件或文件夹
压缩文件1tar -zcvf ljx.tar.gz ./linjiangxiong/ 该命令表示压缩当前文件夹下的文件夹 linjiangxiong,压缩后的文件名为 ljx.tar.gz 。 如果需要压缩多个文件,只需要在命令末尾追加需要压缩的文件即可,如: 1tar -zcvf ljx.tar.gz ./linjiangxiong/ ./ljx/ 解压文件1tar -xzvf ljx.tar.gz 该命令表示把后缀为 .tar.gz 的文件解压到当前文件夹下。 如果需要将文件解压缩到其他目录,则使用命令: 1tar -xzvf ljx.tar.gz -C /opt/ljx 该命令表示把后缀为 .tar.gz 的文件解压到 /opt/ljx 目录下。 (END)
【Linux常用命令】用户与用户组
添加用户添加用户命令: 1useradd 用户名 修改用户密码命令: 1passwd 用户名 e.g. 添加 lemon 用户: 1useradd lemon 为 lemon 用户设置密码: 1passwd lemon 根据提示输入新密码即可,提示/输出内容如下: 123456[root@node01 bigdata]# passwd lemonChanging password for user lemon.New password: BAD PASSWORD: The password is shorter than 8 charactersRetype new password: passwd: all authentication tokens updated successfully. 添加用户组命令: 1groupadd 组名 e.g. 添加 group2 组: 1groupadd group2 查询系统所有用户命令: 1cat /etc/passwd 查询系统所有组命令: 1cat...
Java方法如何返回多个值
我们知道,Java 方法不支持有多个返回值。如果要在一个 Java 方法中返回多个处理结果,有以下几种方式: 使用数组数组元素要求类型相同,如果方法的处理结果类型不同,比如有数值类型、字符串类型等,可以使用像 List<Object> 来存放。此种方法最大的弊端是调用方需要知道列表中每一个 Object 的实际类型并做强制转换,不够优雅,维护、使用成本也比较高。实际开发中不推荐使用。 使用映射如 Map<String, Object>,使用 Object 类型存放结果,调用方需要知道每个 key 值,以及每个 key 值对应的 Object 实际类型。此种方法同样不够优雅,维护、使用成本也比较高。实际开发中不推荐使用。 自定义类将方法的多个处理结果封装成一个类进行返回,比如方法中需要返回的处理结果有整数类型、浮点数类型和字符串类型,我们可以封装一个这样的类来接收返回值: 1234567891011121314151617181920212223242526272829303132333435363738public class ProcessResult...
HiveSQL内置函数——DATEDIFF函数
DATEDIFF(string enddate, string startdate)返回从 startdate 到 enddate 的天数。 如查询从 2022-08-01 到 2022-08-16 的天数: 12-- 该查询返回结果为 15SELECT DATEDIFF('2022-08-16','2022-08-01'); 使用示例一个常见的例子是计算用户未活跃时长(天),该指标的定义:用户最后一次登录时间距离某天(一般是昨日)的天数。 1234-- 参数dt:20220815SELECT user_id, DATEDIFF(FROM_UNIXTIME(UNIX_tIMESTAMP('${dt}','yyyyMMdd')), last_login_time) FROM mydw.dwd_user 输出示例: 123456+------------+-----------+| user_id | _c1 ...
在 Java 中如何使用 Gson 库序列化 NULL 字段
默认情况下,Gson 对象不会将值为 NULL 的字段序列化到 JSON 对象中。如果要序列化值为 NULL 的字段,可以在创建 Gson 对象之前,先调用 GsonBuilder 实例的 serializeNulls() 方法,再由 GsonBuilder 创建 Gson 实例,即可在序列化后的 JSON 中包含 NULL 值的字段。 具体示例代码如下: 12345678910111213141516171819202122232425import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.johnson.gson.model.User;public class NullFieldSerializeDemo { public static void main(String[] args) { GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); ...
HiveSQL内置函数——COALESCE函数
COALESCE(T v1, T v2, …)COALESCE,读作 /ˌkəʊəˈles/,该函数用于返回第一个不为 NULL 的 v,如果所有 v 都为 NULL,则返回 NULL。 举个例子: SELECT COALESCE(A, B, C) FROM TABLE_NAME 该 SQL 的返回值判断过程如下: 如果 A 不为 NULL,则返回 A,否则判断 B 是否为 NULL,若 B 不为 NULL,则返回 B,否则继续判断 C 是否为 NULL,若 C 不为 NULL,则返回 C,否则返回 NULL。 使用场景一个常用的场景是在一张表中的某个字段的默认值为 NULL,在查询的时候,如果该字段为 NULL,我们希望返回其他有意义的值而不是 NULL 值,这时就可以使用 COALESCE 函数。 例如,用户表(dwd_user)中的常驻城市字段(city),如果为 NULL 时,我们希望在返回给最终用户时可以显示“未知”,而不是 NULL 值,可以这么写: 1SELECT COALESCE(city, ‘未知’) FROM dwd_user 另一个常用场景是两张表做...