自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

格格颜心

优秀是一种信仰。

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

原创 如何用VisualVM工具查看堆内存文件

1.找到安装JDK的bin目录,找到 jvisualvm.exe可执行文件运行即可;2.然后导入堆内存文件 .hprof文件,看类;3.分析是哪些对象占了多少内存。

2024-03-05 15:10:10 374

原创 Google murmur3 hashString用法

评估了下,murmur3最高用的是128位的hash值,加上hash碰撞算法,基本千万级以内的数据是不会冲突的。可是我们的场景是亿级,还是有一定的可能性,但是flink并行度设置为32的话,分到32个机器上的话,概率又会低一些,所以综合下来hash冲突的概率极低。具体是否会冲突,还需要程序跑出来和原String的状态产出的数据做对比。如下为将String获取hashcode,转为Long的方法,主要是在海量数据的flink程序里,为了节省状态的存储空间,所以尝试用long来存储。

2024-01-24 15:19:54 513

原创 Spark读取iceberg表进行处理后写入hdfs

Sparksession,SparkSQL真香,比RDD,dataframe好写多了。当然,也可以直接按后面的df直接写。

2024-01-23 10:49:02 367

原创 Spark解析JSON文件,写入hdfs

3.write时,一开始打算写text,说字段里不能含有long和int,换成string后,说不能有多个字段,只能有一个string。刚好用parquet存储省空间,就存parquet了。一、用Sparkcontext读入文件,map逐行用Gson解析,输出转成一个caseclass类,填充各字段,输出。2.转dataframe时,还得一个一个字段显化才能转成dataframe;1.直接saveAsTextFile没有覆盖true参数;解析JSON这里没有什么问题。caseClass如下。

2024-01-22 17:54:01 630

原创 flink内存配置

flink内存配置

2023-12-28 17:03:31 873

原创 flink的三个state backend的选择

flink的三个状态。

2023-12-28 16:42:56 679

原创 关于一次java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.Object;的解决

