- 博客(1008)
- 收藏
- 关注
原创 spark性能调优 | 内存优化
发现1.7g直接变成了270m,优化还是挺大的!我们转成rdd去跑任务,看看内存占有多大。我们也可以去excutor看内存大小。显示红色,是因为我写了while循环。在公司尽量不要写rdd(性能不好)Ds会专门使用自己的偏码进行序列化。我们还可以进行序列化(变化不大)我们需要看看rdd的缓存级别。进行优化之后33.9M。使用序列化的缓存级别。
2023-11-16 15:04:36
729
原创 Spark资源规划-资源上线评估
每个 node 的 executor 数 = 单节点 yarn 总核数 / 每个 executor 的最大 cpu 核数考虑到系统基础服务和 HDFS 等组件的余量,yarn.nodemanager.resource.cpu-vcores 配 置为: 28,参数 executor-cores 的值为:4,那么每个 node 的 executor 数 = 28/4 = 7,假设集。该参数值=yarn-nodemanager.resource.memory-mb / 每个节点的 executor 数量。
2023-11-16 14:53:29
956
原创 一文看懂Spark中Cache和CheckPoint的区别
缓存是将数据保存在主机磁盘/内存中,如果服务器宕机数据丢失,需要重新根据依赖关系计算得到数据,需要花费大量时间,所以需要将数据保存在可靠的存储介质HDFS中,避免后续数据丢失重新计算。看下面代码会打印多少条-------------------------(RDD2) 使用了CheckPoint。看下面代码会打印多少条-------------------------(RDD2) 使用了Cache。看下面代码会打印多少条-------------------------(RDD2)1.数据保存位置不一样。
2023-11-16 13:28:04
956
原创 spark与scala的对应版本查看
https://mvnrepository.com/artifact/org.apache.spark/spark-core总结
2023-11-15 13:39:26
2157
原创 IDEA没有Add Framework Support解决办法
我们要点击一下项目,再按快捷键ctrl+k 即可。点击File—>Settings。点击apply和ok即可。点击第一个设置快捷键。
2023-11-15 13:35:08
1656
1
原创 Hive的安装部署
Hive默认使用的元数据库为derby并且部署方式是内嵌式,在开启Hive之后就会独占元数据库,且不与其他客户端共享数据,如果想多窗口操作就会报错,操作比较局限。2)将/opt/software/目录下的apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面。3)启动hive服务(这里需要考虑元数据的访问方式,如何使用元数据服务的模式,需要提前开启元数据服务)(跨网络跨语言跨平台)1)执行/bin目录下的hive命令,就可以启动hive,并通过cli方式连接到hive。
2023-11-15 10:43:29
284
原创 弱类型和强类型自定义UDAF函数
*** 自定义弱类型UDAF函数* 1.创建class继承*//*** 指定UDAF函数的参数类型【自定义avg函数,针对的参数是age,类型是Int类型】* @return*//*** 指定中间变量的类型【求一组区域的平均值,需要统计总年龄和人的个数】(因为最后要年龄除以人数才是平均年龄)* @return*//*** 指定UDAF最终计算结果类型* @return*//*** 一致性的执行* @return*//**
2023-11-15 10:11:56
265
原创 Linux shell中2>&1的含义解释
- 标准输入0:从键盘获得输入 /proc/self/fd/0 - p标准输出1:输出到屏幕(即控制台) /proc/self/fd/1 - p错误输出2:输出到屏幕(即控制台) /proc/self/fd/2
2023-11-09 15:41:46
181
原创 PostgreSql中解析JSON字段和解析TEXT中的JSON字段
其实和解析JSON字段一样我们只需要加上::json。查询使用->操作符,查询json中所有顾客作为键。下面使用->>操作获取所有顾客姓名作为值。根据json对象的key查询值。
2023-11-09 15:04:46
1365
原创 PostgreSQL--如何计算2个日期的秒数差值
extract函数格式:extract函数是从日期或者时间数值里面抽取子域,比如年、月、日等。source必须是timestamp、time、interval类型的值表达式。field是一个标识符或字符串,是从源数据中的抽取的域。
2023-11-09 14:12:11
1161
原创 Entering emergency mode. Exit the shell to continue.Type “.journa lctl“ to view system logs . You mi
【代码】Entering emergency mode. Exit the shell to continue.Type ".journa lctl" to view system logs . You mi。
2023-11-08 19:59:16
550
1
原创 redisTemplate不支持zpopmax,解决方案使用reverseRangeWithScore
在redis客户端可以使用zpopmaxredisTemplate不支持zpopmax。
2023-11-08 16:49:22
469
原创 SpringBoot不同环境加载不同配置文件(dev,sit,uat)
我们在使用spring的时候,一般都会有不同的环境需要部署:开发环境、测试环境和验收环境,而不同的环境则会有不同的配置,比如数据库ip。DEV环境:DEV顾名思义就是develop,即代码开发的环境。SIT环境:System Integration Test系统集成测试,开发人员自己测试流程是否走通。UAT环境:User Acceptance Test用户验收测试,由专门的测试人员验证,验收完成才能上生产环境。
2023-11-08 14:17:20
1122
原创 MobaXterm配置SSHTunnel
本地与远程服务器之间存在防火墙,防火墙只允许SSH端口通过,为访问远程服务器,我们可以借助MobaXterm来与SSH服务器建立隧道,使得防火墙外的用户能够访问远程服务器。
2023-11-08 10:59:17
1544
原创 org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate root
hadoop.proxyuser.xxx.hosts和hadoop.proxyuser.xxx.groups中的xxx设置为root(即你的错误日志中显示的User:xxx为什么就设置为什么)。“*”表示可通过超级代理“xxx”操作hadoop的用户、用户组和主机。设置主机代理,为hadoop安装目录下的core-site.xml添加如下配置。
2023-10-26 11:27:50
412
原创 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
启动hive,查询时报错通过控制台的异常信息我们可以知道Hive的metadata服务未开启导致的。
2023-10-26 11:21:07
172
原创 org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.
重复启动了hive服务器进程,jps查看发现有RunJar进程存在,kill掉他即可。
2023-10-26 11:12:01
662
原创 Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the “BONECP“ plugin to cre
解决思路:一般这种框架,在启动的时候都会去加载相应的jar包和配置文件,比如hadoop、hive、spark、zookeeper等等,他们默认加载的jar包都会有一个稍微固定的文件夹的,你可以去他们的安装路径里面找一下,我相信你能找到的。操作办法:你需要把hive里的这个mysql驱动,拷贝到spark默认加载的jar包路径里去,再重启一下应该就可以解决了。我启动kyuubi(基于spark)
2023-10-25 11:10:58
880
原创 解决 No package *** available. Error: Nothing to do
【代码】解决 No package *** available. Error: Nothing to do。
2023-10-24 16:22:47
786
原创 mount: /dev/sr0 is write-protected, mounting read-only
将 user_name 替换为您的用户名以获取您的 uid 然后执行此命令。将 your_uid 替换为上面找到的用户的 uid。只有只读权限,没有写权限。在终端中执行以下命令。
2023-10-24 15:55:54
4398
1
原创 hdfs dfsadmin -safemode无法退出安全模式
如提示Safe mode is OFF,那就说明退出成功,但有时候这个命令也没办法退出安全模式,就需要使用强制退出。forceExit 强制退出安全模式。safemode 后面可以接。get 获取安全模式的状态。wait 等待安全模式结束。第一种:正常退出安全模式。第二种:强制退出安全模式。enter 进入安全模式。leave 退出安全模式。
2023-10-20 17:31:37
942
原创 MySQL在线修改表结构-PerconaTookit工具
由于 alter table 线上修改表结构有诸多弊端,但是 PerconaTookit 提供了一个开源的线上修改表结构的工具。在执行前还需要修改下密码认证方式,因为该工具不支持 MySQL8 新的默认认证方式,将认证方式改成低版本的方式。其中一个名为 pt-online-schema-change 的工具可以完成在线修改表结构。pt-online-schema-change 是如何做到不锁表修改表结构的?修改完成之后,会在原来表上增加触发器,新的操作数据增删改查都会同步到新的表中,3.同步执行数据拷贝。
2023-10-01 09:27:58
308
原创 The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already installed but they a
这个是由于GPG密钥验证问题引起的。
2023-10-01 09:25:35
2808
2
原创 volatile修饰数组
其实如果不给数组加volatile就永远不会打印“结束”,这种绝对的认为是错误的,volatile保证了其变量及时可见性而不会引起线程安全的问题,就算不加volatile,cpu在空闲的时候也会将array[0]的值从线程缓存刷新到主存,只是while(true)太快了,导致cpu一直没空。记得先去掉volatile修饰。当ThreadB读取array时,因为array的引用被volatile修饰,所以ThreadB对所有变量都会从主内存去获取,当然也就包括array[0]。由此可见打印不出来‘’结束‘’
2023-09-30 10:37:24
489
原创 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘xxx.QRTZ_TRIGGERS‘ doesn‘t exist
这个错报的是在数据库里没有这个表 QRTZ_TRIGGERS ,其实数据库中有的是 qrtz_triggers。区别在于一个是大写,一个是小写。默认情况下,mysql是区分大小写的,所以为了避免这种问题,就需要把mysql的区分大小写的属性给修改了。在[mysqld]节点下,加入一行: lower_case_table_names=1。(systemctl restart mysqld):在数据库 中明明有这张表 qrtz_triggers还是报这个错。修改/etc/my.cnf。
2023-09-12 13:50:42
1169
原创 找redis大key工具rdb_bigkeys
将github.com/cupcake/rdb的项目fork到自己的github账户下,只需要在github上对应项目界面点击fork按钮集合。注释630-634行,然后提交变更,这里我感觉这里的version校验没有任何意义,所以这里接直接注释了,如果你有更好的办法也可以自己改。每列分别为数据库编号,key类型,key名,key大小,元素数量,最大值元素名,元素大小,key过期时间。rdb-bigkeys 在高版本的 rdb文件不能使用,我的redis 6 报错不能分析。将go添加到环境变量。
2023-09-02 15:52:40
1534
原创 Rabbitmq延迟消息
只是在某一个设置Dead Letter Exchange的队列中有消息过期了,会自动触发消息的转发,发送到Dead Letter Exchange中去。对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单独的设置。我们创建一个队列queue.temp,在Arguments 中添加x-message-ttl 为5000 (单位是毫秒),那所在压在这个队列的消息在5秒后会消失。一个消息在满足如下条件下,会进死信路由,记住这里是路由而不是队列,一个路由可以对应很多队列。如何保证消息幂等性?
2023-08-14 15:13:06
1192
原创 Rabbitmq消息不丢失
有时,业务处理成功,消息也发了,但是我们并不知道消息是否成功到达了rabbitmq,如果由于网络等原因导致业务成功而消息发送失败,那么发送方将出现不一致的问题,此时可以使用rabbitmq的发送确认功能,即要求rabbitmq显式告知我们消息是否已成功发送。有时,消息被正确投递到消费方,但是消费方处理失败,那么便会出现消费方的不一致问题。由于消息队列是公共模块,我们把mq的相关业务封装到该模块,其他service微服务模块都可能使用,因此我们把他封装到一个单独的模块,需要使用mq的模块直接引用该模块即可。
2023-08-13 20:55:21
3817
原创 Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 59
报错原因:服务器版本和项目的jdk版本不兼容 改为jdk1.8即可。
2023-08-13 20:24:56
402
原创 Redis分布式锁改造获取sku信息
对这段代码进行改造(mysql改造成redis分布式锁)首先选中方法里面的代码ctrl+alt+m抽取出来。
2023-07-05 16:23:07
255
原创 什么是倒排索引
select * from hotel_table where hotel_name like '%公寓%';无法使用数据库索引,需要全表扫描,性能差搜索效果差,只能首尾位模糊匹配,无法实现复杂的搜索需求无法得到文档与搜索条件的相关性搜索的核心目标实际上是保证搜索的效果和性能,为了高效的实现全文检索,我们可以通过倒排索引来解决。正排索引:是以文档对象的唯一 ID 作为索引,以文档内容作为记录的结构。
2023-07-05 16:21:41
613
原创 java.lang.ClassCastException: java.lang.Object cannot be cast to com.donglin.gmall.model.product.Sku
解决方案:先向上转型,再向下转型。
2023-07-04 16:21:04
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