<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zeng6325998的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zeng6325998</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zeng6325998]]></copyright><item><title><![CDATA[spark创建maven工程创建scala目录并编译]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111937441</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111937441</guid><author>zeng6325998</author><pubDate>Tue, 29 Dec 2020 21:18:55 +0800</pubDate><description><![CDATA[背景
我创建spark的maven工程的时候，在java目录同级还创建了一个scala目录。这就得考虑编译相关的事了。
解决
1、创建source folder
如下图所示，直接创建就好了

2、编译带来的问题
编译的时候发现一个问题，就是在scala目录中的scala文件可以编译的上，而java文件编译不上，而java目录下的java文件是可以的，
经过查阅问题，发现默认的maven compile是不可以编译多个source folder的，需要添加plugin,如下，问题解决
            ]]></description><category></category></item><item><title><![CDATA[docker的Data Volume（数据卷) 浅析]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111437082</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111437082</guid><author>zeng6325998</author><pubDate>Sun, 20 Dec 2020 15:57:46 +0800</pubDate><description><![CDATA[背景
最近自己写一个dockerfile基于一个基础的image，但是基于这个基础的image生成的容器里面有一层目录有些多余，我想把它删除掉。但是发现删除不了，报错为cannot remove XXX: Device or resource busy，原因就是因为这个image里面设置了挂载目录。这个容器的dockerfile 不知道去哪里了，后面还commit了一次，也不知道历史信息了，哎
解决
想着去解决这个问题就来了解docker的Data Volume。
解析Data Volume
数据卷（Dat]]></description><category></category></item><item><title><![CDATA[Jenkins 自动化构建]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111302424</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111302424</guid><author>zeng6325998</author><pubDate>Wed, 16 Dec 2020 20:36:45 +0800</pubDate><description><![CDATA[前言
这里只是讲一些Jenkins基础的使用情况
作用
jenkins的作用是把github或者gitlab等仓库里的东西取出来，然后在jenkins容器中编译打包，然后执行脚本，可以是运行jar等，根据自身情况量身定制脚本。
实际使用
1、创建任务

2、起任务名称，选择第一个

3、6个模块，只讲重要的

4、source code
这里面填写你的gitlab 或者github地址和你的账号密码   上面和下面的URL一样

5、bulid
这个模块如果是代码需要maven打包的话，需要添加Maven目]]></description><category></category></item><item><title><![CDATA[elasticsearch的ingest node讲解以及Pipeline和grok分析]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111078174</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111078174</guid><author>zeng6325998</author><pubDate>Sat, 12 Dec 2020 17:43:23 +0800</pubDate><description><![CDATA[参考资料
https://blog.youkuaiyun.com/UbuntuTouch/article/details/99702199

需求
最近在做日志收集到es时遇到些问题。我不想用logstash做日志的切分，毕竟很大，想用FileBeat直接推数据到es中。这就涉及到一个问题，这步切分数据在哪做。这个可以使用es的ingest node来做。
解决
ingest node
es在5.0X以后推出了ingest node的功能，可以对数据进行预处理。我们可以指定需要的Pipeline，然后ingest n.]]></description><category></category></item><item><title><![CDATA[Filebeat向Elasticsearch输入log，合并行]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111066436</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111066436</guid><author>zeng6325998</author><pubDate>Sat, 12 Dec 2020 15:58:20 +0800</pubDate><description><![CDATA[参考资料
https://blog.youkuaiyun.com/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.]]></description><category></category></item><item><title><![CDATA[FileBeat向elasticsearch传入数据，并使用GROK处理]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/111052097</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/111052097</guid><author>zeng6325998</author><pubDate>Fri, 11 Dec 2020 19:37:43 +0800</pubDate><description><![CDATA[背景
最近在捣鼓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
添加]]></description><category></category></item><item><title><![CDATA[java 使用FileAlterationMonitor监控目录中的文件]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/110942578</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/110942578</guid><author>zeng6325998</author><pubDate>Wed, 09 Dec 2020 22:34:13 +0800</pubDate><description><![CDATA[需求
最近做一个导数服务，支持oracle的。然后先是使用oracle的sqllur 生成数据，然后往hdfs上传。这个时候有个问题，比如oracle对应的表有1T，这个时候对磁盘的依赖就很大，磁盘可能就会放满了。所以就需要将其导一部分上传一部分，然后上传完删除才可以解决这个问题。那么这个时候就需要来监控文件的生成。
依赖
&lt;dependency&gt;
    &lt;groupId&gt;commons-io&lt;/groupId&gt;
    &lt;artifactId&gt;common]]></description><category></category></item><item><title><![CDATA[hive合并小文件]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/110940897</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/110940897</guid><author>zeng6325998</author><pubDate>Wed, 09 Dec 2020 21:08:44 +0800</pubDate><description><![CDATA[参考资料:https://blog.youkuaiyun.com/lalaguozhe/article/details/9053645

我们这边改为底层数据改成hive的parquet表，需要我们这边弄下优化小文件相关，特意总结下
最终参数

SET parquet.compression = snappy;   //设置压缩    专门针对于stored as parquet的情况
set hive.merge.mapfiles=true;      //map-only 时合并
set hive.merge.m.]]></description><category></category></item><item><title><![CDATA[linux  awk的简单使用]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/110204243</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/110204243</guid><author>zeng6325998</author><pubDate>Thu, 26 Nov 2020 20:44:53 +0800</pubDate><description><![CDATA[今天想用简单的shell操作数据中的列，发现awk特别好用，简单记录下
通常使用
awk来获取多个列的情况，比如有个文件data.txt,其中有3列数据，使用制表符分隔，如下
1	xiaowang	170
2	xiaoli	168
3	xiaozhang	183

我想取其第二列和第三列,并使用逗号分隔
那么可以使用awk来

cat data.txt | awk -F ‘\t’ ‘{print $2","$3}’

我们简单介绍下上面这个语句
-F ‘\t’   ----来指定分隔符为制表符
print ]]></description><category></category></item><item><title><![CDATA[FTP和SFTP介绍(常见的和java代码遇到的问题)]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109823281</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109823281</guid><author>zeng6325998</author><pubDate>Thu, 19 Nov 2020 19:50:48 +0800</pubDate><description><![CDATA[背景
最近做导数服务的时候需要支持FTP和SFTP，这块本来让我带的人做，正好我这块也没事，就写了下了解了解
FTP
连接命令上传下载不细讲  网上一堆
主动模式和被动模式
PORT（主动）方式的连接过程是：客户端向服务器的FTP端口（默认是21）发送连接请求，服务器接受连接，建立一条命令链路。当需要传送数据时， 客户端在命令链路上用PORT命令告诉服务器："我打开了XX端口，你过来连接我”。于是服务器从20端口向客户端的XX端口发送连接请求，建立 一条数据链路来传送数据。
PASV（被动）方式的连接过程是]]></description><category></category></item><item><title><![CDATA[hive 分区命令以及使用场景]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109704695</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109704695</guid><author>zeng6325998</author><pubDate>Sun, 15 Nov 2020 15:36:33 +0800</pubDate><description><![CDATA[常用的分区命令
建立分区表 （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 (]]></description><category></category></item><item><title><![CDATA[dependencies与dependencyManagement的区别]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109451610</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109451610</guid><author>zeng6325998</author><pubDate>Mon, 02 Nov 2020 16:28:58 +0800</pubDate><description><![CDATA[参考资料:https://blog.youkuaiyun.com/liutengteng130/article/details/46991829  (解释的很详细了)

背景
今天做多模块的相关，来查看配置，看到了这些，今天来专门说下这些
解析
什么场景下要用dependencyManagement 什么场景下用dependencies 呢，我们简单先来了解下他们的功能
dependencyManagement
这个常用于多模块项目。dependencyManagement在父项目中声明，用于版本的管理,让子项目中引.]]></description><category></category></item><item><title><![CDATA[spark的压缩使用和简单介绍]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109392580</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109392580</guid><author>zeng6325998</author><pubDate>Fri, 30 Oct 2020 20:30:25 +0800</pubDate><description><![CDATA[总览
今天碰到了一个spark sql 压缩的问题，所以今天来讲一下spark的压缩
一切参考spark2.4.1版本来讲解
spark 压缩分为3块，rdd压缩   broadcast压缩  和spark sql的压缩
1、rdd 压缩

spark.rdd.compress

Whether to compress serialized RDD partitions (e.g. for StorageLevel.MEMORY_ONLY_SER in Java and Scala or StorageLe]]></description><category></category></item><item><title><![CDATA[git合并多个commits]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109320301</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109320301</guid><author>zeng6325998</author><pubDate>Tue, 27 Oct 2020 20:43:01 +0800</pubDate><description><![CDATA[参考资料:https://juejin.im/entry/6844903600976576519   (git命令)

背景
我们在写代码有时候会碰到这种情况，我们自己写的代码在本地无法测试，需要部署到服务器测试，如果有问题，还需要继续commit代码，这样我们完成一个需求可能需要提交多次，这样容易造成版本控制的混乱，也不方便review代码，所以这个时候我们就需要去合并多个提交变成一个。
合并提交
合并提交有两种方式  git命令行方式和IDEA页面操作方式
IDEA页面操作方式
这个需要看一下IDEA.]]></description><category></category></item><item><title><![CDATA[try  with  resource 的使用]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109269941</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109269941</guid><author>zeng6325998</author><pubDate>Sun, 25 Oct 2020 09:22:34 +0800</pubDate><description><![CDATA[参考资料
https://juejin.im/entry/6844903446185951240
https://blog.youkuaiyun.com/fly910905/article/details/86093723

背景
我们在获取io流  或者 JDBC 连接的时候，我们总要在最后关闭一下它。之前的做法是吧它放到finally块里面，确保它最后无论如何能关闭，防止资源的泄露，但是同时带出来的效果是代码冗长。
解析
样例
try with resource解决了这个问题，这块代码很简单，我直接上一个获取JD.]]></description><category></category></item><item><title><![CDATA[springboot多模块项目构建]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109249191</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109249191</guid><author>zeng6325998</author><pubDate>Fri, 23 Oct 2020 20:23:35 +0800</pubDate><description><![CDATA[参考资料
https://juejin.im/post/6844903893487321101

基础架构
父module
创建一个springboot的项目，然后将src等乱七八糟的删掉，只剩下pom

pom相关
1、声明module模块
2、在pom 添加pom

部分代码
    &lt;groupId&gt;com.example&lt;/groupId&gt;
    &lt;artifactId&gt;moremodule&lt;/artifactId&gt;
    &lt;version.]]></description><category></category></item><item><title><![CDATA[linux中du的常见用法和查看文件大小并排序]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109229903</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109229903</guid><author>zeng6325998</author><pubDate>Thu, 22 Oct 2020 20:27:47 +0800</pubDate><description><![CDATA[常见用法
在linux中查看文件大小是个很常用的例子，我这里只列举常用的用法

du -s  仅显示总计，只列出最后加总的值。

du -h 以K，M，G为单位，提高信息的可读性。
du -s 应用在想知道目录具体有多大的时候
du -h 这样方便看，常常du -s 查询的时候也可以加上-h  但是有一种情况例外，就是如下这种
查看文件大小并排序
前两天我想看下有个目录下（HDFS的 和linux的用法一样）所有文件的大小并排下序
这里补充下sort的用法

sort -n   依照数值的顺序排序（由小到大]]></description><category></category></item><item><title><![CDATA[oracle 中的sqluldr相关介绍]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109105482</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109105482</guid><author>zeng6325998</author><pubDate>Thu, 15 Oct 2020 21:04:34 +0800</pubDate><description><![CDATA[参考网址
https://blog.youkuaiyun.com/cheng_feng_xiao_zhan/article/details/83620593


sqluldr2是一款Oracle数据快速导出工具

linux下安装
下载网址

http://www.pc6.com/softview/SoftView_516318.html

解压后找到64位的安装包放到oracle home下即可 (自己可以将名称更改为sqluldr)
在使用的时候需要添加环境变量
export ORACLE_HOME=/home.]]></description><category></category></item><item><title><![CDATA[navicate、linux安装客户端连接oracle]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109062043</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109062043</guid><author>zeng6325998</author><pubDate>Tue, 13 Oct 2020 22:03:27 +0800</pubDate><description><![CDATA[前提
下载目录

https://www.oracle.com/database/technologies/instant-client/downloads.html

去上述的下载目录下载相应的
instantclient-basic-windows.x64-x.x.x.x.zip
instantclient-sqlplus-windows.x64-x.x.x.x.zip
原理
oracle也是相当于有个服务端，我们如果连接oracle的话，只需要下载安装相应客户端就可以了
navicate连接oracl]]></description><category></category></item><item><title><![CDATA[JVM 内存分配和占用]]></title><link>https://blog.youkuaiyun.com/zeng6325998/article/details/109009156</link><guid>https://blog.youkuaiyun.com/zeng6325998/article/details/109009156</guid><author>zeng6325998</author><pubDate>Sun, 11 Oct 2020 11:02:32 +0800</pubDate><description><![CDATA[我们从一个简单示例来引出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.]]></description><category></category></item></channel></rss>