- 博客(25)
- 收藏
- 关注
原创 Tomcat部署,升级,配置文件,执行脚本的记录
tomcat应该是java程序员经常遇见的,最近也在通过war包来部署项目,遇到了一些问题,开个帖子把一些问题和配置总结记录一下。进入到官网,左侧download选择自己要下载的大版本。点击之后进入到页面,点击页面上上的“Archives”,再选择对应的小版本,之后就可以下载了。
2024-06-21 10:50:43
888
原创 spark+hive执行时报java.lang.OutOfMemoryError:GC overhead limit exceeded
GC出问题了,整体上就要从两个方面去考虑,一是自己写的程序代码是不是有问题,由于我这里的代码很简单,只是见到的执行了一个sql,而且sql没有更好的优化方案了,所以排除了程序代码的问题;二就是相应的内存是不是给的少了,因为这里要处理的表的数据量特别大,不是java经常操作的mysql这种数据库处理的量级,所以第一时间去看了spark-shell的执行脚本里的一些配置,也从网上百度了一些博客,有的告诉调整executor-memory的大小,我试了没有效果,后来是看到了另一篇博客告诉。
2024-04-09 08:50:11
727
原创 Spark简单了解
目前的项目中有涉及到Spark,所以在网上简单了解了一下,然后在自己的虚拟机上简单实现了目前项目上使用Spark的流程。介绍了使用外部表关联的方式通过hive sql的方式将hadoop中的数据同步到了hbase中,因为目前java有相关的API可以访问hbase,并且查询hbase的速度应该是比操作hive更快。
2024-03-18 15:20:50
916
原创 hive中的数据同步到hbase
hive中我也都创建好了表,其中t_gdp是原始数据表,tmp_gdp_table是和hbase中gdp表关联的外部表,我这里因为只是一个简单的示范,只是将t_gdp表中的数据insert到了tmp_gdp_table表中,正常的业务中,可能是查询了多个表,通过sql处理将数据存到tmp_gdp_table中,然后通过外部表映射的方式同步到habse的gdp表中。好了,想介绍的都说完了,我下面的操作都是基于自己电脑上的虚拟机,不是集群的操作,虚拟机上启动habse,hadoop,和hive。
2024-03-13 09:35:56
1241
2
原创 maven打包遇到的几个问题
解决完第一个问题之后,紧接着继续打包报了这个错,一看就是jdk配置的问题,但是java的环境我早就安装过了,cmd打开,java -version,显示的都没问题。网上大概看了一下其他人的博客,问题出在这里,安装java的时候现在可以不用自己配置java环境,一样可以使用。这里可以看到配置java环境的时候其实配置了tools.jar这个jar包了,那是不是第一个错误也是因为java环境没有配置导致的呢,试了一下,竟然还报原来的错误,重启idea解决(重启大法)。记录一下,希望帮助到你。
2024-02-21 14:30:05
475
原创 虚拟机安装单机hive以及简单使用hive
hive是我打算了解的有一个大数据方面的一个技术栈,上一篇介绍了Hadoop和hbase,有兴趣的朋友可以点击“文章”浏览,今天要介绍的hive也是要基于hadoop的,安装hive也要提前安装好hadoop。刚了解这块的朋友肯定就会疑问这三者之间的关系是什么呢,从我这段时间对它们的简单了解,我的理解是,hadoop是根本,它通过分布式存储,分布式计算的方式从而提供了存储,处理大数据量的能力。
2023-12-04 16:48:18
1199
原创 虚拟机安装hadoop,hbase(单机伪集群模式)
工作中遇到了大数据方面的一些技术栈,没有退路可言,只能去学习掌握它,就像当初做爬虫一样(虽然很简单),在数据爆发的现在,传统的数据库mysql,oracle显然在处理大数据量级的数据时显得力不从心,所以有些特定的业务需要引进能够处理大数据量的数据库,hadoop提供了分布式文件系统(HDFS)来存储数据,又提供了分布式计算框架(mapreduce)来对这些数据进行处理,另一个hadoop的核心组件是yarn,我的理解它是一个任务调度平台。
2023-11-28 13:09:53
1375
2
原创 Nginx配置文件详解
nginx在项目会经常用到,nginx的主要配置文件是nginx.conf,今天主要梳理一下这个文件都可以配置什么参数,以及这些参数起到什么作用。这个大概看了几眼,写的很详细,有时间可以学习了解一下。1.支持高并发,高性能2.支持热部署3.开源,而且应用广发,相关技术文档很多。还有很多优秀的特点,官网上可以看到,给我的感觉就是这几点1.静态资源服务器,动静分离,一些项目上要展示的图片,不需要走后端调整,那就可以放到nginx上,请求过来直接返回。
2023-11-24 14:28:35
920
1
原创 java项目代码优化
(10)String,StringBuffer,StringBuilder,如果存在字符串拼接的情况尽量使用StringBuilder和StringBuffer来进行,这样不会产生新的对象,此外StringBuffer是线程安全的,同样内部实现采用了同步机制,StringBuilder是线程不安全的,效率更高,使用StringBuilder和StringBuffer尽量确定大小,默认是采用一个大小16的字符数据来存储字符串,超过这个长度之后会产生数组的复制等操作。静态变量,实例变量在堆中生成,相对较慢。
2023-11-23 14:49:15
63
原创 Linux服务器上Java环境的安装与卸载
最近装了虚拟机打算安装一下hadoop,由于它是java写的,所以要先安装java环境,在windows环境下安装过很多次,linux下也安装过,没觉得有什么问题,哪知道这次就遇到了一些问题。记录一下,增加一下印象吧!
2023-11-16 16:52:11
168
1
原创 tar (child): gzip: Cannot exec: No such file or directory
除了上面博客中说的可能是linux系统缺少gzip命令之外,也可以将这个压缩包移动到当前用户的目录下,例如/home/paulgreen。
2023-11-14 10:22:47
381
1
原创 SQL(合并表中多个字段)
一个select就可以看成是一个临时表么,在这张临时表上去实现上面的要求就清晰多了,要用到group by,但是group by连接不能直接用concat_ws()函数,将group by产生的同一个分组中的值连接起来,返回一个字符串可以用group_concat()函数。group_concat不指定分隔符的话,默认是逗号分隔,mysql是支持,oracle我也不清楚是否支持,我这次是hivesql,还是用的concat_ws()实现的,hivesql是这样concat_ws(“;
2023-11-08 17:03:30
197
1
原创 SQL表关联-一对多的表关联
取这个标题有点犹豫,感觉描述的不准确,直接看表数据就好理解:A表:B表:这表格有点不会弄,哈哈,现在要做的就是A表关联B表,通过A.b_id和B.id来关联,正常情况下通过一个字段来关联直接“=”就可以,但是这里B表的id字段存在A表中是一个字符串,就是我这次遇到的需求,在网上找搜了一个find_in_set(str,str数组)这个函数,那篇博客里说的是在mysql里可以通过这个函数实现表关联,大概是这样的sqljoin B。
2023-11-03 15:07:53
185
原创 jar包冲突(jackson-databind)
可以看到这个错误是jar包冲突中经常会出现的一个错误,首先想到的肯定是去代码里找一下AnnotationIntrospector这个类里有没有findPropertyIgnoralByName这个方法。
2023-10-24 15:24:09
505
原创 jar包升级以及依赖冲突解决思路(小白入门级)
最近工作接了一个坑,要做一个项目的组件版本升级,就是maven项目通过pom.xml文件管理的jar包,之前没有过这方面的工作经验,在这里记录一下遇到的问题,以及自己简单的经验。1.第一步肯定是要去maven仓库里找到自己要升级的版本了,可能是指定你升级到哪个版本,或者是让你做一些漏洞升级,没有给你指定版本,这就更要去仓库里找到自己需要的版本号了。。在这里直接搜自己想要查找的jar即可。2.找到自己需要升级的jar包版本之后,肯定是要把目前项目里的jar包版本给删掉,这里推荐一个idea插件,。
2023-10-18 15:36:11
3294
1
原创 jar包冲突及jar包版本升级
最近需要对项目中的一些jar包进行版本升级,之前接触这方面相对较少,记录一下以加深印象。首先推荐一个idea里的插件:file -> settings–>plugins,在这里直接搜Maven Helper:然后直接installed安装即可,安装完这个插件之后pom.xml文件下面对多一个tab:大概就是这个样子,具体操作需要自己简单摸索一下就熟悉了,conflict是存在冲突的jar包,选中对应jar包之后右侧会出现各个版本,右键exclude就可以排除你不想要的jar包。
2023-10-11 16:29:16
648
1
原创 通过命令行(cmd)查询电脑连上的WIFI密码
偶尔会遇到需要查看电脑WIFI密码的情况,今天在网上学到了用命令行来查密码的方式,记录下来,加深自己的影响。win + r 打开命令行,输入cmd效果如下:效果如下:红框圈起来的地方就可以看到这个WIFI的密码了。
2023-10-11 14:54:53
1619
1
原创 openIM本地搭建遇到的问题
官方文档里有快速部署和源码部署,快速部署就是使用docker-compose一键部署,当然这个需要了解一些这方面的知识,源码部署就需要自己手动安装需要的组件,kafka,mysql,MongoDB,etcd,redis。在日志里一直在报这个错误,可以看出来是kafka的问题,我没有用过kafka,所以不是很熟悉,第一时间肯定想到去百度,相关的博客有很多,跟着弄了,但是都不能解决,最后还是在官方的技术交流群里一位大佬的提示下,想到了单独启动kafka看看有什么报错信息。
2023-06-15 16:13:21
1582
5
原创 dubbo-基于zookeeper的服务发现源码浅析
这篇文章只是分析到这里,后面还可以继续跟下去的。上面这几张贴图是spring进行bean记载的时候的一些主要方法,看这个还是需要一些spring源码的基础,最后一张贴图可以看到,使用到了上文说的ReferenceAnnotationBeanPostProcessor这个bean的后置处理器的相应方法来进行bean的处理,这个是Task这个bean的加载过程,因为这里是依赖注入,所以会插进来DemoService这个bean的加载过程,和上面的贴图基本一致,至于依赖注入的过程需要自己了解一下了。
2023-05-29 09:25:30
288
1
原创 dubbo-服务注册过程源码
看源码其实我觉得主要有这几个好处,一个呢提高自己看代码的能力,这个挺重要的,有的时候你接手一个项目,可能就需要去看其他人的代码了,再一个能加深自己的印象,不容易忘记吧,其他的你说学习dubbo框架里的一些设计模式啊,一些架构什么的,还没到那个层次,这里面可以看到spring的监听者模式,就被dubbo用上了,通过监听时间完成了服务的注册,包括双重检查锁(DCL),这个过程中也有体现,也可以让自己看到学的其他的知识点在这里体现,发现了也算是个乐趣吧。不多说跟过去之后,如图。
2023-05-25 15:06:48
161
1
原创 docker(1)
docker目前我了解的有镜像,容器,镜像仓库这几个概念,镜像类似一个类,容器是这个类的实例对象,而镜像仓库是下载这些类的地方,镜像就是各种软件的安装,一般可以在镜像仓库里找到,然后通过docker来进行安装,这省去了很多麻烦。首先就是安装docker,docker依赖于linux内核,所以我直接在我的虚拟机上安装了,没有安装到本地。科大镜像:https://docker.mirrors.ustc.edu.cn/阿里云:https://.mirror.aliyuncs.com。
2023-05-23 16:28:17
107
1
原创 Dubbo(1)
我这个不是教程,是记录学习,简单说下需要的环境,我是弄了个VMWare虚拟机,上面安装java环境,zk伪集群,用来做dubbo的注册中心,也可以在本地(windonws环境)安装zk的伪集群,看自己,都可以。其中name属性用来在zk的节点上展示该节点,qos-enable属性是dubbo的一个心跳检测机制,因为我是本地起多个应用,所以开启这个心跳检测会导致出现端口占用的错误,所以关掉了。今天,准确说是昨天打算开始系统的了解学习阿里的dubbo,就从官网文档和官网上的实例代码入手,废话少说。
2023-05-19 10:23:20
58
1
原创 开篇-五年的工作总结与接下来的的学习方向
第三种接触到的就是微服务的方式,这个也是接下来我要学习的,所以放到最后写。那我说一下我对这几种方式的浅薄理解,首先mq和另外两种的不同就是它是异步的,其他两种我理解都是同步的,消息队列本来的优势就是异步,解耦,削峰,在这里也是存在的。微服务的方式不仅支持http协议,它还支持其他的协议,tcp/ip协议,《网络协议》,大学里本专业的应该有这门课,tcp是传输控制层的协议,是更底层的协议,底层的东西的特点就是效率高,理解起来难一些,就像C语言和java,但是难的东西也可能就是价值所在啊。
2023-05-19 09:50:45
51
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人