事实上,数组比如String[] 或者otherClass[] 可以被转成父类 Object[],但是ArrayList不可以。String[]里传的是一个数值,ArrayList里传的是一个对象。这就不得不说一下 String[] 和 ArrayList的区别。报错看起来是需要一个 [Ljava.lang.Object;

2023-05-30 13:22:29 1831

原创 Flink消费pubsub问题

我看网上flink消费pubsub的资料并不多,最近跑通了,大家有问题的可以给我留言。(鉴权方式和反序列化方式后面会讲)3.credential鉴权方法需要先有含有鉴权信息的JSON文件(谷歌授权)然后有两个方法选一个可以实现

2023-05-17 10:36:27 892 5

原创 流式作业如何保证真正的精准一次消费

当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。3. sink 连接器收到 barrier,保存当前状态,存入 checkpoint,通知 jobmanager,并开启下一阶段的事务,用于提交下个检查点的数据。需要构建事务来写入外部系统,构建的事务对应着 checkpoint,等到 checkpoint 真正完成的时候,才把所有对应的结果写入 sink 系统中。所谓幂等操作,是说一个操作,可以重复执行很多次,但只导致一次结果更改,也就是说,后面再重复执行就不起作用了。

2023-05-10 15:38:17 699

原创 flink的datastream基本转换

2023-04-06 14:15:28 396

原创 详细讲解零拷贝机制的进化过程

其中2次数据拷贝都是DMA拷贝,这就是真正的零拷贝技术,全程都没有通过CPU来搬运数据,所有的数据都是通过DMA来传输的。sendfile实现的零拷贝,IO发生了两次用户空间与内核空间的上下文切换,以及3次数据拷贝,其中3次数据拷贝中,包括了2次DMA拷贝和1次CPU拷贝。有的,即带有DMA手机拷贝功能的sendfile。(mmap是将读缓冲区的地址和用户缓冲区的地址进行映射,内核缓冲区和应用缓冲区共享,所以节省了一次CPU拷贝,并且用户京城内存是虚拟的在,只是映射到内核读缓冲区,可以节省一半的内存空间。

2023-03-08 19:46:32 488

原创 Java的serialVersionUID

Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传入的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,可以进行反序列化,否则就会跑出序列化版本不一致异常。然后在创建一个类时,如果实现了Serializable接口,或者继承是实现了Serializable接口的父类,然后在类名上alt +enter,就可以自动生成。

2022-12-13 17:50:25 4029 1

原创 iPhone14 /ios16不能使用蜂窝网络(浏览器提示“未激活蜂窝数据网”)

iPhone14 /ios16不能使用蜂窝网络(浏览器提示“未激活蜂窝数据网”)设置方法:设置->蜂窝网络->蜂窝数据网络->APN。是这里出错了,从网上查到对应运营商的APN值,填上就好了。

2022-11-07 11:36:53 8695

原创 关于我的IDEA工程每次刚建好都不能new Scala文件的解决方法

一、刚建的工程没有新建-Scala的问题二、明明正确的类的方法却在build时报错的问题

2022-10-17 17:10:37 938

原创 java.lang.NoClassDefFoundError: scala/math/PartialOrdering$class --jar包冲突如何识别和解决

首先,要能识别这是jar包冲突的问题,碰到NoClassDefFoundError或者NoSuchMethodError,基本就是jar包冲突的问题了。jar包冲突是我们工程开发中常见的问题,可以用以下的方法解决:1.定位冲突的jar包位置:2.找到冲突之后,该如何解决冲突呢方法一、排除掉冲突的版本,只保留一个最合适的版本:方法二、用maven-shade打包

2022-09-23 19:42:54 1243

原创 Multiple sources found for parquet 错误解决

解决:org.apache.spark.sql.AnalysisException: Multiple sources found for parquet (org.apache.spark.sql.execution.datasources.v2.parquet.ParquetDataSourceV2, org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat)

2022-09-20 20:39:01 1278

转载 org.apache.flink.table.api.ValidationException: Could not find any factory for identifier ‘doris‘ th

org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'doris'打包时需要将多个构件中的class文件或资源文件聚合。资源的聚合需要shade插件提供了丰富的Transformer工具类。

2022-08-01 20:16:51 2887

原创 键盘空格键的安装

要注意白色帽是有一边长一些的,长的一边与键盘上铁丝开口的方向在一边。

2022-04-29 10:24:08 27053 1

原创 shell exit 1退不出问题

在执行到某个条件的时候,需要让他异常退出,终止脚本运行,可是发现exit 1 并不能成功。原因:因为只是退出了子进程。解决方法:多次exit 1直到退出到自己需要的那一层。何时进入子进程:我当时是管道,也有别的情形。即 | 符号,我当时用了两个。排查方法:打印当前进程号 echo $bashpid踩过的坑:一开始以为是循环的问题,专门写了个双重循环,测试了下发现不是。以为是if的问题,发现也不是。...

2022-04-13 17:37:46 3575

原创 spark读取parquet文件

1、进入spark-shell窗口2、val sqlContext = new org.apache.spark.sql.SQLContext(sc)3、val schema= sqlContext.parquetFile("hdfs://cdp/user/az-user/sparkStreamingKafka2HdfsData/part-00000-ff60a7d3-bf91-4717-bd0b-6731a66b9904-c000.snappy.parquet")hdfs://cdp

2022-03-30 17:54:25 3990

原创 spark参数调优各参数的含义

最近任务在大量shuffle时,发现了shuffleread时候特别慢,查了相关的参数做一下记录。spark.reducer.maxSizeInFlight默认值:48m 参数说明:该参数用于设置shuffle read task的buffer缓冲大小,而这个buffer缓冲决定了每次能够拉取多少数据。 调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如96m),从而减少拉取数据的次数,也就可以减少网络传输的次数,进而提升性能。在实践中发现,合理调节该参数,性能会有1

2022-03-18 11:45:46 724

转载 Flink编程套路

1.创建运行环境flink提供了两种创建环境的方式:DataStream(数据流) 和 DataSet(数据集)//DataStream 数据流StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//DataSet 数据集ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();2

2021-12-27 19:49:31 99

原创 Maven记录

1.maven项目老是提示找不到包,可是明明包都存在1)试着删除了reponsity文件夹里的的所有内容,重新mvn package还是不行,2)检查了下settings 的配置,也是按公司的要求配的,没有问题啊,巨烦3)甚至还将settings.xml改了个名,然后修改IDEA里的配置,还是打包不成功4)终于在某个同事的评论里找到了灵感:原来是我配置Settings.xml的时候,只配置了.m2路径下的,没有配安装的maven下面的settings文件。卧。。。2.排查是否引用了log

