- 博客(632)
- 资源 (1)
- 收藏
- 关注
原创 windows 如何设置定时任务执行程序
条件: 取消勾选 只有在计算机使用交流电源时才启动此任务。配置后, 每天 0 点, 就会自动执行我们的目标程序。触发器 > 新建 > 每天 0:00。此电脑 > 管理 > 任务计划程序。操作 > 新建 > 选择程序。不管用户是否登录都要运行。......
2022-08-31 02:03:38 6115 1
原创 zk 是如何解决脑裂问题的
如果两个机房之间网络断开,那么每个机房都需要重新选举leader。这里举例,2个机房,6个节点.每个机房是3个节点。这样就避免出现2个机房2个leader的情况.过半原则超过半数节点选举leader,才会成功.需要注意的是超过半数,并不包含等于半数。zk通过过半原则选举.......
2022-07-21 15:53:52 857
原创 Java 新生代晋升为老年代的四种情况
大内存对象. 当某个对象占用的内存达到阈值时, 可能会被晋升老年代年龄大的对象. 对象年龄达到阈值后, 会被晋升老年代 survivor 区满了, 对象会晋升为老年代. minor gc 后, eden 和 survivor 区会拷贝到另外一个 survivor 区动态年龄. 当某个年龄和以下年龄的对象占比超过 survivor 50%, 那么该年龄及以上的对象会晋升为老年代...
2022-04-01 16:24:11 1535
原创 java 如何调用 shell 命令
我们项目里需要调用本地的 spark-submit 命令, 提交 spark 作业这里举例如何使用 java 执行 shell 命令 /** * 执行并返回状态码 * * @param cmd * @return */ public static int execRetCode(String cmd) { boolean isWindows = System.getProperty("os.name").toLowerCas
2022-03-31 01:17:11 8962 1
原创 spark 如何判断两个数组的交集
这里直接给出例子select case when array_intersect(array('a','b','c'), array('a', 'd'))[0] is null then 0 else 1 end解释下, 这个函数array_intersect (array ('a','b','c'), array ('a', 'd')) 是求两个数组的交集获取 0 号元素 (无需担心索引越界), 如果是空, 那么通过 case when … then … else … end 的语法, 将结果
2022-03-29 18:02:34 2774
原创 excel 里如何计算某列数据是否在另外一列里
最近有些数据需要手动统计下, 用到了 excel我们需要判断大集合的元素是否在小集合里, 并在大集合增加一列, 表示是否存在表达式如下=IF(COUNTIF(Sheet1!A$1:A$4,A2)>0,"是","否")具体解释下我们取 Sheet1 的 A1 到 A4 的数据, 如果当前 A2 的值存在, 那么计数为 1, 否则 0结果大于 0, 就是存在, 否则不存在使用鼠标下拉即可把剩余单元格自动填充...
2022-03-28 21:43:05 4262
原创 hive 如何使用 group_concat
mysql 有 group_concat, 用于把每行的结果, 使用逗号分隔, 连接为一个文本, 常搭配 group by 语句hive 里没有 group_concat 语句, 可以使用以下语句替换select concat_ws(',', collect_list(rule_id) rule_ids from rule group by rule_id;...
2022-03-25 20:13:56 8650 1
原创 nginx server location upstream 含义
server 表示当前 ng 的地址或者域名location 用来映射路径到 upstream 的后端服务上upstream 用来负载均衡, 包含一组后端服务器举例如下# weight 表示权重, max_fails 表示请求失败多少次后, 将该 server 标记为失效, fail_timeout 请求超时时间, 单位秒upstream myservers { server 192.168.1.129:81 weight=1 max_fails=2 fail_timeout=3;
2022-03-24 21:13:26 1406
原创 使用 dns 作为负载均衡的劣势
一般的, 我们会使用 nginx 来作为应用负载均衡服务器. 那么为什么不使用 dns 负载均衡呢应用服务器性能不同, 无法指定流量权重如果应用服务器宕机, 不能做到失效备援, 不会自动切换到其他服务器 dns 解析的 ip 有缓存, 想要调整应用服务器 ip 会有很大延迟...
2022-03-23 21:48:50 1284
原创 springboot tomcat 线程数相关配置
server.tomcat.accept-count =100 # 当所有可能的请求处理线程都在使用时, 传入连接请求的最大队列长度.server.tomcat.max-connections = 10000 # 服务器在任何给定时间接受和处理的最大连接数.server.tomcat.max-threads =200 #最大工作线程数.server.tomcat.min-spare-threads =10 # 最小工作线程数.理解请求进来后, 会创建线程, 数量达到 max-threads, 此时
2022-03-22 22:36:56 6552 2
原创 grep 如何同时查找 2 个关键词
今天排查一个异常, 需要同时包含 up_105823 和包含 false} 这两个文本具体命令如下# 即 -E 表示使用正则, 而 .* 表示任意数量的任意字符串# * 表示当前路径下的所有文件grep -E 'up_105823.*false}' *如果想查找或者关系的两个文本, 那么是以下命令例如查找 test.txt 的 abc 或者 123# 即 -E 表示使用正则, 而 .* 表示任意数量的任意字符串# grep -E '123|abc' test.txt ...
2022-03-21 14:38:23 12037 1
原创 System.getProperties 和 System.getenv() 区别
System.getProperties 和 System.getenv() 区别System.getProperties 获取到的是 java 的运行时属性使用 -Dkey=value 形式, 可以通过 java 的 System.getProperties 获取到 java -Dkey1=value1 -jar xx.jar System.out.println(System.getProperties().getProperty("key1"));而 System.getenv();
2022-03-18 21:58:35 526
原创 如何排查慢接口耗时在哪里
这里推荐使用 arthas 工具来排查, 非常好用附上之前的文章https://blog.csdn.net/u012745499/article/details/122971698这里, 再介绍下 trace 命令查看方法耗时分布例如我想监控 JobService 这个类的 splitJob 方法 一次# 注意在生产环境下, 需要指定 -n 表示监控一次# 否则在高并发情况下方法调用很频繁, 打印会很多, 也会影响接口性能trace *JobService splitJob -n 1注
2022-03-17 21:52:06 4007 1
原创 宽表, 窄表, 维度表, 事实表的区别
在数据开发里, 会涉及到一些概念: 宽表, 窄表, 维度表, 事实表宽表: 把多个维度的字段都放在一张表存储, 增加数据冗余是为了减少关联, 便于查询. 查询一张表就可以查出不同维度的多个字段窄表: 和我们 mysql 普通表三范式相同, 把相同维度的字段组成一张表, 表和表之间关联查询其他维度数据. 维度表: 包含维度编码和该维度下的多个属性事实表: 包含一个业务事件的相关属性举例宽表包含性别, 年龄, 各个用户身份维度表事实表...
2022-03-16 21:23:47 14175
原创 java 如何运行 jar 包指定类的 main 方法
由于我们项目有多个包含 main 方法类, 需要打包后放到跳板机上执行.记得之前都是配置 manifest 文件, 不过感觉有点死板. 其实可以通过代码指定要运行该 jar 包哪个类的 main 方法这里举例, 我们要运行 abc.jar 的 BizTagQuery 类的 main 方法# 注意要指定类的全限定名, 即包含包名java -cp abc.jar com.xiaomi.BizTagQuery...
2022-03-15 21:03:35 5808 1
原创 如何查看某个端口是否可以访问
使用 telnet 命令可以查看远程主机某个端口是否可以访问centos 下安装命令yum install telnet-server -yshell这里举例, 查看 10.119.229.205 的 11201 是否开放telnet 10.119.229.205 11201这种就表示端口开放.退出按下 ctrl c 即可...
2022-03-14 21:16:49 6601
原创 idea 搜索不到文件内容
前两天, 使用 idea 全局搜索文本内容,发现结果为空. 但实际上该内容是在好几个文件里.其实是 idea 的缓存问题.操作方式:file > invalidate caches > invalidate caches and restart等待 idea 重启后, 重新加载文件索引, 就可以恢复正常了...
2022-03-13 20:50:49 3221
原创 mysql 数据重复插入语句
replace into如果存在唯一键冲突, 那么先删掉原记录, 再插入新记录replace into my_table (id, name) values (1, '哈哈')insert ignore into如果存在唯一键冲突, 那么本次插入操作会被忽略insert ignore into my_table (id, name) values (1, '哈哈')on duplicate key update xx = values(xx)如果存在唯一键冲突, 那么会更新某些字段的值-
2022-03-13 00:59:15 1678
原创 mysql 如何查看建表语句
由于公司都是使用 linux 跳板机连接 mysql, 而某个项目又没有测试环境, 于是只能通过跳板机查看某张表的详细信息. 具体语句如下这里以查看 ups_auth_info 表为例# \G 表示以垂直形式查看结果show create table ups_auth_info \G;...
2022-03-11 21:14:37 20510 2
原创 一张图读懂 sql join
这两天看到一张 sql join 图, 感觉非常直观. 在这里分享下按照图片竖着的顺序写下每种 sqla left join b on a.key = b.keya left join b on a.key = b.key where b.key is nulla full outer join b on a.key = b.keya. inner join b on a.key = b.keya full outer join b on a.key = b.key where a.k
2022-03-10 21:47:50 243
原创 maven 多模块项目如何打包指定模块的 jar 包
我们的项目是 maven 多模块项目. 打包时, 想要只构建自己需要的模块, 节省构建时间具体构建命令如下, 可以构建指定模块这里以 构建 ups_sdk 模块为例mvn clean install -DskipTests -pl ups_sdk -am可以看到只构建了 4 个模块, 而我们实际有 9 个模块...
2022-03-09 21:10:34 939
原创 mysql 查询语句报 Every derived table must have its own alias
今天看到一条 sql 查了 1w 多条数据, 然后使用代码做了计算分组后最大 id 的逻辑. 想着优化下, 然后 sql 执行报 Every derived table must have its own alias这表示子查询需要命名别名才行例如 from (select * from table2) a 这种, 别名 a 是必要的, 否则报错之后正确的 sql-- 264 rows in set (0.05 sec)select c.id as historyId, c.extract_job
2022-03-08 22:21:51 455
原创 hive 如何解析包含 json 的字符串字段
语法使用 lateral view json_tuple (表字段, json 字段) 视图别名 as 字段别名这里举例查询 micloud.va_log 表查询 json 字符串字段 msginfo 的 env 字段查询 json 字符串字段 extra 的 salary 字段查询结果会跟在最末尾的列select * from micloud.va_loglateral view json_tuple(msginfo, 'env') json1 as envlateral view jso
2022-03-07 20:48:25 2215
原创 hive 的 order by, sort by, distribute by, cluster by 区别
order by 全局排序 sort by 在每个 reducer 下排序, 数据划分到哪个 reducer 是随机的, 一般搭配 distribute by 使用 distribute by 指定数据划分到哪个 reducer 的依据字段, 例如 distribute by salary, 表示根据薪水判断使用哪个 reducer 排序 cluster by 等效于 sort by 加上 distribute by, 并且固定是 asc 的排序. 例如 distribute by salary.
2022-03-06 14:20:09 1420
原创 LeetCode 387. 字符串中的第一个唯一字符
https://leetcode-cn.com/problems/first-unique-character-in-a-string/思路使用 HashMap 维护元素的出现次数, key 是元素, value 是出现次数遍历数组, 根据当前元素获取 map 的出现次数, 如果为 1 就返回当前索引 public int firstUniqChar(String s) { // 存储字符:出现次数的映射 Map<Character, Integer>
2022-03-05 13:35:14 251
原创 如何查询 hive 分区表的某个分区数据是否存在
假如以 date 和 job_id 两个字段作为分区select count(*) from profile.user_crowd where date = 20220304 and job_id = 12345使用 spark 判断结果val date = 20220304val jobId = 12345val sql = s"select count(*) from profile.user_crowd_test where date = ${date} and job_id = ${jo
2022-03-04 21:41:59 3847 1
原创 maven 如何移除无用的依赖
背景最近在做 sdk 瘦身, 需要移除当前项目里无用的依赖行动进入对应项目 pom.xml 所在目录mvn dependency:analyzepom 文件里, 找到 Unused declared dependencies found 的依赖的, 逐个移除后编译, 如果不报错, 则可以移除该依赖...
2022-03-03 14:05:49 3989
原创 git 如何撤销已经 push 的 merge
今天在合并代码时, 发现自己失误把另外一个分支 B 的代码合并到了自己分支 C, 于是想到要撤销这次 merge一般地, 如果我们想要撤销某次 commit 可以 git revert <commit-id>. 然而, 对于 merge 类型的 commit 不能直接 git revert <commit-id>这里举个例子:我们错误地把 master 合并到 feature/2022-03-02-revert, 目前想要撤销这次 merge正确的做法如下:确保当前处于
2022-03-02 20:40:31 2705
原创 mysql 如何查询当前年月日时分秒
使用 now () 获取当前时间使用 date_format () 格式化当前时间声明别名, 提升易读性select date_format(now(),'%y-%m-%d %h:%i:%s') now;```
2022-03-01 20:40:24 6260
原创 为什么 -xms 和 -xmx 设置为相同的值
内存抖动: jvm 堆内存不足时, 会向操作系统申请内存; 对内存空闲时, 会向操作系统释放内存.-xms 和 -xmx 之所以推荐设置为相同的值, 是为了避免内存抖动, 因为这期间不足或者空闲, jvm 向系统申请/释放内存, 会有成本开销好比你的钱都需要我借给你, 那你向我借 1 块钱 10 次, 不如向我借 10 块钱一次, 更加省事....
2022-02-28 16:22:44 529
原创 java 性能分析都有哪些维度, 怎么查看这些指标
最近在做我们项目的 java 性能分析. 做了如下维度的指标统计cpu使用 linux 的 top 命令查看目前 cpu 占用情况,一般 20% ~ 50% 都是合理区间, 如果太低, 则 cpu 过剩, 太高, 则可能影响应用性能内存使用 linux 的 top 命令, 查看整个 java 应用消耗系统的内存大小和进程 pidjava 的堆导出 jmap -dump:live,format=b,file=heapDump.bin <pid>, 导出当前 java 应用内存中存活对象
2022-02-27 16:09:04 367
原创 jvm 如何查看对象年龄的分代情况
一般的, 我们对于 java 应用会增加打印 gc 日志的参数.对象年龄可以理解为对象在新生代里 eden 和 survivor0, survivor1 之间复制的次数. 在 java8 中, 默认是 15 次, 会回收到老年代.如果想要查看对象年龄的分代情况. 可以指定 jvm 参数 XX:+PrintTenuringDistribution以下是详细打印 gc 日志的参数-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDi
2022-02-27 15:34:26 2397
原创 什么是云计算, 什么是 IaaS, PaaS, SaaS
谈到云计算, 我们会和本地计算作比较.传统的本地计算, 受限于本地机器性能和存储空间, 计算能力有限.而云计算可以理解为部署在互联网上的计算机集群, 拥有计算和存储能力, 用户可以按需获取. 极大提高资源利用率和共享概念.云计算有三种概念IaaS 基础设施即服务, 例如阿里云的 ECS 服务器, 相当于我们租了一台装了 Linux 系统的电脑.PaaS 平台即服务, 例如阿里云的轻量级应用服务器. 这个相当于帮我们安装了 nginx 或者 Apache 服务器, 我们上传我们的 html 或 p
2022-02-25 19:46:38 1140
原创 scala 如何使用正则提取内容
背景最近有个需求, spark 作业执行前, 需要判断某个 hdfs 的地址是否在 hive 上存在分区的元信息.例如下面的 hdfs 地址/user/s_user_profile/god/user_crowd/date=20220214/job_id=100055想要获取里面的 date 的值和 job_id 的值如果还不清楚正则表达式语法的, 可以先了解下https://blog.csdn.net/u012745499/article/details/108763880代码.r 表示
2022-02-24 19:47:25 1599
原创 什么是 BI
BI 全称是商业智能 Business Intelligence. 一般地, 可以理解为数据可视化, 数据分析的含义.BI 是基于大数据的, 只有基于大量数据的图表展示, 才有意义, 可以作为决策的参考.以我们公司的手机用户年龄为例, 可以看出近 30% 用户都是 30-34岁, 我们可以针对这部分用户做针对性的分析...
2022-02-23 20:23:43 1921
原创 windows 电脑如何查看电池健康程度
cmd 下运行powercfg /batteryreport使用浏览器打开该文件可以看到这台电脑的设计容量是 45520mWh, 而实际容量已经衰减到 39250mWh
2022-02-22 20:22:50 1793
原创 jvm 堆栈在线分析工具
当我们进行 java 性能分析时, 比较常用的是导出 java 应用堆栈信息# 查看 java 应用的 pid, 例如是 150top# 导出堆栈信息到 150.dump 文件# -l 参数表示导出锁的详细信息jstack -l 150 > 150.dump然后可以导入在线堆栈分析网站 https://heaphero.io/ft-index.jsp线程分布死锁检查火焰图...
2022-02-21 20:32:05 3139 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人