自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

司马班如

明月故里

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

原创 Flink Checkpoint expired before completing解决方法

3.这种方法如果不行,说明是CK过于复杂,需要较多的资源和时间,这个时候,可以考虑修改CK逻辑,使其尽量简便,也可以使用RockDB加快CK的速度。现在回到我们的报错,这个明显是算子的Checkpoint时间超时了,点开CheckPoint节点一看,Checkpoint一直报错。2.延长Checkpoint的超时时间并且把Checkpoint的间隔时间调长一点。在Flink消费Kafka日志的时候出现了这样的一则报错,这个出错的原因主要是:CheckPoint超时导致的。

2024-08-08 19:56:37 608

原创 DBeaver分屏的关闭和打开

在使用DBeaver的时候,无意按到了某些快捷键,导致产生了分屏,这个时候,关闭DBeaver也解决不了问题,只能关闭标签或者重新启动快捷键进行关闭,那么打开和关闭分屏的快捷键是什么呢,我们一起来了解一下。这个时候出现了2个一模一样的画面,而且内容相同。想要打开,则重新按一下这个快捷键则可以实现。

2024-08-06 19:31:24 170

原创 Flink SQL使用Catalog消费Kafka时,多个Source读取同一主题解决方案

当我们在Flink使用Catalog的时候,如何启用不同groupId的消费着消费Kafka数据呢,本文带你详细了解,Catalog 提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。数据处理最关键的方面之一是管理元数据。 元数据可以是临时的,例如临时表、或者通过 TableEnvironment 注册的 UDF。 元数据也可以是持久化的

2022-10-14 18:50:05 1942 1

原创 《基于Apache Flink的流处理》读书笔记

前段时间详细地阅读了这本书,作者是 Fabian Hueske&Vasiliki Kalavri,国内崔星灿翻译的,这本书非常详细、全面得介绍了Flink流处理,并且以气象数据的例子讲解其中的使用,我把其中一些比较重要的句子做了比较,并且分享给大家。

2022-10-11 12:21:51 1332

原创 POI读取Excel表格时遇到科学计数法处理

在使用Apache的POT库读取Excel文档时候,出现了一个问题,就是,读取到的科学计数法时的值和Excel显示的不一样,网上给的做法一般都是使用NumberFormat来对字符进行格式化,但是存在一个问题,就在读取到到的科学计数法的字符串已经不是Excel文档显示的字符串了,所以即使格式化后,读取出来的字符串也是错误的,正确的做法是,把表格的Cell格式设置成字符串,然后再用字符串的方式来读取,如下代码所示:Double d = cell.getNumericCellValue();String s

2022-05-24 10:05:10 2420

原创 React使用TinyMce编辑器

React使用TinyMce编辑器一、效果1.1编辑器界面图1.2 代码页面渲染视图二、详细使用2.1 依赖安装2.2 TinyEditor配置2.3 配置config-overrides.js2.4 配置.babelrc按语言需求加载这个网站刚开始的时候,使用的是CKEditor,但是后面再次使用发现TinyMce Editor更加强大,可用渲染代码,可用预览、全面编辑代码、查看编辑器的HTML代码,所以用TinyMce Editor代替了CKEditor的使用。但是在配置和使用的过程中发现了很多问题,

2022-05-24 10:04:21 2924

原创 Git常用命令和冲突解决方法

Git常用命令和冲突解决方法Git用得比较多的命令是:git clone,git commit,git push,git pull。它们的用法分别为:git clone htpp://192.168.1.1/dataCenter.git 把远程仓库的内容克隆git commit a.txt '注释' 提交a.txt到本地仓库git push 把本地仓库内容同步到远程仓库git pull 把远程仓库内容合并同

2022-05-24 10:03:51 1091

原创 使用jsqlparser获取sql语句所有字段信息

在建表的时候,需要获取表名和字段,有两种方式,自己写正则表达式获取,或者调用现成的库,自己造轮子有点复杂,于是打算寻找有没有开源的库,找了很久后,终于找到了一个开源的jsqlparser,这个开源的库可以获取sql语句所有的信息,包括表名和字段,它的用法是Statement stmt = CCJSqlParserUtil.parse(sql),Statement是一个接口,它根据sql语句可以转化成不同的实现类,如下:不同sql语句对应的操作类型都可以被格式化成对应的实现类,如果sql语句有误的时候,C

2022-05-24 10:03:07 2982

