自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(227)
  • 资源 (1)
  • 收藏
  • 关注

原创 jvm锁升级的过程

2021-04-14 09:14:07 313 1

原创 对NIO和netty的理解和使用

对NIO的理解和使用1、BIO 是一种阻塞IO,监听阻塞(active),read阻塞。程序不往下执行可进行多线程解决,但问题会出现空转,性能消耗问题2、NIO 非阻塞IO,这个java中的实现和redis中的底层实现基本一致,liunx上主要采用了epoll模型,调用了 create ctl wait 系统指令 注册表到执行表中借助于liunx操作系统中中断程序完成selector 字面意思之所以与select类似,因为早期版本1.4之前,java中NIO底层native调用的C代码中调用的

2021-03-11 11:26:38 497

原创 并发编程(五)并发容器及原理分析

并发容器及原理分析-- 1、KV集合HashMap的实现原理HashMap的数据结构HashMap的存取实现什么是HashMapHashMap是存储Key-Value键值对的集合回忆一下SynchronousQueue在线程池的用途和场景HashMap数据结构tableNode节点数组entrySetHashMap.Node的Set集合sizeHashMap集合中元素的个数modCount标记HashMap修改的次数,每次调用put和clea.

2021-03-08 13:24:02 286

原创 并发编程(四)Java锁及应用

Java锁及应用-- 1、乐观锁CAS实现及应用本节目标乐观锁悲观锁的区别Java提供的乐观锁实现为什么需要加锁为了保证多个线程更新一个资源时,防止数据冲突和脏乱,做到线程安全区别 乐观锁 悲观锁 定义 不加锁,但是依据是否有被修改过来判断失败与否 加锁,锁住资源不让其他线程操作,保证只有占有锁的线程去更新资源 区别 .

2021-03-08 12:52:55 168

原创 并发编程(三)线程池原理和应用

线程池原理和应用-- 1、线程池的创建和常用参数分析本节目标创建线程池的参数释义线程池状态分析创建线程池参数利用Executors创建一个固定数量的线程池线程池构造函数线程池参数corePoolSize核心线程数,保持在线程池中线程的数量maximumPoolSize线程池允许的最大线程数keepAliveTime/timeUnit线程池中线程空闲不被释放的最大时间,配合timeUnit使用,为0表示永远不被释放。...

2021-03-08 12:35:15 433

原创 并发编程(二)Java内存模型及线程实现案例分析

Java内存模型及线程实现案例分析-- 1、Java内存模型了解操作系统CPU的内存模型 了解Java的内存模型 熟悉指令重排和Happens-before为什么讲内存模型了解更深层次内存的使用和读取实现,方便日后分析多线程内存相关问题。 工作中遇到的并发问题,并不好重现,需要对理论知识掌握足够深刻,才能更好分析。操作系统内存模型L1和L2是每个CPU自己的高速缓存L3是多个CPU之间共享的缓存理解:L1办公桌上的文件,L2抽屉里的文件,L3公司内部共享文件..

2021-03-08 11:11:44 129

原创 并发编程(一)线程有关的基本概念

一、线程有关的基本概念-- 1、线程安全什么是线程安全?线程安全:一个类被多个线程以任意方式同时调用,且不需要外部额外同步和协同的情况下,仍然保持内部数据正确且表现正确的行为,那么这个类就是线程安全的。线程安全的等级线程对立,线程兼容,有条件的线程安全,线程安全,不可变。(1)不可变类:不可变的对象一定是线程安全的。如:final类修饰的不可变类,String,Integer等;enum枚举类。1、编译javac;反编译jad2、enum底层是一个final类..

2021-03-08 10:49:04 102

原创 SpringMVC 源码分析

一、回顾 SpringMVC 原理二、 SpringMVC 源码分析1 DispatcherServlet1.1 DispatcherServlet 继承结构 1.1.1 HttpServletBeanHttpServletBean 覆写了 init 方法,主要做一些初始化的工作,将 web.xml 中配置的参数设置到 Servlet 中。比如 servlet 标签的子标签 init-param 标签中配置的参数 1.1.1.1 ServletConf...

2021-02-26 15:33:08 769

原创 Spring 底层源码分析

