自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Flume使用

文章目录一、Flume简介二、Flume角色三、Flume传输过程四、Flume部署及使用4.1、文件配置4.2、案例4.2.1、案例一:监控端口数据4.2.2、案例二:实时读取本地文件到HDFS4.2.3、案例三:实时读取目录文件到HDFS4.2.4、案例四:Flume与Flume之间数据传递:...

2019-02-16 22:04:43

阅读数 283

评论数 0

原创 SparkSQL应用解析

文章目录第1章 Spark SQL概述1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 Dataframe1.2.3 Dataset1.2.4 三者的共性1.2.5 三者的区别第2章 执行SparkSQL查询2.1 命令行查询流程2.2 IDEA创建Sp...

2019-02-15 17:01:54

阅读数 109

评论数 0

原创 SparkCore应用解析

文章目录RDD概念RDD概述什么是RDDRDD的属性1.3 RDD弹性1.4 RDD特点1.4.1 分区1.4.2 只读1.4.3 依赖1.4.4 缓存1.4.5 checkpoint第2章 RDD编程2.1 编程模型2.2 创建RDD2.3 RDD编程2.3.1 Transformation2....

2019-02-14 17:07:23

阅读数 67

评论数 0

原创 Spark基础解析

文章目录安装【Standalone】2.4 配置Spark【Standalone】2.5 配置Job History Server【Standalone】2.6 配置Spark HA【Standalone】【Yarn】配置Spark【Yarn】执行Spark程序执行第一个spark程序(stand...

2019-02-12 16:35:09

阅读数 297

评论数 0

原创 hive安装和基本操作(二)

文章目录查询基本查询(Select…From)全表和特定列查询列别名常用函数Limit语句Where语句Like和RLike分组Group By语句Having语句Join语句等值Join表的别名内连接左外连接右外连接满外连接连接谓词中不支持or排序全局排序(Order By)每个MapReduc...

2019-01-25 16:27:24

阅读数 89

评论数 0

原创 hive安装和基本操作(一)

文章目录hive的基本概念hive的优缺点优点缺点Hive架构原理Hive安装环境准备Hive安装部署将本地文件导入Hive案例MySql安装安装包准备安装MySql服务器安装MySql客户端MySql中user表中主机配置Hive元数据配置到MySql驱动拷贝配置Metastore到MySqlH...

2019-01-25 15:22:47

阅读数 538

评论数 0

原创 HBase的安装和使用

文章目录HBaes介绍1.1、HBase的起源1.2、HBase的角色1.2.1、HMaster1.2.2、RegionServer1.3、HBase的架构HBase部署与使用2.1、部署2.1.1、Zookeeper正常部署2.1.2、Hadoop正常部署2.1.3、HBase的解压2.1.4、...

2019-01-05 12:05:10

阅读数 178

评论数 0

原创 Kafka环境搭建和实战

Kafka集群部署环境准备集群规划Kafka集群部署Kafka命令行操作Kafka工作流程分析Kafka生产过程分析写入方式分区(Partition)副本(Replication)写入流程Broker 保存消息存储方式存储策略Zookeeper存储结构Kafka消费过程分析消费模型API消费者组...

2018-12-29 11:17:45

阅读数 351

评论数 0

原创 MapReduce

MapReduce框架原理MapReduce工作流程InputFormat数据输入Job提交流程和切片源码详解FileInputFormat切片机制CombineTextInputFormat切片机制InputFormat接口实现类自定义InputFormatMapTask工作机制并行度决定机制...

2018-11-23 17:58:50

阅读数 56

评论数 0

原创 HDFS HA高可用

目录HA概述HDFS-HA工作机制HDFS-HA工作要点HDFS-HA自动故障转移工作机制HDFS-HA集群配置环境准备规划集群配置Zookeeper集群配置HDFS-HA集群启动HDFS-HA集群配置HDFS-HA自动故障转移YARN-HA配置YARN-HA工作机制配置YARN-HA集群 HA概...

2018-11-21 17:46:35

阅读数 40

评论数 0

原创 Hadoop编译源码

目录前期准备工作jar包安装编译源码常见的问题及解决方案 前期准备工作 1)CentOS联网 配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的 注意:采用root角色编译,减少文件夹权限出现问题 2)jar包准备(hadoop源码、JDK7 、 maven...

2018-11-21 14:18:51

阅读数 71

评论数 0

原创 Hadoop运行环境搭建

目录Hadoop运行环境搭建虚拟机网络模式设置为NAT克隆虚拟机修改为静态ip修改主机名关闭防火墙在opt目录下创建文件安装jdk安装HadoopHadoop运行模式本地运行Hadoop 案例官方grep案例官方wordcount案例伪分布式运行Hadoop案例启动HDFS并运行MapReduce...

2018-11-21 11:47:27

阅读数 363

评论数 0

原创 mysql高级(四)——锁

表锁(基于MYISAM引擎) 读锁 (共享锁)针对同一份数据多个操作同时进行而不会互相影响 当前session 其他session 可以查询当前锁定的表 可以查询被锁定的表 不可以查询其他未被锁定的表 可以查询其他未被锁定的表 ...

2018-09-17 16:21:09

阅读数 125

评论数 0

原创 mysql高级(三)——sql调优

小表驱动大表 使用in的sql:select * from A where id in (select id from B) 等价于: for select id from B for select * from A where A.id = B.id 当B...

2018-09-16 22:30:41

阅读数 4304

评论数 0

原创 mysql高级(二)——索引实战

上述就是mysql索引失效的各种原因,下面我们来实战 ALTER TABLE tb_user ADD INDEX idx_user_nap(NAME,age,pos);//建立复合索引 带头大哥不能死 前面我们建立了(name,age,po...

2018-09-16 12:40:31

阅读数 170

评论数 0

原创 mysql高级(一)——索引和explain介绍

什么是索引? 可以理解为排好序的快速查找数据结构 优势: 1.类似大学图书馆建书目索引,提高数据检索的效率,降低数据库的IO成本 2.通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗 劣势: 1.实际上索引也是一张表,保存了主键和索引字段,并...

2018-09-15 17:20:03

阅读数 277

评论数 0

原创 类文件结构(四)

Class文件是一组以8位字节为基础单位的二进制流,各个数据项严格按照顺序紧凑地排列在Class文件中,中间没有任何分隔符,整个Class文件存储的内容几乎全是程序运行的必要数据,没有空隙存在。当遇到8位字节以上空间的数据项时,则按照高位在前的方式分割成若干个8位字节进行存储。 根据J...

2018-09-13 11:50:34

阅读数 52

评论数 0

原创 jvm性能检测命令(三)

java的自动内存管理归结为:给对象分配内存和回收分配给对象的内存;下面我们来验证在使用Serial / Serial Old收集器下的内存分配和回收策略。 对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,jvm发起一次Minor G...

2018-09-07 11:41:44

阅读数 69

评论数 0

原创 垃圾收集算法和垃圾收集器(二)

对象已死吗 引用计数算法 : 给对象添加一个引用计数器,每当有一个地方引用它就+1,当引用失效时-1,任何时候当引用计数为0就证明可以被回收了.客观来说,引用计数实现简单,判断效率很高,但是解决不了循环引用的问题 python\actionScript3等一些语言使用引用计数来管理内存,但是...

2018-09-06 20:30:04

阅读数 55

评论数 0

原创 Java内存模型和内存泄漏实战(一)

java虚拟机在执行java程序过程中会把它所管理的内存划分为不同的数据区域。有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而简历和销毁。 上图的java运行时数据区,大体分为线程私有区和线程共享区 线程私有区 程序计数器:一块较小的内存空间,可以看...

2018-09-05 23:21:54

阅读数 186

评论数 0

原创 mybatis源码 (五) —— mybatis的事务如何被spring管理

要想使用spring的事务,要加入mybatis-spring依赖包 <!-- 引用插件依赖:MyBatis整合Spring --> <dependency> <gr...

2018-08-28 20:04:26

阅读数 1038

评论数 0

原创 mybatis源码 (四) —— 一级缓存和二级缓存

MyBatis的缓存分为两种 一级缓存,一级缓存是SqlSession级别的缓存,对于相同的查询,会从缓存中返回结果而不是查询数据库(也叫本地缓存)默认会启用 二级缓存,二级缓存是Mapper级别的缓存,定义在Mapper文件的标签中并需要开启此缓存,默认关闭 先看二级缓存:开启 o...

2018-08-28 17:15:34

阅读数 68

评论数 0

原创 mybatis源码 (三) —— mapper 动态代理以及select操作

String resource = "com/analyze/mybatis/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFa...

2018-08-28 16:46:33

阅读数 269

评论数 0

原创 mybatis源码 (二) —— SqlSession的创建

SqlSession session = sqlSessionFactory.openSession(); org.apache.ibatis.session.defaults.DefaultSqlSessionFactory#openSession() private SqlSess...

2018-08-28 15:28:37

阅读数 68

评论数 0

原创 mybatis源码 (一) —— SqlSessionFactory创建和mapper的解析

这篇主要分析SqlSessionFactory的构建过程,以及mybatis mapper文件的解析 先来看SqlSessionFactory的创建过程 String resource = "org/mybatis/example/mybatis-config.xml&a...

2018-08-28 14:29:00

阅读数 740

评论数 0

原创 Netty源码解析(九) —— channel的write操作

io.netty.channel.AbstractChannel#write(java.lang.Object) @Override /** * channel的写操作 */ public ChannelFuture write(Object ms...

2018-08-27 17:25:11

阅读数 578

评论数 0

原创 Netty源码解析(八) —— channel的read操作

客户端channel在建立连接之后会关注read事件,那么read事件在哪触发的呢? NioEventLoop中 /** * 读事件和 accept事件都会经过这里,但是拿到的unsafe对象不同 所以后续执行的read操作也不一样 ...

2018-08-25 14:41:47

阅读数 8716

评论数 0

原创 Netty源码解析(七) —— Pipeline的工作机制

Pipeline是一个由HandlerContext节点构成的双向环形链表,结构如下图,最前面是HeadContext,末尾是TailContext中间是用户自定义的HandlerContext节点 先来看pipLine的构造参数 /** * channelPipLi...

2018-08-24 15:43:04

阅读数 135

评论数 0

原创 Netty源码解析(六) —— 服务端channel如何完成注册

先看ServerBootstrap的继承关系 ServerBootstrap的成员变量 //worker group private volatile EventLoopGroup childGroup; //设置进来的childHandler pr...

2018-08-23 17:19:48

阅读数 854

评论数 0

原创 Netty源码解析(五) —— 客户端channel如何完成注册

上一篇我们拿到所有的accept到的channel之后,我们回头看事件通知 还记得io.netty.bootstrap.ServerBootstrap#init服务端启动的时候, ch.eventLoop().execute(new Runnable() { ...

2018-08-23 14:18:00

阅读数 216

评论数 0

原创 Netty源码解析(四) —— NioEventLoop处理io

NioEventLoop处理io的一些操作方法 io.netty.channel.nio.NioEventLoop#run /** * 启动服务 轮询selector */ @Override protected void run() { ...

2018-08-23 14:15:31

阅读数 772

评论数 0

原创 Netty源码解析(三) —— NioEventLoop初始化

这节我们来分析NioEventLoop的代码实现,还记得上节在NioEventLoopGroup中我们创建NioEventLoop,下面先看它的继承关系 构造方法 /** * @param parent NioEventLoopGroup * @par...

2018-08-22 17:31:03

阅读数 331

评论数 0

原创 Netty源码解析(二) —— NioEventLoopGroup(boss worker线程模型)

Netty的源码里面有example,参照echo demo启动netty服务 public final class EchoServer { static final boolean SSL = System.getProperty("ssl") ...

2018-08-22 16:01:37

阅读数 978

评论数 0

原创 Netty源码解析(一) —— nio的基本操作和reactor模型

大家都知道传统的bio(即阻塞io)的并发性能不高,原因是什么呢? ServerSocket要accept接受客户端socket是阻塞的,那么这个线程就一直被占用,这样才能保证客户端的连接都能被处理 accept到客户端的socket连接之后要再开一个线程来处理读写操作,这样又一个线程被占用 ...

2018-08-22 13:59:45

阅读数 203

评论数 0

原创 自己实现spring(二) —— mvc框架的实现

DispatchServlet初始化会调用initStrategies()方法 protected void initStrategies(ApplicationContext context) { //初始化多媒体解析器 initMultipartRes...

2018-07-18 17:25:48

阅读数 475

评论数 1

原创 自己实现spring(一) —— ioc容器实现

前言:加深对spring的理解,把spring ioc的大致流程抽出来,自己动手撸一个简洁版的 新建一个maven工程,这里使用idea工具 pom文件只依赖一个servlet <?xml version="1.0&...

2018-07-18 11:08:12

阅读数 1402

评论数 7

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