自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录

个人技术记录!

  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 大数据-部署、代码、设计

一、环境安装1、安装hadoop3.2.1(mac伪分布式)2、安装hive3.1.23、安装spark3.0.0二、代码连接1、java代码操作hdfs文件2、jdbc连接hive(hiveserver2)3、SparkLauncher提交jar任务到spark-yarn三、遇到的一些问题1、启动hiveserver2连接不上jdbc:hive2:...

2020-04-13 21:49:57 1074 1

原创 Elasticsearch6项目实践

公告列表,需要支持以下搜索1、根据文本输入,模糊搜索公告标题和新增正文。2、支持公告类型搜索,单选3、支持根据公告所在省市区搜索,可多选。如,可以同时选中“浙江”,“广州”,“朝阳区”4、支持公告包含的行业搜索,行业包括一级行业、二级行业,可多选。5、支持公告发布的时间搜索,如最近7天,最近一个月,或选定一段日期范围。7、支持根据公告中涉及到的金额范围搜索,如1万-10万,10万-200万,200万-500万,可选择多个范围。

2023-10-12 15:08:19 649

原创 SXSSFWorkbook导出数据单元格设置为数值类型

【代码】SXSSFWorkbook导出数据单元格设置为数值类型。

2023-09-12 17:21:15 1040

原创 大数据平台之数据治理

本文仅在大数据平台角度对数据存储、cpu、内存角度进行数据治理,不包括业务角度。数据治理的目的:随着业务的发展,诸如存储、cpu、内存等资源的使用均会增加,大多数资源使用是业务增长带来的,而其中一部分是使用过程中带来的无意义增长,对这一部分资源的增长需要管控起来。

2023-09-06 15:36:34 695

原创 大数据平台之元数据

很多大数据平台,对作业的基础信息维护得较可以,但对作业的附加信息则不是那么重视,当作业调度出现问题的时候,会发现,一个好的作业的附件信息,帮助用户快速排查作业调度失败的原因,节约了很多时间。表、字段的元数据信息是大数据平台建设的基础,随着业务发展,会发现,若一开始对这一块基础没设计好,会遇到很多问题(原以为元数据原理这种是比较基础的东西,一般的公司在最初做平台规划的时候都会把这些规划进去,但实际有些公司在前期架构设计很差,一些基础的东西也没意识到重要性,导致给后面埋很大的坑)

2023-09-05 16:54:15 550

原创 苹果手机内存不够白屏

内存不够已经快一年了,这一年一直靠各种删来维持,之前出现过一次内存不够手机完全卡死的情况,关机重启后就白屏了,折腾了很久都没搞定,后面手机usb连了电脑后开莫名就好了——庆幸。然后昨天,手机又报内存不够,卡在微信页面,完全卡死那种,再后面手机就自动关机,重启后直接就白屏了。鉴于之前那次成功恢复的经历(虽然那次也不知道怎么就好了),心里其实不是那么担心,觉得总能弄好的。先是尝试跟之前那样拿手机连电脑,——无效;...

2022-07-30 12:35:30 1060 1

原创 任务调度设计

一、分布式锁1、如何保证任务只在一台机器调度?redis分布式锁,将某台机器的ip作为值放入redis,任务跑的时候获取redis中的ip和当前机器ip进行对比,两者相等则在当前机器将任务跑起来。2、机器挂了怎么办?redis中获取机器ip的key设置失效时间3、任务还在跑,失效时间就过了怎么办?另启一个任务去轮询判断任务与有没有跑完,如果超过一定时间还没跑完,将redis中的失效时间延长。ps:如何判定任务有没有跑完? 任务跑完在redis中设...

2022-04-03 16:33:42 2070

原创 java内存溢出定位

目录1、导出dump文件2、MAT分析2.1 导入dump文件2.2 分析3、VisualVM3.1 打开VisualVM3.2 导入dump文件3.3 分析4、测试代码1、导出dump文件#查看pidjps#导出dump文件jmap -dump:format=b,file=heap.hprof pid#示例jmap -dump:format=b,file=heap.hprof 174062、MAT分析2.1 导入dump文件..

2022-03-29 15:01:40 1041

原创 linux shell监本监控java进程自动重启

监控shell脚本:monitor.sh#! /bin/shsource /etc/profilecd /rootwhile truedo procnum=`ps -ef|grep project.jar|grep -v grep|wc -l` if [ $procnum -eq 0 ] then echo `date +%Y-%m-%d` `date +%H:%M:%S` "restart service" >>/root/lo