Spring 底层源码分析一、 Spring 回顾Spring 案例二、 Spring 运行原理Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的Bean 配置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准备就绪的运行环境。三、 Spring 源码分析1 ApplicationContext 1.1Spring 中 IOC 容器分类Spring 中有两个主要的容...

2021-02-26 09:40:47 636

原创 Mybatis 底层源码分析

Mybatis 底层源码分析一、 MyBatis 回顾MyBatis 案例二、 Mybatis 执行流程1 MyBatis 流程图2 MyBatis 源码分析 2.1 Configuration.xml该配置文件是 MyBatis 的全局配置文件,在这个文件中可以配置诸多项目。常用的内容是别名设置,拦截器设置等。 2.1.1 Properties (属性)将数据库连接参数单独配置在 db.properties 中,放在类路径下。这样只需要在SqlMa...

2021-02-25 16:34:57 180

原创 Tomcat 源码分析

一、 Tomcat 源码分析1 Tomcat 架构图1.1 ServerServer 服务器的意思,代表整个 tomcat 服务器,一个 tomcat 只有一个 ServerServer 中包含至少一个 Service 组件,用于提供具体服务。这个在配置文件中也得到很好的体现(port=“8005” shutdown="SHUTDOWN"是在 8005 端口监听到"SHUTDOWN"命令,服务器就会停止)1.2 ServiceService 中的一个逻辑功能层, 一个 Ser..

2021-02-25 15:47:38 490

原创 Servlet 源码分析