2021-12-17 17:44:44 81

原创 doris broker方式从hdfs导入数据到doris

doris从hdfs导入数据的方式,采用broker方式,需要kerberos认证的场景亲测可用欢迎留言提问

2021-11-30 16:51:00 1833

原创 hadoop不同集群之间文件拷贝

hadoop不同集群之间文件拷贝 DistCp用法

2021-11-19 15:40:26 1980

原创 hdfs nameNode的租约管理

namenode对于文件的操作是一次写,多次读。对于写操作需要保持互斥性,就需要用租约来管理。租约是HDFS中一个很重要的概念,是namenod给与租约持有者(leaseHolder,一般是客户端)在规定时间内拥有文件写权限的合同。租约管理器leaseManager保存了HDFS文件与租约、租约与租约持有者的对应关系,租约管理中期还会定期检查它维护的所有租约是否过期。租约管理器会前置收回过期的租约,所以租约持有者会定期检查它所维护的所有租约是否过期,维护对该文件的独占锁定。当客户端完成了对文...

2021-11-07 23:47:14 273

原创 RPC概念理解

一、到底什么是RPC最早的进程是各个进程内部各自完成自己的任务。但是随着发展,有时候需要将B进程的某个方法做成特定的工具类等,本地A进程调用B进程的该方法,于是就产生了IPC(Inter Process Communication本地进程间通信),这就是我们在操作系统里学到的进程间的共享内存的通讯方式。 后来随着分布式系统的出现,这个B进程就可能被搬移到了另一个服务器上,这就是RPC(remote procedure call,远程过程调用)二、什么情况下使用 RP...

2021-10-31 23:32:42 721

转载 MySQL 批量提交确实比单条提交快

