自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zp的博客

学而不思则罔,思而不学则殆

  • 博客(197)
  • 资源 (9)
  • 收藏
  • 关注

原创 HDFS核心源码解析(三)——DataNode的心跳机制

DataNode在启动之后会周期性地向NameNode发送心跳,那么内部是如何实现的呢?

2021-09-01 17:44:23 708

原创 HDFS核心源码解析(二)——DataNode的启动及注册流程

本文介绍DataNode启动流程,主要包括1. 创建一个DataNode对象2. 启动DataNode执行DataNode的初始化3. 初始化DataStorage4. 初始化DataXceiverServer5. 启动HttpServer服务并注册sevlet6. 初始化RPC7. 创建一个BlockPoolManager,遍历BPOfferService中的BPServiceActor对象的start方法,实际向集群里面的每个NameNode进行注册和心跳8. 获取NameNode代理

2021-08-31 16:06:18 376

原创 HDFS核心源码解析(一)——NameNode的启动流程

本文通过源码的方式详解了NameNode的启动流程1. 通过createNameNode 创建new NameNode对象2. NameNode在创建后立刻执行initialize方法3. 创建并启动HttpServer4. 加载元数据FSNamesystem5. 创建并启动NameNodeRpcServer对象6. 公共服务的检查,磁盘空间、安全模式7. 最后提供了一张大图,对NameNode启动流程做了总结

2021-08-29 15:51:38 463

原创 Hive个人笔记总结

Hive是一个数据仓库软件Hive主要使用HQL(类sql)来分析已经存储在分布式设备(HDFS)上的数据Hive的本质是将用户编写的HQL,转换为MR/spark程序,对数据进行分析Hive分析的数据必须是结构化的数据,在分析之前,用户需要对数据创建表结构Hive的表结构(shema)存储在关系型数据库中,数据是存储在HDFS上,二者通过表进行映射Hive基于OLAP设计,基于OLAP设计的软件,一般重分析,延时高!

2020-12-15 20:02:09 736

转载 ZooKeeper学习笔记【转】

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

2020-09-25 11:32:44 421

原创 shell批量复制脚本(rsync)【直接复制拿走】

这篇文章主要介绍了批量复制scp、rsync及执行命令shell脚本,在大数据多机器部署或者日常的运维操作,能减少我们很大的工作量,提升效率

2020-09-17 12:00:35 1478

原创 Maven搭建SpringCloud项目(eureka、gateway、路由转发)【无敌详细图文】

本文将向读者介绍如果使用Maven搭建SpringCloud项目,基于父子模块结构,搭建eureka注册中心模块/业务模块/路由网关gateway模块,图文并茂超级详细哦,傻瓜式教学,还看不懂劝退!!!一 、下载最基本的spring cloud项目1.1 进入spring官网下载项目:https://start.spring.io/选择项,如图所示,最后添加一个Eureka Server依赖,最后点击GENERATE按钮,下载到本地并解压1.2 打开IDEA, 点击open按..

2020-06-15 21:01:20 3146

原创 JAVA获取当前日期或指定日期的前N天的日期集合

因为最近的业务系统需求,前端有两个时间选择框,分别为startTime和endTime,用户展示一段时间内的折线图,但是如果用户选择的时间段太长,折线图时间轴太密集,展示效果十分不佳,于是我使用java代码书写了一个时间工具类,可以返回当前日期或指定日期的前N天的日期集合,如果传入的开始时间和结束时间间隔太大,还可以自动适应时间。废话不多说,直接上代码。

2020-03-20 14:53:00 1980

原创 MySQL计数器、每日计数器表设计与调优

计数器如果应用在表中保存计数器,则在更新计数器时可能碰到并发问题。计数器表在Web应用中很常见。可以用这种表缓存一个用户的朋友数、文件下载次数等。创建一张独立的表存储计数器通常是个好主意,这样可使计数器表小且快。使用独立的表可以帮助避免查询缓存失效,并且可以使用本节展示的一些更高级的技巧。应该让事情变得尽可能简单,假设有一个计数器表,只有行数据,记录网站的点击次数:CREATE TAB...