一、 Servlet 源码分析1 Servlet 结构图Servlet 和 ServletConfig 都是顶层接口,而 GenericServlet 实现了这两个顶层接口,然后HttpServlet 继承了 GenericServlet 类.所以要实现一个 Servlet 直接就可以继承 HttpServlet2 Servlet 接口public interface Servlet { //负责初始化 Servlet 对象。容器一旦创建好 Servlet 对象后,就...

2021-02-25 10:35:42 402 2

原创 构造请求/响应参数,提供通过路径方式存取值

import org.apache.commons.lang.StringUtils;import java.util.HashMap;import java.util.Map;import java.util.StringTokenizer;/** * @author dongl * @date 2019/10/15 15:28 */public class IntfParameterUtil { public static Map<String, Object> ..

2021-02-19 14:59:51 130

原创 java程序登录服务器执行命令

<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version></dependency>import com.google.common.base.Strings;import com.jcraft.

2021-02-08 14:16:42 515 1

原创 Spark(三)【SparkCore】- Spark 转换算子、行动算子、持久化算子、代码流程

1. Transformations 转换算子1.1 概念: Transformations 类算子是一类算子(函数)叫做转换算子,如map,flatMap,reduceByKey 等。Transformations 算子是延迟执行,也叫懒加载执行。1.2 Transformation 类算子: filter 过滤符合条件的记录数,true 保留,false 过滤掉。 map 将一个 RDD 中的每个数据项,通过 map 中的...

2021-02-07 15:41:48 370

原创 Spark(二)【SparkCore】- Spark 核心原理

1. RDDa、概念RDD(Resilient Distributed Dateset),弹性分布式数据集。b、 RDD 的五大特性: 1. RDD 是由一系列的 partition 组成的。 2. 函数是作用在每一个 partition(split)上的。 3. RDD 之间有一系列的依赖关系。 4. 分区器是作用在 K,V 格式的 RDD 上。 5. RDD 提供一系列最佳的计算位置。 c、 RDD 理解图:注意:1)、te.

2021-02-07 15:13:06 195

原创 Spark(一)【SparkCore】- Spark 简介

1. 什么是 SparkApache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是 UC Berkeley AMP lab (加州大学伯克利分校的 AMP 实验室)所开源的类 Hadoop MapReduce 的通用并行计算框架,Spark 拥有Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce

2021-02-07 15:00:32 107

原创 工具类 验证数据库连通性 - 验证SQL执行是否成功

/** * 1、验证数据库连通性 * 2、验证SQL执行是否成功 * @date 2021/2/1 19:05 */import java.sql.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class JDBCTool { public static Connection getConnection(Strin.

2021-02-02 19:01:41 485

原创 Flink (四) Flink 的安装和部署- Flink on Yarn 模式 / 集群HA / 并行度和Slot

接上一篇Flink (三) Flink 的安装和部署- -Standalone模式3. Flink 提交到 YarnFlink on Yarn 模式的原理是依靠 YARN 来调度 Flink 任务,目前在企业中使用较多。这种模式的好处是可以充分利用集群资源,提高集群机器的利用率,并且只需要 1 套 Hadoop集群,就可以执行 MapReduce 和 Spark 任务,还可以执行 Flink 任务等,操作非常方便,不需要维护多套集群,运维方面也很轻松。Flink on Yarn 模式需要依赖 H..

2021-01-28 16:13:50 1818

原创 Flink (三) Flink 的安装和部署-Standalone模式

Flink 的安装和部署Flink 的安装和部署主要分为本地(单机)模式和集群模式,其中本地模式只需直接解压就可以使用,不以修改任何参数,一般在做一些简单测试的时候使用。本地模式在我们的课程里面不再赘述。集群模式包含:a、 Standalone。b、 Flink on Yarn。c、 Mesos。d、 Docker。e、 Kubernetes。f、 AWS。g、 Goole Compute Engine。目前在企业中使用最多的是 Flink on Yarn 模式。我们的课

2021-01-28 14:47:13 1857 1

原创 Hadoop-HDFS(十三) Hadoop 3.x 新特性( 了解)

13 Hadoop 3.x 新特性( 了解)1、将默认的最低 jdk 从 7 升级到 82、纠删码可以将 3 倍副本占据的空间压缩到 1.5 倍,并保持 3 倍副本的容错。由于在读取数据的时候需要进行额外的计算,用于存储使用不频繁的数据3、通过扩展 YARN 的资源类型,支持 CPU 和内存之外的其他资源,如 GPU、FPGA、软件许可证、本地存储等。4、重写了 hadoop 中的 shell 脚本,修复了很多长期存在的 bug 并添加了新特性。有一些改进兼容老版本,有一些不兼容。5、.

2021-01-19 10:04:22 374

原创 Hadoop-HDFS(十二) java 客户端操作 HDFS

12 java 客户端操作 HDFS12.1 windows 上部署 hadoop 包1. 部署包 win 版本,解压 hadoop-2.6.5-win10x64-1809.tar.gz 到 D:\devsoft目录下。2. 将 widows 版 本 hadoop-2.6.5/bin/hadoop.dll 、 winutils.exe 放 到c:/Windows/System32 下3. lib 整合$HADOOP_PREFIX/share/hadoop/{common,hdf...

2021-01-18 19:41:34 155

原创 Hadoop-HDFS(十一) Hadoop NameNode HA 高可用

11 Hadoop NameNode HA11.1 概述HDFS 2.x解决 HDFS 1.0 中单点故障和内存受限问题,联邦 HAHDFS2.x 中 Federation 和 HA 分离,HA 只能有两个 NameNode解决单点故障HDFS HA:通过主备 NameNode 解决如果主 NameNode 发生故障,则切换到备 NameNode 上。解决内存受限问题HDFS Federation(联邦);水平扩展,支持多个 NameNode;(1)所有 NameN.

2021-01-18 19:07:07 422

原创 Hadoop-HDFS(十) Hadoop Federation(了解)联邦

10 Hadoop Federation (了解)联邦10.1 NameNode 需要多少内存问题:NameNode 需要多大的内存?业界看法:1GB 内存放 1,000,000block 元数据。200 个节点的集群中每个节点有 24TB 存储空间,block 大小为 128MB,block 复制因子为 3,能存储大概 12500,000 个 block(或更多):200×24,000,000MB/(128MB×3)。此时,NameNode 内存大概需要 12.5GB。5000 个节.

2021-01-18 17:37:46 158

原创 Hadoop-HDFS(八) HDFS 的读写流程

8 HDFS 的读写流程8.1 HDFS 写文件流程(重点)8.1.1 流程1. 调用客户端的对象 DistributedFileSystem 的 create 方法;2. DistributedFileSystem 会发起对 namenode 的一个 RPC 连接,请求创建一个文件,不包含关于 block 块的请求。namenode 会执行各种各样的检查,确保要创建的文件不存在,并且客户端有创建文件的权限。如果检查通过,namenode 会创建一个文件(在 edits 中,同时更新内.

2021-01-18 17:08:25 75

原创 Hadoop-HDFS(七) hadoop 的安全模式

7 hadoop 的安全模式7.1 工作流程( 理解)1. 启动 NameNode,NameNode 加载 fsimage 到内存,对内存数据执行 edits log 日志中的事务操作。2. 文件系统元数据内存镜像加载完毕,进行 fsimage 和 edits log 日志的合并,并创建新的 fsimage 文件和一个空的 edits log 日志文件。3. NameNode 等待 DataNode 上传 block 列表信息,直到副本数满足最小副本条件。4. 当满足了最小副本条件,再.

2021-01-18 16:38:53 256

原创 Hadoop-HDFS(五、六) 数据块副本放置策略、HDFS 的权限 (了解)

5 数据块副本放置策略Block 的副本放置策略第一个副本:放置在上传文件的 DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。第二个副本:放置在于第一个副本不同的机架的节点上。第三个副本:与第二个副本相同机架的节点。更多副本:随机节点源代码:6 HDFS 的权限 (了解)1、每个文件和目录都和一个拥有者和组相关联。2、文件或者目录对与拥有者、同组用户和其他用户拥有独立的权限。3、对于一个文件,r 表示读取的权限,w 表示写或者追加的权限。..

2021-01-18 16:27:55 400

原创 Hadoop-HDFS(四) HDFS 角色分析

4 HDFS 角色分析4.1NameNodeNameNode 管理文件系统的命名空间1. 文件和目录的元数据:(运行时,元数据放内存) 文件的 block 副本个数 修改和访问的时间 访问权限 block 大小以及组成文件的 block 信息列表2. 以两种方式在 NameNode 本地进行持久化: 命名空间镜像文件(fsimage)和编辑日志(edits log)。3. fsimage 文件不记录每个 block 所在的 DataN...

2021-01-18 16:20:14 467

原创 Hadoop-HDFS(三) HDFS 架构

3 HDFS 架构3.1 前提和设计目标 1. 硬件错误 a) 硬件错误是常态而不是异常。 b) HDFS 可能由成百上千的服务器所构成,单机故障概率的存在意味着总有一部分服务器不工作的。 c) 错误检测和快速自动恢复是 HDFS 最核心架构目标。 2. 流式数据访问 a) 运行在 HDFS 上的应用需要流式访问它们的数据集。 b) HDFS 的设计重点是批处理,而不是交互处理。是高吞吐量而不是低延迟...