2022-02-13 20:22:16 1751

原创 项目启动后自动启动某个包下带自定义标签的方法

import lombok.extern.slf4j.Slf4j;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;import org.springframework.stereotype.Component;/** * 集成测试总入口 * 项目启动后会自动执行所有方法 * com.

2022-01-17 14:45:48 120

原创 spark调优

待补充

2021-10-25 21:55:09 576

原创 mac环境各种问题

1、删除文件直接被删除,而不是进回收站执行以下命令sudo rm -ri ~/.Trash2、Idea上maven刷新了,确定jar已经下载下来,但是还是报类不存在问题(1)清idea缓存(2)Idea版本太高有时候会出现此bug,老版本没这个问题3、Sequel Pro执行Sql非常卡执行以下命令defaults delete com.sequelpro.SequelPro queryHistory...

2021-08-17 15:14:58 2339 1

原创 Trino安装

一、安装配置官网下载包https://trino.io/download.html注意presto对jdk等版本有要求,具体看官方文档上对应要求,目前最新版为359,要求如下:1、jdk11.0.11到12版本之间2、python2.6.x, 2.7.x, or 3.x#解压,解压路径为/usr/install/trino-server-359tar -zxvf trino-server-359.tar.gz#进入trino-server-359 创建etc...

2021-07-12 18:10:01 5897 3

原创 Presto error executing query

早上的时候同事找,说presto查询报error executing query。第一反应是presto集群和presto-jdbc包版本不一致,后续确认一致后,做了以下排除。1、服务器端ping presto机器ip是否通2、telnet presto端口是否通3、jdbc是否设置超时时间4、presto是否设置超时参数(1)确认/presto/etc/config.properties文件下是否有query.max-execution-time、query.max-run-time之

2021-07-06 18:22:43 2999

原创 Presto查询优化(数据分析)

用户:1、大表查询将数据拆分(表数据非实时)(1)如公司内部有人直接上亿甚至几十亿条数据的表(或者几百TB级别的表)直接进行报表制作,这种情况,建议搞个定时任务,每天把要统计的数据放到小表里去,报表制作只查小表。(2)报表数据来自表某个为json的大字段,用户直接用json解析函数获取,这种情况也建议将字段拆分平铺成一张表在进行解析。2、Hive表小文件比较多,导致查询慢。把hive表文件合并性能会大大提高。3、优化sql。系统:1、提供缓存设置,诸如T+1的数据,用户可以设

2021-07-06 15:06:37 2579

原创 can‘t connect to local mysql server through socket ‘/tmp/mysql.sock‘

连接mysql报如下错误:can't connect to local mysql server through socket '/tmp/mysql.sock' (2)网上一系列说该文件丢失什么的都不靠谱,最后发现是mysql根本没启动mac中可以通过页面启动mysql,但是发现怎么启动都不行网上搜了一把mysql启动错误日志也没看到什么错误信息,日志目录:/usr/local/mysql/data/mysqld.local.err最后找到原因是权限问题,解决办法是执行以下命.

2021-06-30 16:50:50 129

原创 hashmap,hashset key相同值是否覆盖

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("apple", "苹果"); map.put("apple", "香蕉"); System.out.println( map.get("apple")); //ParamVO类重写了hashcode和e.

2021-05-28 11:44:36 4513

原创 npm i 执行报错:ssl3_get_record:wrong version number

执行npm i安装依赖的时候报如下错误一开始排查了一堆npm相关的问题,后面在安装nginx时候执行了yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 命令后,居然发现再执行npm i居然可以安装了,所以其实是openssl包的问题,而不是npm源的问题...

2021-05-13 15:14:16 4416

原创 java CAS讲解

CAS(Compare and Swap),本质是乐观锁的概念:有3个操作数,内存值V,旧的预期值A,要修改的新值B。当预期值A和内存值V相同时,将内存值V修改为B。实际应用,浏览器上,多人打开同一篇文章进行编辑,保证最后数据正确:a打开编辑的时候,b也打开了,此时b先进行保存,a再保存,那a会把b编辑的内容覆盖掉。该怎么保证b编辑的内容不会被覆盖呢?引入一个版本的概念,文章的数据是从数据库读出来的,数据库里的版本是1,a打开的时候版本是1,b打开的时候也是版本1,b对数据进行了编辑,版本.

2021-03-30 23:15:39 120

原创 redis缓存失效形式设计思路

用户那边提出了一个关于缓存失效设置的一个需求,要求可以设置整点失效,比如,在每天00:00:00的时候,缓存失效,场景是有些数据是t+1的。 历史系统本来也支持缓存,但是缓存用的是相对时间:当用户获取的时候,先从缓存中取,如果取不到就从数据库取,再放进内存,使用的如下://只缓存一小时,一小时后redis会自动把该key删除,redisTemplate.opsForValue().set(key, value,1, TimeUnit.HOURS); 这...

2021-02-27 15:17:42 234

原创 redisTemplate.delete删除失败

线上发现有缓存清楚失败的情况,线下模拟执行了下,发现redisTemplate.delete(key)返回false,网上查了下,说可能是set和delete用的不一致导致,比如set的时候用的,RedisTemplate<String, String>,而delete的时候用的RedisTemplate,确认在确定两边使用一致后,在delete前get了一下数据,发现是能获取到的。 最终找到的原因是,两边使用序列化不一致导致的,set的时候,使用的StringRedisS...

2021-02-26 13:50:33 12828 1

原创 springboot项目监控prometheu+grafana

目录一、springboot项目配置二、springboot项目接入prometheu三、配置Grafana一、springboot项目配置pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifac...

2020-12-29 16:33:02 181

原创 presto安装注意的一些事项

1、启动presto的时候报如下错误:$ ./launcher runUnrecognized VM option 'ExitOnOutOfMemoryError'Did you mean 'OnOutOfMemoryError=<value>'?Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.原因是在presto

2020-12-22 21:59:43 631

原创 idea antlr4 使用

1、安装ANTLR v4 grammar plugin插件2、建立maven工程pom文件引入 <dependencies> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> <version>4.8-1&.

2020-10-10 18:32:10 2112 2

原创 presto集群内存报警

下午的时候线上机器忽然内存告警,登录机器看了下显示presto进程占用内存特别高按照以往的经验,一般是系统出现某个查询所需内存特别大导致机器报警。然而,登上presto webui界面查询,并无大数据量的查询,也无长时间的超时,甚至那会都没几个用户用presto查询数据。ps了下进程获取到presto日志路径,查看后发现节点已经挂了,但是进程还在。造成该现象的原因还没找到,但最后解决办法是把该节点重启了下,机器内存使用率回复正常。此外,在presto/etc/confi.

2020-09-22 18:13:00 758 3

原创 hdfs图解

hdfs NameNode 保存元数据(HDFS目录结构,文件权限等) Secondary NameNode(非HA) 每小时都会合并fsimage和edits,将合并信息写入到新的的fsimage,减少 NameNode 启动时间 fsimage:存储文件元数据edits:元数据操作变化的信息写入在edits的事务日志文件中 Standby NameNde(HA) 1、实时同步activity NameNod...

2020-09-15 22:28:42 165

原创 问题综合大全

Hive1、java.lang.RuntimeException: Error caching map.xmlCaused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive/zheng/953248bb-587a-4faa-b14a-fa26e6e8b05c/hive_2021-07-16_15-22-57_353_2201885990890795097-1/-mr-10005/c8ef7.

2020-09-15 22:25:20 815

原创 spring security获取用户信息为null或者串值

在spring security,用SecurityContextHolder.getContext().getAuthentication().getPrincipal()获取登录用户的信息,发现获取到的用户有串值现象——获取用户信息,发现获取到的是别人的信息,偶发性还有取值为null的情况。经同事提醒,是不是用了多线程,查到了问题的原因。//原代码ExecutorService executorService = Executors.newCachedThreadPool(new Thread.

2020-09-10 16:00:01 3277

原创 hadoop配置文件说明

2020-09-07 20:47:52 127

原创 yarn执行流程图解

公平调度和容量调度的区别相同:1、支持分层队列,所有队列都从root或者default队列继承2、只能将应用提交到叶子节点3、队列支持最小或最大资源,支持限制队列中最大应用数4、支持抢占不同:容量调度 公平调度 以队列(queue)为单位,每个队列中按fifo方式调度 共用池(pool)的概念,默认作业平分资源,也可自定义队列资源大小,队列中支持fifo,fair,drf三种调度策略 当前容量与配置容量差距最大的作业最先获取资源 通过权重决定作...

2020-09-03 22:59:42 214

原创 presto java.sql.SQLException: Query failed (#20200901_101014_02189_aqhvn): io.prestosql.spi.type.Sho

有同事在查询hive数据的时候报如下错误:最初感觉是类型匹配的问题,但校验了下表字段类型没找到问题,最后重启了presto再次查询,问题没再出现了。再次跟同事确认了下,之前那张表是否删除后又重建过,得到确定回答,确定了原因。之前为了提高表查询性能,在/etc/catalog/hive.properties配置了了如下参数:hive.metastore-cache-ttl=1hhive.metastore-refresh-interval=1h表原始元数据缓存一小时,同事之前创建了表,某

2020-09-01 21:01:45 4365

原创 hadoop yarn公平调度配置

目录一、修改配置文件二、重启yarn三、确认是否已经正确配置四、执行报错查看一、修改配置文件修改/hadoop-3.2.1/etc/hadoop/yarn-site.xml<?xml version="1.0"?><configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>ma

2020-08-31 21:14:05 1090 1

原创 界面化执行spark sql

demo:https://github.com/zheng594/bigdata

2020-08-22 20:48:22 527

原创 mybatis-generator-plugin代码生成

github地址:https://github.com/zheng594/mybatis-generator-plugin生成类:controllerservice:dto:存在小问题是BaseEntity类里的属性在Analyse里会重复生成dao:xml:

2020-08-21 21:49:55 92

原创 寻找hadoop、hive、spark对应版本

一开始装了hadoop3.2.1+hive3.1.2+spark3.0.0,整个安装虽然有一些些jar包版本冲突问题但都解决了,直到写spark-sql的时候执行,sparkSession.sql("……")的时候报了一个类找不到问题,一眼看过去就觉得应该又是包冲突了,然后,从pom.xml引入的包版本冲突开始解决,最后演变成,解决A问题,发现了B问题,又遇到D问题……一种坑越挖越大的感觉。 说白了是因为以前都是用公司搭建好的,自己没有完整搭建过,知道要版本兼容,但还是没找对兼容版...

2020-08-19 23:37:17 13995 2

原创 spark-sql异常整理

执行 sparkSession.sql("select * from test").show(1)时报以下错误第一反应是包冲突,但是在idea里找了下,发现janino包只有一个后面搜了下,是版本兼容问题,到https://mvnrepository.com/artifact/org.codehaus.janino/janino搜了一圈,换了最新版本还是不行,有点懵逼不知道到底该用哪个版本,后面忽然想到/spark-3.0.0/jars目录下有这些包。改成如下,问题完美解决...

2020-08-18 22:22:08 350

原创 部署启动spark sql、thrift server

提前装好hadoop,hive,spark on yarn参考https://blog.csdn.net/zheng911209/article/details/105498505复制这几个文件到spark的conf目录cp /hadoop/hive-3.1.2/conf/hive-site.xml /spark-3.0.0/confcp /hadoop-3.2.1/etc/hadoop/core-site.xml /spark-3.0.0/confcp /hadoop-3.2.1/.

2020-08-13 22:12:15 1337

原创 mac idea注册码invalid&重装打不开

网上下载了idea破解的jar,输入注册码后提醒注册码invalid,卸载了重装后发现idea打不开了,最后发现两个问题都是同一个问题,idea没卸载干净导致有多个idea.vmoptions执行:sudo find / -name idea.vmoptions搜索下有没有多个idea.vmoptions,有多个就把没用的那个删了,如果要重装就全部删了再重装...

2020-08-12 11:59:21 526

原创 spring跨域(iframe访问页面)

线上B系统通过ifram的方式嵌入B系统的页面,结果报如下错误最初网上查询得到的办法是加了如下过滤器@WebFilter(filterName = "/corsFilter", urlPatterns = {"/*"})public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain c

2020-08-05 16:31:06 873

原创 hadoop yarn和node yarn冲突

执行yarn install 报找不到命令,原因是电脑上装了hadoop,当成hadoop的yarn命令在执行,网上找了一圈方法,将node命令加个软连接取别名之类的都不管用,最后解决办法是执行yarnpkg, yarn install命令等价yarnpkg install...

2020-07-28 21:26:18 1309

界面话模拟生产者消费者模式java

界面化模拟生产者消费者模式,生产者生产数据数量和消费者消费数据数量可自定义输入,仓库内最大数量和最小剩余量以及生产者每次生产数量和消费者每次消费数量都可以自定义输入

2014-05-18

空空如也

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

TA关注的人

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