public void batchInsertGeneratePlanOrder(List<MRPRequirement> requirementList, Long planParamId, String creator) throws Exception { Connection conn = DriverManager.getConnection(dbUrl, user, password); //将自动提交关闭 conn.setAutoC.

2021-08-09 17:19:03 469

原创 java.lang.NoSuchMethodError: org.json.JSONArray.toList()Ljava/util/Iterator问题解决

编译好的本地Java程序,打包后报这个错误。一开始用的是Java自带的这个json解析工具。<!-- <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180813</version> </dependency>-->里面计算

2021-08-06 17:27:52 1074

原创 【LeetCode】112 路径总和

经典题目:判断一棵树中从根到叶子节点的所有路径中,有没有一个路径和是目标数字。https://leetcode-cn.com/problems/path-sum/给你二叉树的根节点root 和一个表示目标和的整数targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], ...

2021-07-06 18:22:15 60

原创 【LeetCode】 160相交链表

是的,就是这么绝望,做过的题好久不做就又忘了。进入这个领域太晚了,看见那么多大佬已经刷了几百道上千,只恨上学时候没有好好刷。然而种一棵树最早的时间是十年前,其次是现在。就此继续吧。经典的寻找链表相交的开始节点。https://leetcode-cn.com/problems/intersection-of-two-linked-lists/给你两个单链表的头节点headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表.

2021-07-06 17:41:33 56

原创 【leetCode】leetcode 543 二叉树的直径

https://leetcode-cn.com/problems/diameter-of-binary-tree/先说结论:【通过这道题,学到了在一个函数中修改全局变量,在另一个函数中调用那个函数,返回被修改的全局变量值。】题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ ...

2021-07-06 11:50:50 83

原创 Python3 按列更新ES

引入Elasticsearch后,单条或批量写入、删除、查找都不是问题。更新一开始难住了我。后来发现。更新的body里必须有"doc"关键字。#更新的主要点:#1. 需要指定 id#2. body={"doc": <xxxx>} , 这个doc是必须的es.update(index="my_index",doc_type="test_type",id=1,body={"doc":{"name":"python1","addr":"深圳1"}})...

2021-06-03 14:58:09 276

原创 Faust 入门

Faust网上的资料台少了。就萌生了将理解记录下来的想法。最简单的消费一个topic的例子到处都是,这里就不讲那个例子了。直接从原理及对官方文档的阅读的理解一、程序入口app对象:注意...

2021-05-28 19:30:22 685

转载 MAC 下如何更改brew源地址

最近安装kafka时,报各种问题,bolltes找不到文件之类的, 后来反应过来可能是仓库地址的问题,于是,灵机一动,去查找了下如何修改仓库地址。问题解决方案其实这一切的问题是在于我们安装的brew默认repo是官方的repo,出于国内特色原因无法连接;所以使用 Alibaba 的 Homebrew 镜像源进行加速后问题就迎刃而解。平时我们执行 brew 命令安装软件的时候,跟以下 3 个仓库地址有关:brew.git homebrew-core.git homebrew-bo..

2021-05-25 22:27:13 4375 1

原创 【leetCode】4,找出两个有序数组的中位数

方法一、首先直观能想到的是合并两个有序数组,然后找出中间位置的数字,合并两个有序数组有专门的一道题,不难。方法二、接着我们可能会想到,求中位数,只需要找到第K(k为中位数位置)个元素就可以了,没必要合并整个数组。从第一个元素开始,分别对两个逐一遍历,找到第K大的元素,也不难。前两种方法都是O(N)级别的时间复杂度。那么O(logN)级别的怎么计算呢?Log级别只能折半查找。于是就有了重点的方法三。方法三、每次取两个数组各自的第k/2个元素进行比较,扔掉小的那部分,再进行查找。那么为什么不是左右分

2021-05-14 13:32:51 279

原创 hive的left join,条件放在on、whrere里的不同结果(含左右表各种情况)

一、left join中where里放右侧表的过滤条件的后果:将左表满足条件的数据也过滤掉了。原因:在总的where里放的条件是在生成的中间大宽表的结果上做的过滤我亲身经历的一次事故:本意是要过滤各自的数据,然后做左关联,那么左表的数据自然是不希望被过滤掉的,要不然就用join了。但是不理解where条件的执行顺序,将右表的过滤条件也放在里where后面,结果丢失了大量的左表数据,做了次事故报告。涨的姿势:如果要过滤右表的数据,要么放在右表的子查询里,要么放在on里。二、left joi

2021-04-25 12:01:31 2772 1

原创 hive SQL 技巧积累

一、row_number() over(parttition by order by) 里分区字段可以是多个。二、left join的字段可以是两个,其中一个可以是小于不一定都要等于。比如用两个表的时间做筛选,在主键id相同的情况下,可以以一个表的时间做基点,另一个表的时间小于他的做聚合,然后选出最小于他的最大时间。三、多行聚合拼接:按照id聚合group by ,将需要选择合并的字段concat起来,作为你想要存放的字段。1.c是去掉首尾的拼接符号,concat是普通拼接。2.collec

2021-03-16 10:32:07 766

原创 苹果系统降级常识

平常的系统用着太无感舒适了,让我们不会想到升级系统会导致什么问题。小6s在ios13支持更新的时候已经在边缘上了,所以平时都谨慎绷着能不升级系统就不升级系统,谁料上周手残,顺手点了系统更新,更新到了ios14。。。以为是平常的一个操作,谁料这接下来的苦日子就来了。。。!首先是电池极度不耐用,是的,是极度,去年刚换的电池,在ios13的时候还挺耐用的,打几个小时的王者荣耀都不是问题。升级完后,极度发热,耗电。浏览网页都只能浏览一个小时。更过分的是,不能打王者荣耀了!不是进不去登录页面,是排位禁

2021-01-24 17:25:14 2020 5

转载 ES写数据及如何确定分区

一、查看索引信息命令curl -X GET "localhost:9200/_cat/indices/my-index-000001?v&s=index&pretty"2.插入一条数据curl -X PUT "localhost:9200/my-index-000001/_doc/0825?pretty" -H 'Content-Type: application/json' -d'{ "name": "liuzhihang"}'3.一条数据该存放在哪个 s

2021-01-19 20:38:32 4411

西安交大软件学院2017年820考研真题回忆版

这是自己考完研当场回忆的考点。希望学弟学妹们能用得上。 这是自己考完研当场回忆的考点。希望学弟学妹们能用得上。 这是自己考完研当场回忆的考点。希望学弟学妹们能用得上。 这是自己考完研当场回忆的考点。希望学弟学妹们能用得上。 这是自己考完研当场回忆的考点。希望学弟学妹们能用得上。

2018-06-02

空空如也

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

TA关注的人

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