2021-01-18 15:44:23 169 1

原创 Hadoop-HDFS(二)hadoop 起源

2 hadoop 起源2.1 发展历史 Doug Cutting1. 2002 年10月,Doug Cutting 和Mike Cafarella创建了开源网页爬虫项目Nutch。2. 2003 年 10 月,Google 发表 Google File System 论文。3. 2004 年 7 月,Doug Cutting 和 Mike Cafarella 在 Nutch 中实现了类似 ...

2021-01-18 15:22:44 692

原创 Hadoop-HDFS(一) 1T 文件操作的思考( 理解)

1T 文件操作的思考( 理解)1. 分治思想引入案例2. 单机处理大数据的问题3. 集群分布式处理大数据4. 集群分布式处理大数据优劣的辩证1.1 分治 思想引入案例1. 十万个元素(单词)需要存储,如何存储?2. 如果想查找某一个元素,最简单的遍历方式的复杂度是多少?3. 如果我们期望复杂度是 O(4)呢?• 分而治之的思想非常重要,常见于以下技术:1. Redis 集群2. Hadoop3. Hbase4. ElasticSearch1..

2021-01-18 15:07:46 623

原创 Hadoop-HDFS(九)HDFS 完全分布式搭建

9.1 规划node1 node2 node3 node4 NameNode SecondaryNameNode DataNode-1 DataNode-2 DataNode-3 1) 基础设置 a) 网络 b) Ssh: 哪个节点将公钥分发,成为启动 start-dfs.sh 脚本的主机和这个主机上的进程没有关系 c) Jdk2) 应用搭建 a) 部署&配置 b)...

