自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 spark创建maven工程创建scala目录并编译

背景我创建spark的maven工程的时候,在java目录同级还创建了一个scala目录。这就得考虑编译相关的事了。解决1、创建source folder如下图所示,直接创建就好了2、编译带来的问题编译的时候发现一个问题,就是在scala目录中的scala文件可以编译的上,而java文件编译不上,而java目录下的java文件是可以的,经过查阅问题,发现默认的maven compile是不可以编译多个source folder的,需要添加plugin,如下,问题解决

2020-12-29 21:18:55 378

原创 docker的Data Volume(数据卷) 浅析

背景最近自己写一个dockerfile基于一个基础的image,但是基于这个基础的image生成的容器里面有一层目录有些多余,我想把它删除掉。但是发现删除不了,报错为cannot remove XXX: Device or resource busy,原因就是因为这个image里面设置了挂载目录。这个容器的dockerfile 不知道去哪里了,后面还commit了一次,也不知道历史信息了,哎解决想着去解决这个问题就来了解docker的Data Volume。解析Data Volume数据卷(Dat

2020-12-20 15:57:46 299

原创 Jenkins 自动化构建

前言这里只是讲一些Jenkins基础的使用情况作用jenkins的作用是把github或者gitlab等仓库里的东西取出来,然后在jenkins容器中编译打包,然后执行脚本,可以是运行jar等,根据自身情况量身定制脚本。实际使用1、创建任务2、起任务名称,选择第一个3、6个模块,只讲重要的4、source code这里面填写你的gitlab 或者github地址和你的账号密码 上面和下面的URL一样5、bulid这个模块如果是代码需要maven打包的话,需要添加Maven目

2020-12-16 20:36:45 554

原创 elasticsearch的ingest node讲解以及Pipeline和grok分析

参考资料https://blog.csdn.net/UbuntuTouch/article/details/99702199需求最近在做日志收集到es时遇到些问题。我不想用logstash做日志的切分,毕竟很大,想用FileBeat直接推数据到es中。这就涉及到一个问题,这步切分数据在哪做。这个可以使用es的ingest node来做。解决ingest nodees在5.0X以后推出了ingest node的功能,可以对数据进行预处理。我们可以指定需要的Pipeline,然后ingest n.

2020-12-12 17:43:23 1689

原创 Filebeat向Elasticsearch输入log,合并行

参考资料https://blog.csdn.net/qq_41154522/article/details/107283490需求Filebeat向Elasticsearch输入log的时候,INFO 日志肯定没有问题,因为Filebeat也是按照行读取的。比如这种的2020-12-11 19:02:13.135 [main] INFO com.example.test.listen.Demo 3644b875-1428-4afb-8fb9-dcc08d147419.

2020-12-12 15:58:20 173

原创 FileBeat向elasticsearch传入数据,并使用GROK处理

背景最近在捣鼓Filebeat监听springboot的日志然后将其传入到es中。这个时候日志肯定要切分单独字段存储。这个时候用到了es自带的ingest node pipeline 功能,使用grok 使用正则将log进行切分具体实现参考资料:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ingest-node.html这篇文档很详细了说明了Filebeat怎么去传入数据1、配置filebeat.yml添加

2020-12-11 19:37:43 1388

原创 java 使用FileAlterationMonitor监控目录中的文件

需求最近做一个导数服务,支持oracle的。然后先是使用oracle的sqllur 生成数据,然后往hdfs上传。这个时候有个问题,比如oracle对应的表有1T,这个时候对磁盘的依赖就很大,磁盘可能就会放满了。所以就需要将其导一部分上传一部分,然后上传完删除才可以解决这个问题。那么这个时候就需要来监控文件的生成。依赖<dependency> <groupId>commons-io</groupId> <artifactId>common

2020-12-09 22:34:13 2530

原创 hive合并小文件

参考资料:https://blog.csdn.net/lalaguozhe/article/details/9053645我们这边改为底层数据改成hive的parquet表,需要我们这边弄下优化小文件相关,特意总结下最终参数SET parquet.compression = snappy; //设置压缩 专门针对于stored as parquet的情况set hive.merge.mapfiles=true; //map-only 时合并set hive.merge.m.

2020-12-09 21:08:44 420

原创 linux awk的简单使用

今天想用简单的shell操作数据中的列,发现awk特别好用,简单记录下通常使用awk来获取多个列的情况,比如有个文件data.txt,其中有3列数据,使用制表符分隔,如下1 xiaowang 1702 xiaoli 1683 xiaozhang 183我想取其第二列和第三列,并使用逗号分隔那么可以使用awk来cat data.txt | awk -F ‘\t’ ‘{print $2","$3}’我们简单介绍下上面这个语句-F ‘\t’ ----来指定分隔符为制表符print

2020-11-26 20:44:53 88

原创 FTP和SFTP介绍(常见的和java代码遇到的问题)

背景最近做导数服务的时候需要支持FTP和SFTP,这块本来让我带的人做,正好我这块也没事,就写了下了解了解FTP连接命令上传下载不细讲 网上一堆主动模式和被动模式PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:"我打开了XX端口,你过来连接我”。于是服务器从20端口向客户端的XX端口发送连接请求,建立 一条数据链路来传送数据。PASV(被动)方式的连接过程是

2020-11-19 19:50:48 2491 1

原创 hive 分区命令以及使用场景

常用的分区命令建立分区表 (demo)CREATE EXTERNAL TABLE partition_test(id int,name string)PARTITIONED BY (date string,hour int)row format delimited fields terminated by ‘,’location ‘/xunlian/zgh/partition_test’添加分区1、手动ALTER TABLE partition_test ADD PARTITION (

2020-11-15 15:36:33 399

原创 dependencies与dependencyManagement的区别

参考资料:https://blog.csdn.net/liutengteng130/article/details/46991829 (解释的很详细了)背景今天做多模块的相关,来查看配置,看到了这些,今天来专门说下这些解析什么场景下要用dependencyManagement 什么场景下用dependencies 呢,我们简单先来了解下他们的功能dependencyManagement这个常用于多模块项目。dependencyManagement在父项目中声明,用于版本的管理,让子项目中引.

2020-11-02 16:28:58 169

原创 spark的压缩使用和简单介绍

总览今天碰到了一个spark sql 压缩的问题,所以今天来讲一下spark的压缩一切参考spark2.4.1版本来讲解spark 压缩分为3块,rdd压缩 broadcast压缩 和spark sql的压缩1、rdd 压缩spark.rdd.compressWhether to compress serialized RDD partitions (e.g. for StorageLevel.MEMORY_ONLY_SER in Java and Scala or StorageLe

2020-10-30 20:30:25 2461

原创 git合并多个commits

参考资料:https://juejin.im/entry/6844903600976576519 (git命令)背景我们在写代码有时候会碰到这种情况,我们自己写的代码在本地无法测试,需要部署到服务器测试,如果有问题,还需要继续commit代码,这样我们完成一个需求可能需要提交多次,这样容易造成版本控制的混乱,也不方便review代码,所以这个时候我们就需要去合并多个提交变成一个。合并提交合并提交有两种方式 git命令行方式和IDEA页面操作方式IDEA页面操作方式这个需要看一下IDEA.

2020-10-27 20:43:01 552

原创 try with resource 的使用

参考资料https://juejin.im/entry/6844903446185951240https://blog.csdn.net/fly910905/article/details/86093723背景我们在获取io流 或者 JDBC 连接的时候,我们总要在最后关闭一下它。之前的做法是吧它放到finally块里面,确保它最后无论如何能关闭,防止资源的泄露,但是同时带出来的效果是代码冗长。解析样例try with resource解决了这个问题,这块代码很简单,我直接上一个获取JD.

2020-10-25 09:22:34 1784

原创 springboot多模块项目构建

参考资料https://juejin.im/post/6844903893487321101基础架构父module创建一个springboot的项目,然后将src等乱七八糟的删掉,只剩下pompom相关1、声明module模块2、在pom 添加pom部分代码 <groupId>com.example</groupId> <artifactId>moremodule</artifactId> <version.

2020-10-23 20:23:35 237

原创 linux中du的常见用法和查看文件大小并排序

常见用法在linux中查看文件大小是个很常用的例子,我这里只列举常用的用法du -s 仅显示总计,只列出最后加总的值。du -h 以K,M,G为单位,提高信息的可读性。du -s 应用在想知道目录具体有多大的时候du -h 这样方便看,常常du -s 查询的时候也可以加上-h 但是有一种情况例外,就是如下这种查看文件大小并排序前两天我想看下有个目录下(HDFS的 和linux的用法一样)所有文件的大小并排下序这里补充下sort的用法sort -n 依照数值的顺序排序(由小到大

2020-10-22 20:27:47 1382

原创 oracle 中的sqluldr相关介绍

参考网址https://blog.csdn.net/cheng_feng_xiao_zhan/article/details/83620593sqluldr2是一款Oracle数据快速导出工具linux下安装下载网址http://www.pc6.com/softview/SoftView_516318.html解压后找到64位的安装包放到oracle home下即可 (自己可以将名称更改为sqluldr)在使用的时候需要添加环境变量export ORACLE_HOME=/home.

2020-10-15 21:04:34 1208

原创 navicate、linux安装客户端连接oracle

前提下载目录https://www.oracle.com/database/technologies/instant-client/downloads.html去上述的下载目录下载相应的instantclient-basic-windows.x64-x.x.x.x.zipinstantclient-sqlplus-windows.x64-x.x.x.x.zip原理oracle也是相当于有个服务端,我们如果连接oracle的话,只需要下载安装相应客户端就可以了navicate连接oracl

2020-10-13 22:03:27 1002

原创 JVM 内存分配和占用

我们从一个简单示例来引出JVM的内存模型简单示例我从一个简单示例谈起这一块,我在看一篇文章的时候看到这么一个场景并且自己做了尝试,就是分配一个2M的数组,使用Xmx即最大内存为12M的话,会报错Java heap space,但是如果Xmx为13M的话这块便能正常执行 代码如下public class Main { static final int SIZE=2*1024*1024; public static void main(String[] a) throws Int.

2020-10-11 11:02:32 500

原创 多线程相关之------Semaphore(信号量)

参考资料:https://juejin.im/post/6844903537508368398 (对于简单应用介绍包括简单代码)最近在写多线程拷贝的时候使用到了Semaphore,这里简单记录下基础使用信号量用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。信号量Semaphore 管理者一组许可,这个可以通过构造函数来初始化。然后通过方法acquire()来获取许可,如果没有了许可,会被阻塞。//Acquires a permit from this sem.

2020-10-10 21:39:02 91

原创 AtomicReference、AtomicBoolean、AtomicInteger等相关的用法

参考资料https://blog.csdn.net/zxc123e/article/details/52057289简单介绍看其名称便知道这个都是读写原子的类。最终的原因是因为volatile修饰了内部的变量 (源码)。这些在多线程的应用中应用很多。AtomicReference 为原子的引用,这个可以有泛型的形式AtomicBoolean 这个是原子的布尔值AtomicInteger 这个是原子的int值大部分都是通过get 和 set 方法来获取值和设置值样例代码我这块直.

2020-10-10 21:38:14 184

原创 linux的shell篇 ----if

if 在shell 脚本编写中的用的很多,我现在把常用的一些写一下,权当记录参考资料:https://blog.csdn.net/l_liangkk/article/details/829901371、if基本格式if基本格式样例if [ $1 == "ab" ]; then echo "you had enter ab"elif [ $1 == "cd"x ]; then echo "you had enter cd"else echo "you had enter

2020-09-27 09:25:54 432

原创 shell中多行文本的输出(使用cat/EOF)

参考资料https://my.oschina.net/wuweixiang/blog/2989375背景最近做项目写了个导数的脚本,其实就是在一个集群的数据拉取下来到另外一个集群上并且建表(机器不通只能先这么干),然后将表中的数据用spark坐下整理放到整理目录下。但是在建表的时候发生了些问题。出现的问题我的初衷是将建表语句在脚本中用如下表示sql="create table xxx (xxx string)row foramte delilimited..."这种形式,.

2020-09-12 10:56:35 4184

原创 关于日志管理的Logger在代码中的声明

参考:https://stackoverflow.com/questions/6653520/why-do-we-declare-loggers-static-final声明样式private static final Logger LOG=LoggerFactory.getLogger(Logback.class);解释1、private 这样其他的类不能访问你的Logger2、static 这样的话类中只有一个logger的实例,不管new了多少个实例,也只创建一次,节省空.

2020-09-08 09:50:38 1767

原创 关于github star watch fork clone解析

名词解析今天整理下关于上述词的 用法Star — 翻译过来应该是星星,这里解释为关注或者点赞更合适,目的是方便以后查找。github 里面会有一个列表,专门收集了你所有 start 过的项目,如图Watch — 作用是关注,目的是等作者更新的时候,你可以收到通知。fork — github的操作,将别人的项目复制一份到自己的仓库下,我们fork的代码相当于源项目的一个分支。当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。clone — 这是Git

2020-09-07 17:25:14 244

原创 linux中的快捷操作(shell中和控制台)

linux的控制台和shell中的快捷操作是不一样的1、控制台的操作(除了在shell中编辑的操作)ctrl + a 回到行首ctrl + e 回到行尾ctrl + u 删除到行首ctrl + k 删除到行尾ctrl + d 删除当前光标下的数据ctrl + y 恢复上次的操作ctrl + z 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复ctrl + S 暂停屏幕输出ctrl + Q 继续屏幕输出

2020-09-04 19:41:20 122

原创 包装类型和基本类型的差别(由方法返回值想到的问题)

参考资料:https://juejin.im/post/6844903955235864590https://www.zhihu.com/question/290678106背景自己写接口返回值返回的Boolean,突然想到一个问题,返回boolean不可以么,他们有什么区别么?跟随着这个问题我们再往大了引申说到包装类型和基本类型上面。Boolean和boolean哪个更适合当做返回值只从方法返回值上面讲,看下接口对于返回值的要求。Boolean的包装类型可以为null,boolean只有t.

2020-09-01 20:01:12 1238

原创 IDEA 创建springboot失败 报错Request failed with status code 403

背景springboot 现在几乎就是主流了,但是前两天IDEA创建springboot总是失败,一直报错Request failed with status code 403,换了个版本的IDEA也是不行。查了很多资料,发现好多都是复制粘贴的,一点营养都没有,好多没有用。比如点击IDEA setting之后,找到Http Proxy 选择Atuo-detect proxy settings 之后点击check connection比如将https://start.spring.io 改为 htt

2020-08-25 09:27:51 19369

原创 git撤回已经push的提交

背景从一个分支往另外一个分支和代码,两个分支有冲突,然后就是各种小心合,还是合错了,发现的时候已经push上去了,这块要撤回远程的代码恢复到之前的状态(这里默认是使用IDEA开发的)补充:查看当前分支的状态这里补充下查看当前分支的状态,使用命令git branch -vv这里补充下,如果想查看git 当前命令的详细解释,比如查看git branch,可以使用git branch --help会打开本地的一个页面,上面都有详细的解释-v-vv–verboseWhen in l

2020-08-24 15:41:25 5997

原创 crontab的基本使用

作用crontab是linux的一项系统服务。用来在linux上面定时执行任务。crontab服务又分为系统任务调度和用户任务调度。系统的就是系统周期性所要执行的工作。我们这里主要讨论用户的任务调度。基本使用查看crontab状态**在使用crontab的时候,先应该去查看一下运行的状态。**前两天在这出现一个坑,发现crontab一直失效,查看状态才发现crontab的状态已经变成了inactive查看crontab的状态命令service crond status查看当前用户的任务

2020-08-24 10:35:25 153

原创 复制到vim 或者导入到shell中格式错乱的问题探究

背景今天写了个spark的脚本,整理了下格式,毕竟一直弄到一块不好看,也容易落下,如下所示然后写完后我往linux中的vim中粘贴,发现格式发生变化了,发生了错行。当时想是不是vim有什么机制,后来就是用rz 将想好的脚本导入进去,发现还是呈现那种错行的状态解决核心原因还是因为空白地方的格式不多。有制表符 有空格所以造成了这个现象。我移动到 照片中–conf 之前,发现第二行空白地方是空格,而剩下行–conf空白的地方都是制表符,所以造成了这种错行的现象。解决办法(基于notepad++)

2020-08-21 19:49:38 1126

原创 关于JDBC资源释放的问题探究

参考资料https://stackoverflow.com/questions/2225221/closing-database-connections-in-java前言关于JDBC资源的释放这块,我们应该怎么释放呢? 只关闭Connection,还是连同Statement和ResultSet一起关闭呢?在不同的场景下,比如连接池的操作下这些又应该怎么办呢?解决1、源码介绍查看首先的话肯定Connection肯定是需要先关闭的。所以我查看了ResultSet和Statement的clo.

2020-08-20 10:53:13 791 2

原创 简述statement 和preparestatment的区别以及关于重复使用preparestatment和statement的理解

前言statement 和 PreparedStatement 均为接口,可以用他们来执行sql,但是他们还是有细微的差别。1、执行sql的样式不同StatementStatement执行的是静态的sql对象PreparedStatementPreparedStatement既可以执行静态的sql对象,可以往里面出入参数。(这块注意: 参数类型不能错 比如int值就传入int) 样例如下,不多解释 Connection connection = DriverManager.g

2020-08-15 11:47:08 1846

原创 spark 离线任务对于小文件的处理

前言spark 读写hive 比较多,发现总是有小文件很多,几百个几十KB的文件,这样对于后续处理很不友好,这里统一说一下。前置条件 我准备了一张50W数据的一张hive表,原始数据占用6个小文件。[hadoop@hebing4 ~]$ hadoop fs -ls hdfs://behhb001/hive/warehouse/hebing.db/step_step_23953295763_parquetFound 6 items-rwxr-xr-x 1 hadoop hadoop 48

2020-08-07 19:17:03 408

原创 小白学习flink----基于处理时间的window浅析与样例

参考资料:https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/stream/operators/windows.html前言学习flink,感觉很多的坑啊,现在基本学习都是靠官方文档,但是感觉flink的官方文档不是那么的友好(也可能我太菜了)实时相对于离线来说还是难度高一些的。最近在写相关样例这里除了很多的问题,现在来一一说明一下flink中的keyflink中的数据有一个分组的概念。我们可以使用 keyBy()针.

2020-07-31 14:48:48 445

原创 flink 在yarn 上的运行

参考资料https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/yarn_setup.htmlhttps://www.jianshu.com/p/1b05202c4fb6 (非常的详细)flink在yarn上运行的模式目前基于的版本是1.11.1前置条件hadoop版本最少为2.4.1flink在yarn上有2种模式1、Flink YARN Session2、Run a single Flink .

2020-07-28 16:53:23 1235

原创 关于spark在编码时的数据类型获取和定义相关的讨论

参考资料https://stackoverflow.com/questions/45414718/spark-scala-cannot-up-cast-from-string-to-int-as-it-may-truncate前言编码时有两个问题1、我们在读取数据的时候,他的数据类型,即字段名称类型这些schema怎么获取和推断的呢读取数据的时候数据类型情况分析比如说我们在调用val value = spark.read.csv(“file:///E:\data.csv”)我们读取了.

2020-07-27 15:01:48 484 1

原创 spark算子执行位置研究,driver端?executor端?

参考资料https://cloud.tencent.com/developer/article/1545723前言spark算子的执行位置 driver端 还是executor端,这些之前其实没有注意过,最近在学流处理,发现这个还是很重要的,今天专门讲一下,只有好好理解了这些,针对业务才能开发出更好的代码。具体测试driver 和executor的作用driver是运行用户编写Application 的main()函数的地方,具体负责DAG的构建、任务的划分、task的生成与调度等。ex.

2020-07-24 15:17:34 2609 4

原创 sparkStreaming向hive动态分区落地数据(IDEA测试版)

前言做电信项目有时有这种场景,将sparkStreaming读取kafka的数据经过过滤,筛选处理,广播、join等一系列操作后,根据每次批的间隔时间,把数据动态插入hive表的分区中,这边我IDEA本地进行先关测试sparkStreaming本地访问hive遇到的问题1、读取不到hive表需要将hive-site.xml hdfs-site.xml core-site.xml 放到resource目录下 或者使用spark显示的加入配置文件 (我这边是直接放到resource目录下,比较方便)

2020-07-22 15:20:08 523

空空如也

空空如也

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

TA关注的人

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