原创 MySQL8.0修改密码以及修改表名不区分大小写

MySQL8.0修改密码以及修改表名不区分大小写一、修改MySQL表名不区分大小写二、第一次修改MySQL密码三、赋予远程登陆权限在MySQL安装MySQL8.0的时候,与MySQL5.7的修改有些区别,我们的需求是先修改MySQL表名不区分大小写,然后再赋予远程登陆权限。一、修改MySQL表名不区分大小写这一步需要在安装MySQL-Server后启动Server前实现,步骤为:1)修改/etc/my.cnf中的变量,添加 lower-case-table-names=12)然后执行初始化命令:

2022-05-24 10:02:30 5485 1

原创 HDFS读取文件源码分析

HDFS读文件的简要代码如下:public static void main(String[] args) throws Exception { InputStream input; OutputStream output; Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://hadoop66:8020"); FileSystem fs = FileSystem.get(conf); ou

2022-05-24 10:01:39 871

原创 java -jar/-cp启动添加外部的依赖包

java -jar/-cp启动添加外部的依赖包启动java主要有两种方式,分别为:java -jar test.jar、java -cp/-classpath test.jar com.main.Test。然后分别讲一下这两种方式启动程序时,如何加载外部依赖的包。为了方便大家理解,首先说一下Java的ClassLoader。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去。我们都知道在Java中程序是运行在虚拟机中,我们平常用文本编辑器或者是IDE编写的程序都是.java格式的

2022-05-24 10:00:48 5785

原创 MySQL登录Access denied for user ‘root‘@‘10.220.1.84‘ (using password: YES) 拒绝访问

在使用JDBC的时候出现:java.sql.Exception:Access denied for user ‘root’@‘10.220.1.84’ (using password: YES),以前也出现过这个问题,这是因为MySQL用户没有授权远程操作权限导致的,需要给MySQL的root用户赋予相对应的权限,具体操作为:1.登陆mysql本地客户端:mysql>mysql -u root -p;2.赋予操作权限:mysql>GRANT ALL PRIVILEGES ON *.*

2022-05-24 10:00:16 978

原创 HDFS写文件之DataNode源码分析

接上一篇文章,DataNode在写文件的时候,是通过写入各种校验码,以DFSPacket的形式写入DataNode,DataNode会进行一系列处理,我简要地画了一个图,来表示DataNode在接收客户端的时候,进行的一系列操作。如下图所示:然后来进行一系列的源码分析1.首先是Client通过new Sender.writeBlock向DataNode来发送写文件请求,DataNode内部有一个DataXceiverServer对象来处理来Scoket请求,每次接收到请求的时候,会创建一个DataXc

2022-05-24 09:59:20 287

原创 Spark启动报错Exception in thread “streaming-start“ java.lang.StackOverflowError

SparkStream提交任务的时候,在客户那里报了一个异常:Exception in thread “streaming-start” java.lang.StackOverflowError,详细的错误如图所示:业务的模型是:先把数据发送到Kafka,然后SparkStream从Kafka中读取数据,就只是在启动的时候报错,经过分析,我们的原因是:第一次批量处理的数据太多,jvm堆栈没有及时回收垃圾,也可能是由于堆栈太小导致的,我们的做法是调整dirver的jvm的参数,如下所示:详细的启动脚本

2022-05-24 09:58:47 447

原创 HDFS写文件之客户端源码分析

HDFS读写文件是一个很重要的过程,然后本篇文章主要从源码角度讲解HDFS读写文件客户端的一系列操作,为了方便大家理解,我画了一张简要的流程图,方便大家理解。一段简要的读写代码如下: public static void main(String[] args) throws Exception { String file = "/test/1111.txt"; Configuration conf = new Configuration(); conf.set("fs.defaultFS"

2022-05-22 21:49:16 266

原创 CDH升级Spark2提交任务异常org/apache/hadoop/fs/FSDataInputStream

CDH集群在启动Spark应用的时候报了一个错误:java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream,详细的错误如下:[root@hadoop60 ~]# spark2-submitException in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apach

2022-05-22 21:48:02 1041

原创 Hadoop源码之创建文件责任链调用

Hadoop源码之创建文件责任链调用在hdfs创建文件的时候,调用FileSystem.create的方法,FileSystem是一个抽象类,具体的实现是org.apache.hadoop.hdfs.DistributedFileSystem,在执行RPC远程调用创建文件的时候,使用了一种设计模式:责任链模式,写的代码特步有技术含量,拿出来分享一下。创建文件的时候,文件路径可能是一个链接,也可能是多个链接,相当于Windows里面的链接或者Linux的link,如下图所示:创建文件时候的Path可能是

2022-05-22 21:47:26 126

原创 eclipse查看源码常用快捷键

eclipse查看源码常用快捷键源码查看工具有很多,比如Understand,Source Insight,我用过Understand,感觉不好用,然后改用Eclipse,用起来还不错,接下来讲一下Eclipse使用的快捷键1.Ctrl + 鼠标左键跳转到类的定义2.Alt + ← / Alt + →返回上个位置/跳转到下一个位置3.Ctrl + Shift + H查找类,如图所示:4.Ctrl + H综合查找5.Ctrl + Shift + G查找方法引用6.Ctrl + T查

2022-05-22 21:46:45 2473 1

原创 Linux常用命令总结

Linux常用命令总结1.vi2.mkdir3.touch4.rm5.mv6.cp7.cat8.more9.less10.head11.tail12.>和>>13.ln14.adduser/userdel/passwd/id/usermod/su15.sudo16.chmod/chown/chgrp17.find18.|管道符19.grep查找20.tar21.gzip/gunzip22.zip/unzip23.df/du24.ps25.pstree26.netstat27.rpm28.w

2022-05-22 21:46:09 348

原创 Hive输入导入导出操作

Hive输入导入导出操作一、导入操作1.1 向表中加载数据(load data)1.2 通过查询语句向表中插入数据(Insert)1.3 查询语句中创建表并加载数据(As Select)1.4 创建表时通过Location指定加载数据路径1.5 Import数据到指定Hive表中二、导出数据操作2.1 Insert导出2.2 把数据文件导出到本地2.3 Hive Shell 命令导出2.4 Export导出到HDFS上Hive表导入导出数据有很多种,分别如下所示:一、导入操作1.1 向表中加载数据(l

2022-05-22 21:45:23 348

原创 js async和await的使用

js async和await的使用在写JS代码的时候,用到了axios请求,但是axios请求是异步的,但是我要同步等待返回的结果,然后在执行下一步操作,这里用到了2次async和await,这两个是成对出现的,一般的写法是:async function(){ await asyncmethod()//执行异步方法调用}关于async和await的解析和使用,这里有几个不错的网址:https://www.cnblogs.com/liquanjiang/p/11409792.htmlhttps

2022-05-22 21:44:36 778

原创 JS多叉树遍历及注意事项

JS多叉树遍历及注意事项在写JavaScript遍历多叉树的时候,遇到了一个问题,调试了好久,原因是在遍历子children的时候,在forEach回调函数里面return,但是那个是回调函数,并不会阻止forEach继续执行,所以返回不了查询的结果,经过修改后递归遍历查找多叉树的JS代码如下:要遍历的数的数据结构为:var data={ name:'test', key:'key1' children:[ {name:'test2',key:'key3',children:[]}, {na

2022-05-22 21:44:05 528

原创 原生Hive的启动和停止详解

原生Hive的启动和停止详解一、Hive启动命令二、命令详解讲解原生的Hive没有提供启动的脚本,需要调用命令来启动和停止,启动用nohup结合hive命令来启动,启动Hive的时候,需要把metastore和hiveserver2一起启动,分别来讲解一、Hive启动命令nohup hive --service metastore > /tmp/hivemetastore.log 2>&1 &nohup hive --service hiveserver2 > /

2022-05-22 21:42:56 6556

原创 Quartz配置文件quartz.properties加载

Quartz配置文件quartz.properties加载前天,同事来问我,quatz任务调度的qurtaz.properties配置文件是如何加载的,项目是老大写的,我没看过代码,于是去翻了一遍源码,终于找到了配置的加载地方,让我们一起来看看吧。首先从org.quartz.Scheduler实例化的地方开始入手,实例化的代码为:import org.quartz.Scheduler;import org.quartz.SchedulerFactory; SchedulerFactory sch

2022-05-22 21:42:22 2036 1

原创 React使用CodeMirror实现SQL输入提示编辑器

React使用CodeMirror实现SQL输入提示编辑器一、编辑器效果1.1 关键词提示效果图1.2 数据库和表格选择提示效果二、具体实现2.1 依赖下载2.2 方案一2.3 方案二今天老大让我把原来的SQL编辑器放到新的平台上,然后我对照原来的编辑器,然后再修改了一下,形成了一个全新的SQL输入提示编辑器,先上图看看效果,然后再详细讲解怎么实现一、编辑器效果1.1 关键词提示效果图1.2 数据库和表格选择提示效果二、具体实现我们的项目主要用到了React+CodeMirror组件,在实例

2021-12-12 15:39:23 4053 8

原创 Hive自定义UDF函数详解

Hive自定义UDF函数详解一、UDF概述二、UDF种类三、如何自定义UDF四、自定义实现UDF和UDTF4.1 需求4.2 项目pom文件4.3 Hive建表测试及数据4.4 UDF函数编写4.5 UDTF函数编写一、UDF概述UDF全称:User-Defined Functions,即用户自定义函数,在Hive SQL编译成MapReduce任务时,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展。二、UDF种类UDF:操作单个数据行,产生单个数据行;UDAF:操作

2021-12-12 15:31:51 16075 1

原创 CDH Hive行级更新操作--实现update和delete

CDH Hive行级更新操作--实现update和delete一、问题出现原因二、CDH详细操作配置2.1 hive --> 配置 --> 搜索 hive-site2.2 修改服务的和客户端的配置一、问题出现原因在Hive表执行update和delete操作时,报如下错误:FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does no

2021-12-12 15:23:19 2521

原创 Hive Create Table和Load DATA详解

Hive Create Table和Load DATA详解一、Hive Create Table详细讲解二、LOAD DATA 测试使用三、内部表和外部表区别Hive在使用创建表的时候,有有一系列的语法,在官网上都有介绍,这里讲解一些重要和常用的语法,在Hive创建好表后,一般是从HDFS LOAD DATA到表中。分别对这两部分进行讲解。一、Hive Create Table详细讲解Hive在创建表的时候一般有几个比较重要的参数,分别为:分区、行格式化、文件存储类型、文件位置,这里以一条简单的语句来

2021-12-12 15:14:27 1821

原创 Windows安装Kerberos

Windows安装Kerberos一、Windows端安装Kerberos二、遇到的问题以及解决在Windows安装Kerberos客户端的时候,按照网上的教程操作了一遍,但是结果却发现与原来的不一样,遇到问题了,花了不少的时间,到后来发现了解决方法,用这篇文章来解析记录一下一、Windows端安装Kerberos正常的做法是,下载客户端msi镜像文件安装,然后配置,我找了几个比较详细的网站,安装上面操作准没错https://www.jianshu.com/p/c4313890ece2https:

2021-12-12 15:05:51 5317 2

原创 KAFKA 拦截器原理和使用

KAFKA 拦截器原理和使用一、Kafka拦截器原理二、Kafka拦截器使用2.1 需求2.2 拦截器实现pom.xml配置TimeInterceptor实现CounterInterceptor 实现InterceptorProducer 主函数方法实现结果查看Kafka拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑一、Kafka拦截器原理对于producer而言,interceptor使得用户在消息发送前以及producer回调逻辑

2021-12-12 14:43:46 608

原创 KAFKA性能测试

KAFKA性能测试一、生产者性能测试二、消费者性能测试Kafka集群提供了一个kafka-producer-perf-test.sh、kafka-consumer-perf-test.sh脚本为生产者、消费者提供性能测试,有一系列的参数,我们的性能测试是基于这两个脚本来进行的,分别来测试一下。一、生产者性能测试$KAFKA_HOME/bin/kafka-producer-perf-test.sh --topic test666 --record-size 100 --num-records 30000

2021-12-12 14:34:49 1270 1

原创 HDFS性能测试

HDFS性能测试一、写数据性能测试二、读数据性能测试三、清除数据Hadoop集群提供一套测试读写HDFS的jar包,jar包在$HADOOP_HOME/share/hadoop/mapreduce目录下,名字为:hadoop-mapreduce-client-jobclient-2.8.5-tests.jar,后面2.8.5为Hadoop的版本号,我们分别来测试其读写,然后再把数据清除一、写数据性能测试hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/had

2021-12-12 14:27:49 1986

原创 Flume Source Intercept Sink插件编写

Flume Source Intercept Sink插件编写一、pom.xml文件配置二、Source插件编写2.1 方式一2.2 方式二三、Intercept插件编写四、Sink插件编写Flume加载插件时通过类名来找到字节码的,只要实现其方法就可以通过类名来加载字节码,然后再实例化生产对象,Flume中的插件都是通过这种方式来实现的,下面分别来讲解Flume中Source、Intercept、Sink的插件编写方式。一、pom.xml文件配置<dependency> <gr

2021-12-12 14:20:22 722

原创 Flume Intercept Selector配置详解

Flume Intercept Selector配置详解Flume配置遇到了一个问题是关于Inteceptor和Selector的问题,这篇文章主要讲解关于Inteceptor和Selector配置。在Flume中,Source,Channel,都可以多对多,也就是,一个Source可以对应多个Channel,一个Channel可以对应多个Sink,但是一个Sink只能对应一个Channel。我给自己描绘了一个比较通俗易懂的图,来讲解一下整个Flume组件的配置。如下图所示:在这里有2个source

2021-12-12 14:10:51 663

原创 CDH Spark2 The CSD version is not compatible with the current

在替换Spark2.1到Spark2.2的时候,按照网上的教程操作了一遍,遇到了一个小问题,启动的时候日志包了一个小错误:The CSD version (2.1.0.cloudera3) is not compatible with the current,耗了一段时间,是关于CSD包的问题。Spark2.1与Spark2.2版本用到的CSD包不一样,我在官网下载,并且在CM节点/opt/cloudera/csd目录替换了,每次启动Spark History Server的时候,都报同样的错误。我找了好

2021-12-06 20:34:21 167

原创 CDH Network Interface Speed Suppress

CDH Network Interface Speed Suppress一、取消警告二、关闭virbr0(未验证)CDH在运行Hadoop的时候包了一个红色的错误,详细为:Check connection of network interface,然后我跑到官网看一下,官网给出了详细地解析,如下:地址为:https://my.cloudera.com/knowledge/Cloudera-Manager-Alerts-at-Low-Network-Speeds–Virtual?id=74544 原因

2021-12-06 20:32:45 571

原创 Kafka选择分区发送数据

Kafka选择分区发送数据一、pom依赖二、实现Partitioner接口三、Producer配置Java向Kafka发送数据的时候,Kafka Client会根据partitioner.class来实例化一个对象来选择分区,默认的实现是org.apache.kafka.clients.producer.internals.DefaultPartitioner,要指定自己的分区,只需要实现Partitioner接口并且配置partitioner.class就可以了一、pom依赖<dependen

2021-12-06 20:25:46 1914

原创 Java使用Producer向Kafka集群发送消息

Java使用Producer向Kafka集群发送消息一、Pom文件配置二、向Kafka集群发送消息2.1 直接发送2.2 同步发送2.3 异步发送2.4 Flume使用的发送方式Java使用Kafka Producer API向Kafka集群发送消息的时候,大概有3中形式,分别为直接、同步、异步发送,本篇文章会介绍这3中发布方式的区别一、Pom文件配置<dependency> <groupId>org.apache.kafka</groupId> <art

2021-12-06 20:23:25 2671

原创 Java访问Kerberos认证的HDFS文件系统

Java访问Kerberos认证的HDFS文件系统一、项目pom依赖配置二、Java访问代码三、实现截图四、遇到错误五、总结前几天搭建了Kerberos认证的HDFS文件系统,今天打算写文章来介绍一下,用Java来访问经过Kerberos加密的HDFS文件系统,在这之前,需要在KDC生成keytab文件,然后把/etc/krb5.conf文件下载,并且放到项目中。一、项目pom依赖配置<dependency> <groupId>org.apache.hadoop</gr

2021-12-06 20:18:48 4095

原创 Kerberos基本命令使用

最近在CDH集群配置Kerberos认证,遇到了不少问题,打算用这篇文章来总结一下Kerberos基本命令使用一、Kerberos安装配置文档二、Kerberos专有名词介绍2.1 Kerberos主体Principal介绍三、Kerberos 命令使用3.1 登陆kinit3.2查询登陆状态klist3.3退出登陆kdestroy3.4登录KDC后台 kadmin.local3.5查看用户列表 listprincs3.6修改账号密码change_password3.7创建用户addprinc3.8删除用

2021-12-06 20:12:32 1803

Ruby语言入门教程

Ruby的入门教程,其它编程语言的学习都主要来自于书本,而 Ruby 的学习却是完全经由网络。我想,回报网络的最好方式就是在网络上还没有 Ruby 中文书籍的时候,编著一本Ruby 中文入门教材 百度网盘免费下载地址:http://pan.baidu.com/s/1sjKf0br

2017-09-06

空空如也

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

TA关注的人

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