2021-01-14 20:45:20 94

原创 opentsdb安装+grafana

一、环境说明:系统版本Description:CentOSLinuxrelease7.4.1708(Core)Release:7.4.1708Codename:Core内核版本Linuxversion3.10.0-327.el7.x86_64集群搭建:10.10.22.11node110.10.22.12node210.10.22.13node310.10.22.14node4二、准备工作:下载安装包:1、jdk下载:...

2021-01-14 19:46:21 217

原创 Hbase(六)hbase java api 操作增删改查

2.1 hbase java api 操作1、创建 java 项目2、添加依赖 jar 包hadoop 和 hbase 的 jar 包,$HBASE_HOME/lib3、编写示例程序package com.bs.hbase;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.

2021-01-14 11:57:14 148

原创 Hbase(五)hbase 读写流程

1.5hbase 读写流程1.5.1 LSMTreeLSM 树(log-structured merge-tree)。输入数据首先被存储在日志文件(HLog),这些文件内的数据完全有序。当有日志文件被修改时,对应的更新会被先保存在内存中来加速查询。当系统经历过许多次数据修改,且内存(存放数据)空间被逐渐被占满后,LSM树会把有序的“键-记录”对写到磁盘中,同时创建一个新的数据存储文件(storefile)。此时,因为最近的修改都被持久化了,内存中保存的最近更新就可以被丢弃了。存储文件的.

2021-01-14 11:46:54 147

原创 Hbase(四)hbase 数据模型进阶

1.4 hbase 数据模型进阶row key timestamp CF1 CF2 CF3 11248112 t3 CF2:m1=val1 CF3:k3=val3 t2 CF1:q2=val2 CF1:q3=val3 t1 CF1:q2=val1 rowkey cf1:q2 获取最新数据rowkey , CF1, q2, t2 四维数据库,获取指定列族指定列指定时间戳的数据...

2021-01-13 20:29:18 298

原创 Hbase(三)hbase  完全分布式-生产环境搭建及客户端常用命令基础操作

1.3 hbase 搭建方式以及搭建流程搭建方式:独立模式、伪分布式、完全分布式实际上,您需要完全分布式配置才能完全测试 HBase 并在实际场景中使用它。在分布式配置中,群集包含多个节点,每个节点运行一个或多个 HBase 守护程序。其中包括主要和备用 Master,多个 Zookeeper 节点和多个 RegionServer 节点。规划如下:NodeName Master Zookeeper RegionServer node1 yes no

2021-01-12 12:40:23 556

原创 Hbase(二)hbase  架构

1.2 hbase 架构目录表 hbase:meta目录表 hbase:meta 作为 HBase 表存在,并从 hbase shell 的 list(类似 show tables)命令中过滤掉,但实际上是一个表,就像任何其他表一样。hbase:meta 表(以前称为.META.),保有系统中所有 region 的列表。hbase:meta位置信息存储在 zookeeper 中。hbase:meta 表是所有查询的入口表结构如下:key:region 的 key,结构为:[tab

2021-01-12 11:32:08 158 1

原创 Hbase(一)hbase  概述

1.1 hbase 概述1.1.1 介绍Welcome to Apache HBase™Apache HBase™ is the Hadoop database, a distributed, scalable, bigdata store.Use Apache HBase™ when you need random, realtime read/write accessto your Big Data. This project's goal is the hosting of ver.

2021-01-12 11:20:42 165

原创 设计模式(二十六)设计模式GOF23-汇总总结

• GOF23中设计模式一览表创建型模式 结构型模式 行为型模式 简单工厂模式 抽象工厂模式 工厂方法模式 单例模式 建造者模式 原型模式 适配器模式 桥接模式 组合模式 装饰器模式 外观模式 享元模式 代理模式 责任链模式 解释器模式 模板方法模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 • 创建

2021-01-11 09:19:51 76

php 地方门户网站系统

用PHP做的地方政府网站系统 项目饱满 数据库 源码 部署即可使用 5人小组做了接近两个月才完成。

2014-01-28

空空如也

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

TA关注的人

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