2019-11-10 21:52:37 1101

原创 MySQL数据类型与优化

关于数据类型的优化1、假如只需要存0~255之间的数,无负数,应使用tinyint unsigned(保证最小数据类型)2、如果长度不可定,如varchar,应该选择一个你认为不会超过范围的最小类型比如: varchar(20),可以存20个中文、英文、符号,不要无脑使用varchar(150)3、整形比字符操作代价更低。比如应该使用MySQL内建的类型(date/time/dateti...

2019-11-07 22:07:01 1024

原创 git从gitlab拉取最新的代码到本地

1、Git下载地址https://www.git-scm.com/download/win2、安装Git(安装步骤参考https://www.cnblogs.com/xwgcxk/p/9209237.html)3、从管理员手中拿到用户名、邮箱、密码假设用户名为: itcats_cn邮箱为itcats_cn@itcats.cn密码为123456784、初始化git信息(...

2019-09-17 19:27:05 116584 7

原创 版本控制工具Git详解

一、Git和SVN的区别?这是一个学Git无法绕开的话题,也是面试的常见题,我猜很多人的回答都是百度上直接背的,有了解过SVN底层的实现原理吗?SVN是一种集中式版本控制工具,SVN架构如图:A、B、C三个开发者如果需要提交自己的代码到远程仓库,必须联网(上传),上传之后SVN仓库内部做了什么?假设用户A提交代码,会将用户A改动过的A.java提交给SVN仓库,仓库中记录的...

2019-08-07 22:28:00 1420 2

原创 ElasticSearch基于version进行乐观锁并发控制实战解析

一、ES解决并发问题的实质ES在多线程异步修改数据时,是根据_version(版本号)来进行乐观锁控制的。1.1 了解_version是什么1、在第一次创建document的时候,该document的_version版本号为1,每次对document进行修改、删除操作,document的_version版本号加1PUT /test_index/test_type/6{...

2019-08-06 11:14:46 1468

原创 CSS选择器总结 思维导图

2019-07-12 13:33:31 720

转载 Java8新特性 利用流和Lambda表达式对List集合进行处理

最近在做项目的过程中经常会接触到 lambda 表达式,随后发现它基本上可以替代所有 for 循环,包括增强for循环。也就是我认为,绝大部分的for循环都可以用 lambda 表达式改写。lambda表达式有它自己的优点:(1)简洁,(2)易并行计算。尤其适用于遍历结果,循环计算数值或者赋值的时候非常方便。缺点: (1)若不用并行计算,很多时候计算速度没有比传统的 for 循环快。 ...

2019-07-11 17:16:49 1283

原创 Java数组/List集合 转 JSON 字符串

1. 导入fastjson依赖2.转换代码public class Test{ public static void main(String[] args) { /* 需求: 将product数组(List) 转成 JSON 字符串 业务场景: 数据库查出的数据,经过数据分类处理后得到List/Arr,需要到前端Ec...

2019-07-09 16:31:04 3132

原创 cellspacing和cellpadding区别

cellspacing和cellspadding区别属性 含义 常用属性值 cellspacing 设置单元格与单元格边框之间的空白间距 像素值(默认为2px) cellspadding 设置单元格内容与单元格边框之间的空白距离 像素值(默认为1px) 不使用任何的cellspacing和cellspdding修饰:<table bo...

2019-07-08 22:13:42 7093 1

原创 Spring Security入门【基于配置文件和数据库】

一、引言安全包括两个主要操作。“认证”,是为用户建立一个他所声明的主体。主题一般指用户,设备或可以在系统中执行动作的其他系统。简单来说,校验账号密码是否正确,就是"认证"的过程。“授权”,指的是一个用户能否在你的应用中执行某个操作,在到达授权判断之前,身份的主题已经由身份验证过程建立了。简单来说,就是用户是否有权利执行某项操作,而这个授权的过程一般已在数据库约定好了。对于安全框架,一般...

2019-07-07 18:14:46 980

原创 Spark Core入门2【RDD的实质与RDD编程API】

一、对RDD操作的本质RDD的本质是一个函数,而RDD的变换不过是函数的嵌套.RDD有两类:输入的RDD: 典型如KafkaRDD、JDBCRDD 转换的RDD: 如MapPartitionsRDDRDD的处理流程:以如下代码为例:sc.textFile("abc.log").map().saveAsTextFile("")1. textFile 会构建出一个NewHad...

2019-06-17 12:02:06 323

转载 RDD的几种创建方式

一、RDD简介RDD是Spark的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集 RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上(分区即partition),从而让RDD中的数据可以被并行操作。(分布式的特性) RDD通常通过Hadoop上的文件,即HDFS文件,来进行创建;有时也...

2019-06-16 18:38:55 854

原创 Spark Core入门1【Spark集群安装、高可用、任务执行流程、使用Scala/Java/Lambda编写Spark WordCount】

一、Spark介绍Spark是一种快速、通用、可扩展的大数据分析引擎,包含SparkSQL、SparkStreaming、GraphX、MLlib等子项目。Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。Spark的优点:1、快:与Ha...

2019-06-11 00:44:03 331

原创 基于Akka模拟Spark中Master和Worker的通信过程

一、Spark中Master与Worker之间的通信过程1、在启动时,Worker会向Master注册自己的信息(内存、核数等),以便2、Master收到各Worker的注册信息后,会回复Worker已注册成功的信息3、worker收到master的注册成功信息后,会定期向Master发送心跳包,回报自己的状态信息4、Master定期收到Worker的心跳信息后,会更新各个Wo...

2019-06-08 01:15:19 679

原创 基于Scala的并发编程模型Akka

一、Akka概念 Akka是JVM平台上构建高并发、分布式和容错应用的工具包和运行时环境。Akka用Scala语言编写,同时提供了Scala 、JAVA的开发接口。二、Akka中Actor模型2.1 Actor模型介绍 Akka处理并发的方法基于Actor模型。在基于Actor的系统里,所有的事物都是Actor。...

2019-06-06 00:43:16 367

原创 ElasticSearch-head安装配置教程

安装ElasticSearch图形管理界面ElasticSearch-head《elasticsearch-head》Github地址安装之前做一些准备工作,将itcats用户切换到root用户suecho "itcats ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/itcats返回: itcats ALL = (roo...

2019-04-27 19:41:49 390

原创 ElasticSearch入门

全文搜索属于最常见的需求,开源的 Elasticsearch是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。ElasticSearch 的底层是开源库 Lucene,Elasticsearch 是 Lucene 的封装,它提供了 REST API 的操作接口,开箱即用。本文从零开始,讲解如何使用 Elas...

2019-04-27 16:55:54 326

原创 ElasticSearch单机/集群搭建教程

本文将介绍ElasticSearch单机版与集群版的安装与配置,ElasticSearch依赖JRE,注意机器是否安装JDK8【最低版本要求就是JDK8】,且JDK环境变量是否已配置完成java -versionecho $JAVA_HOME一、下载《从官网下载ElasticSearch》二、上传安装包到虚拟机解压到/usr/local/下三...

2019-04-26 00:51:02 610

原创 Sqoop快速入门【导入数据到HDFS与导出数据到数据库】

1、Sqoop概述Sqoop - “SQL到Hadoop和Hadoop到SQL”sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据"的工具。导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;导出数据:从Hadoop的文件系统中导出数据到关系数据库mysql等。2、工作机制将导入或导出命...

2019-04-23 17:15:50 4066

原创 StringUtils中 isNotEmpty 和isNotBlank的区别【Java字符串判空】

StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理。例如,如果输入为null则返回也是null等,具体可以查看源代码)。除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用StringUtils.xxx()

2019-04-20 17:06:33 507

原创 Flume快速入门

前言在一个完整的离线大数据处理系统中,除了HDFS+MapReduce+Hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在Hadoop生态体系中都有便捷的开源框架,如图所示:图:典型大规模离线数据处理平台一、Flume日志采集框架1.1 概述Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输...

2019-04-20 13:39:33 477

原创 HBase原理详解【Master、Region Server内部机制、Zookeeper、读写数据流程、hbase:meta表】

一、HBASE运行原理组件结构图二、各组件的职责2.1 MASTER职责1、管理HRegionServer,实现其负载均衡。2、管理和分配HRegion,比如在HRegion split时分配新的HRegion;在HRegion Server退出时迁移其负责的HRegion到其他HRegionServer上。3、Admin职能:创建、删除、修改Table的定...

2019-04-18 21:25:31 3091 4

原创 HBase快速入门【集群安装配置、读写过程、表模型、命令行、API】

HBase官方文档地址:http://hbase.apache.org一、简单看看HBase与MySQL、Hive的区别二、什么是HBaseHBASE是一个数据库----可以提供数据的实时随机读写HBase与MySQL、Oralce、DB2、SQLServer等关系型数据库不同,它是一个NoSQL数据库(非关系型数据库)HBase的表模型与关系型数据库的表...

2019-04-18 00:42:44 305

原创 用生活举例看Java多线程活跃性问题【死锁、饥饿、活锁】

死锁:吃饭问题,5个人每人只有一双筷子,只有让另外一个人分享他自己的筷子给自己,自己才能吃到饭。若存在这样的情况,若每个人都不把自己的筷子借给别人用餐,每个人都抓着自己手中的筷子不放,那么每个人都吃不上饭饿死了。也就是说A线程拥有B线程所需的资源,B线程也有A线程所需资源,但两者都不把资源分享出来,最后需求达不到,最后饿死。饥饿问题:学校饭堂排队打饭,但有些人无秩序插队,那么插队的人拥有...

2019-04-12 18:07:21 655

原创 数据结构——哈希表

一、从一道Leetcode题目认识哈希表387.字符串中的第一个唯一字符因为该字符串只包含小写字母,即只存在a-z 26个小写字母,我们将其a-z对应到数组0-25索引的位置,出现一次,index+1代码编写:class Solution { public int firstUniqChar(String s) { int[] freq = new...

2019-04-12 18:06:14 263

原创 深入理解Hive【Hive架构介绍、安装配置、Hive语法介绍】

一、Hive的产生背景1、MapReduce编程十分繁琐2、传统RDBMS人员的需要Hive由Facebook开源项目:1、用于解决海量结构化日志的数据统计问题2、构建在Hadoop之上的数据仓库3、Hive提供SQL查询语言:HQL4、底层支持多种不同的执行引擎【MR/Tez/Spark】1.x默认为MR 2.x默认为Spark 当然也可以设置为Te...

2019-04-10 22:23:49 759

转载 Hive文件格式之textfile,sequencefile和rcfile的使用与区别详解

hive在创建表时默认存储格式是textfile,或者显示自定义的stored as textfile。很多人知道hive常用的存储格式有三种,textfile,sequencefile,rcfile,但是却说不清楚这三种格式的干什么用的,本质有有什么区别?适合什么时候用?为什么hive会有多种存储格式?因为hive是文本批处理系统,所以就存在一个往hive中导入数据的问题,首先数据的存储...

2019-04-10 13:56:00 2481

原创 Linux安装和配置MySQL5.7【修改密码、修改字符集等配置】

安装配置MySQL ,看这篇文章就够了。本文包括mysql安装,默认密码获取与修改,修改MySQL默认编码字符集,防火墙关闭CentOS6、CentOS7均可用一、下载和安装mysql源先下载 mysql源安装包[root@localhost ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7...

2019-04-09 15:19:32 3198 4

原创 MapReduce词频统计【自定义复杂类型、自定义Partitioner、NullWritable使用介绍】

一、MapReduce1.0运行模型二、MapReduce编程模型之执行步骤1、准备map处理的输入数据2、交给Mapper进行处理3、Shuffle【规则可以自己控制】4、Reduce处理[合并、归并]5、输出MapReduce处理流程InputFormat读数据,通过Split将数据切片成InputSplit,通过RecordReader读取记...

2019-04-08 16:42:05 1089

原创 Yarn框架深入理解【Yarn集群配置】

一、Yarn框架产生的背景与原因我们都知道Hadoop诞生的目标是为了支持十几台机器的搜索服务,但是随着数据的增加,数据的可用性也是一个待解决的问题。但是Hadoop框架的自身问题限制了集群的发展。首先是,JobTracker和NameNode的单点问题,严重制约了集群的扩展和可靠性。MapReduce采用了基于slot的资源分配模型,slot是一种粗粒度的资源 划分单位,通常一个...

2019-04-08 10:37:17 869

原创 MapReduce工作流程超详细解释

MapReduce是我们再进行离线大数据处理的时候经常要使用的计算模型,MapReduce的计算过程被封装的很好,我们只用使用Map和Reduce函数,所以对其整体的计算过程不是太清楚,同时MapReduce1.0和MapReduce2.0在网上有很多人混淆。MapReduce1.0运行模型InputInput但是输入文件的存储位置,但是注意这里并一定是一些博客说的当然是...

2019-04-08 00:51:00 2774

原创 Scala中的reduceLeft,reduceRight,foldLeft,foldRight方法

scala中集合类iterator特质的化简和折叠方法c.reduceLeft(op)这样的调用将op相继应用到元素,如:eg:val a = List(1,7,2,9)val a1 = a.reduceLeft(_ - _)// ((1-7) - 2) - 9 = -17c.reduceRight(op)这样的调用将op相继应用到元素,如:var b ...

2019-04-07 13:49:36 485

ElasticSearch个人笔记【深入浅出,非常完整】.zip

这是我个人记录的ElasticSearch笔记,记录的非常完整,10万多字

2021-05-21

itcats.zip

Maven搭建SpringCloud项目(包含eureka、gateway、路由转发),下载即可使用,日志模块齐全

2020-06-15

fastdfs_client_v1.20.jar

&amp;lt;!-- 使用命令,手动安装到中央仓库 --&amp;gt; mvn install:install-file -DgroupId=org.csource.fastdfs -DartifactId=fastdfs  -Dversion=1.2 -Dpackaging=jar -Dfile=d:\fastdfs_client_v1.20.jar

2018-08-19

HeimaCodeUtil_V2.4黑马49期配套代码生成器

HeimaCodeUtil是黑马程序员官方推出的一款代码生成工具,软件支持多种代码模板生成,包括前端页面等。49期学习配套软件,可以生成 1.SSM+dubbox+angularJS(服务层+WEB层) 2.SSH2+easyUI架构; 3.SSH2+angularJS+bootstrap架构 4.SpringBoot+StringDataJPA微服务 等多种模板的代码自动生成,还可以自定义模板结构 支持oracle+mysql多数据库。

2018-08-16

dobbo-admin-2.5.4.war

dubbo2.5.4.war/dubbo2.5.4.war/dubbo2.5.4.war/dubbo2.5.4.war测试过无任何问题,可以直接下载使用

2018-08-13

tomcat7.0.52

企业常用tomcat版本——7.0.52版本,测试过,无任何问题,下载直接可上线使用

2018-08-13

FWR310 v4路由器升级

FWR310 v4路由器本地升级,在没升级之前我房间的路由器一直卡,不稳定掉线,甚至有几台设备还连接不上wifi,后来我升级了20141014后,路由器恢复了正常,下载时候需要注意型号是FWR310!!!

2018-08-10

logback-spring.xml

按日期每天输出日志,输出到指定文件夹,并且按日志的级别进行了过滤功能,适合生产环境下的日志输出logback-spring.xml,放入项目中可以直接引用,springboot默认读取logback-spring.xml

2018-06-23

pagehelper3.4.2-fix

宜立方商城、淘淘商城的reposity并没有提供pagehelper3.4.2-fix,而中央仓库也无法下载pagehelper3.4.2-fix,因为fix是经过定制修改的,添加后pom.xml将不会报错

2018-05-28

空空如也

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

TA关注的人

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