该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 在上一章(Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立) 我们提到,在输出流DFSOutputStream创建后,DataStreamer也随之创建,并且被启动 下文主要是围绕DataStreamer进行讲解 DataStreamer是一个守护线程类,继承关系如下.       观察DataStreamer的run方法,没有意外的,我们可以发现他和普通的做法一样,用…
该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 紧接着上一篇文章: Hadoop3.1.1源码Client详解 : Packet入队后消息系统运作之DataStreamer(Packet发送) : 主干 ResponseProcessor是DataStreamer的一个内部类 DataNode接收到Packet后需要向客户端回复ACK,表示自己已经收到Packet了,而接收处理ACK的线程类就是ResponseProcessor. 对每一个块的传…
该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 紧接着上一篇: Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立 先给出数据写入时的3个主要载体 载体1是我们实际要写入HDFS的数据,一般是字节数组 载体2是一个字节数组,这个字节数组位于校验和计算类FSOutputSummer的对象中 载体3是客户端和DataNode通信的重要载体,来自载体2的数据(3中的实际数据)被加上消息头和来自载体2的校验和,打成一个Pack…
该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 关于RPC(Remote Procedure Call),如果没有概念,可以参考一下RMI(Remote Method Invocation). 简言之,是一种对网络传输细节进行封装,并且对用户暴露被代理对象的一种思想. 我们知道NameNode和客户端一般是不在同一部机器上的,客户端(Client)通过RPC调用NameNode的方法,获得NameNode上 文件目录结构,块映射信息,文件权限,文…
一.设计原理 1.Hadoop架构: 流水线(PipeLine) 2.Hadoop架构: HDFS中数据块的状态及其切换过程,GS与BGS 3.Hadoop架构: 关于Recovery (Lease Recovery , Block Recovery, PipeLine Recovery) 二.源码详解 1. Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立 2. Hadoop3.1.1源码Client详解 : 入队前数据写入 3. 入队后消息系统运作 1.Hado…
很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们的技术能力.所以我最近决定写一个“NopCommerce源码架构详解”的系列,来详细剖析NopCommerce的架构和原理. Nopcommerce主要用到的技术及特点: 1.Entity Framework 2.ASP.NET mvc 3.IoC容器+依赖注入(Autofac) 4.使用EF中的E…
NopCommerce源码架构详解--初识高性能的开源商城系统cms   很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们的技术能力.所以我最近决定写一个“NopCommerce源码架构详解”的系列,来详细剖析NopCommerce的架构和原理. Nopcommerce主要用到的技术及特点: 1.Entity Framework 2.ASP.NE…
最近在研究外国优秀的ASP.NET mvc电子商务网站系统NopCommerce源码架构.这个系统无论是代码组织结构.思想及分层都值得我们学习.对于没有一定开发经验的人要完全搞懂这个源码还是有一定的难度的,所以也打算写一个跟蓝狐学习Nop--NopCommerce源码架构详解系列文章. 以下文章主要针对NopCommerce版本:Nop3.4 NopCommerce源码架构详解--初识高性能的开源商城系统cms NopCommerce源码架构详解--Autofac依赖注入分析 NopCommer…
首先得说一下,vue项目中productionSourceMap这个属性.该属性对应的值为true|false.   当productionSourceMap: true,时: 1.打包后能看到xxxx.js.map文件,map文件够通过反编译看到源码; 2.打包后会导致文件变大(因为多了很多map文件导致的):   当productionSourceMap: false,时: 1.打包后无法看到xxxx.js.map文件,所以无法进行反编译; 2.打包后的文件很小(因为没有map文件);  如…
8.软件 RPM包安装 8.1rpm安装 rpm[选项]软件包名称 主选项 -i 安装 -e卸载 -U升级 -q查找 辅助选项 -ⅴ显示过程 -h --hash 查询 -a-all查询所有安装的包 -f-file查询拥有<-file的包 -p查询一个没有安装的包 卸载 -nodeps忽略依赖 安装的时候要把centos7的iso文件拿过来,为什么要拿过来呢,因为里面的Packages里面就是rpm包. 具体路径是/run/media/wangzirui/Centos 7 X86_64/Packa…
1.Makefile的作用 (1)决定编译哪些文件 (2)怎样编译这些文件 (3)怎样连接这些文件,最重要的是它们的顺序如何 2.Linux内核Makefile分类 ********************************************************************* 顶层Makefile:它是所有Makefile文件的核心,从总体上控制着内核的编译. 连接 .config    :配置文件,在配置内核时生成,所有Makefile文件(包括顶层 目录及各级子目…
原文出处: 小宝鸽 一.Redis了解 1.1.Redis介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效…
1. 官方文档及参考链接 l 关于词典问题Issue,首先参考:FAQ l 自定义词典其实是基于规则的分词,它的用法参考这个issue l 如果有些数量词.字母词需要分词,可参考:P2P和C2C这种词没有分出来,希望加到主词库 l 关于词性标注:可参考词性标注 2. 源码解析 分析 com.hankcs.demo包下的DemoCustomDictionary.java 基于自定义词典使用标准分词HanLP.segment(text)的大致流程(HanLP版本1.5.3).首先把自定义词添加到词库…
1. 前言 本文将基于flask 0.1版本(git checkout 8605cc3)来分析flask的实现,试图理清flask中的一些概念,加深读者对flask的理解,提高对flask的认识.从而,在使用flask过程中,能够减少困惑,胸有成竹,遇bug而不惊. 在试图理解flask的设计之前,你知道应该知道以下几个概念: flask(web框架)是什么 WSGI是什么 jinja2是什么 Werkzeug是什么 本文将首先回答这些问题,然后再分析flask源码. 2. 知识准备 2.1 W…
spark简述 sparkContext在Spark应用程序的执行过程中起着主导作用,它负责与程序和spark集群进行交互,包括申请集群资源.创建RDD.accumulators及广播变量等.sparkContext与集群资源管理器.work节点交互图如下: 官网对图下面几点说明: (1)不同的Spark应用程序对应该不同的Executor,这些Executor在整个应用程序执行期间都存在并且Executor中可以采用多线程的方式执行Task.这样做的好处是,各个Spark应用程序的执行是相互隔…
1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这样每个线程使用自己的对象实例,彼此不会影响达到隔离的作用,从而就解决了对象在被共享访问带来线程安全问题.如果将同步机制和threadLocal做一个横向比较的话,同步机制就是通过控制线程访问共享对象的顺序,而threadLocal就是为每一个线程分配一个该对象,各用各的互不影响.打个比方说,现在有1…
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 直接利用空参数构造方法,即可获取当前时间对象; 常用方法 getTime()可以获取时间对象对应的毫秒值 格式化类-SimpleDateFormat 概述 专门用于将时间对象与字符串进行相互转换的工具类; 作用 1:可以将时间对象转字符串 2:可以将字符串转成时间对象 构造方法 传递一个字符串实参的…
./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本.make是用来编译的,它从Makefile中读取指令,然后编译.make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置. AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西. -----1.configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上…
首先: java EE 上的hello2项目是一个部署在glass fish上的开发源码的java web项目,在终端通过命令行使用maven进行打包成.war文件,最后部署到相关的glass fish服务器上. Java EE 的hello2 不同于hello1 的不同之处在于,前者可以直接通过hello1项目名进行访问文件,后者需要通过访问编写的greeting的web文件才能够访问到hello2文件. 其中的原因在于如下: 1:在hello2的项目中,采用的是Java servlet  技…
转自:http://www.cnblogs.com/Daniel-G/p/3286614.html 随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中.面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核.这就需要了解 Linux 的内核配置系统. 众所周知,Linux 内…
转自:http://www.cnblogs.com/Daniel-G/p/3286614.html 随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中.面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核.这就需要了解 Linux 的内核配置系统. 众所周知,Linux 内…
目录 C++教程 前言 视频教程 文字教程 集成开发环境(IDE) 编译器 工作原理 学习指南 入门书籍 进阶书籍 算法.竞赛书籍 教程 标准构建 程序解释 第一个C++程序--"hello world" 编译 C++基础语法 输入与输出 C++风格 C风格 变量 全局变量 局部变量 常量 注释 C++关键字.保留字 C++数据类型 数字类型 整形 浮点型 布尔类型 字符类型 小测试 运算符 算术运算符 实例 实例 关系运算符 实例 实例 逻辑运算符 实例 实例 数组 声明数组 初始化…
HTTP 状态响应码 意思详解/大全 转:http://blog.csdn.net/helin916012530/article/details/29842595 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到RFC 2518.RFC 2817.RFC 2295.RFC 2774.RFC 4918等规范扩展. 所有状态码的第一个数字代表了响应的五种状态之一. 1xx 消息 这一类型的状态码,代表请求…
目录 RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 本次分析基于 RocketMQ release-4.5.2 版本. 分析的目标是: RocketMQ 中 Producer 是怎么将消息发送至 Broker 的? 说到学习源码,首先当然是要把源代码…
目录 RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 本次分析基于 RocketMQ release-4.5.2 版本. 分析的目标是: RocketMQ 中 Producer 是怎么将消息发送至 Broker 的? 说到学习源码,首先当然是要把源代码下载下来,官…
Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析 前言 上一篇文章Spring Ioc源码分析系列--Ioc源码入口分析已经介绍到Ioc容器的入口refresh()方法,并且分析了refresh()方法里面的前三个子方法分析了一下.还记得分析了什么麽?估计早忘了分析了什么,可以说是看了个寂寞.但是不要慌,看了忘肯定是正常的,需要回顾复习一下,最好做点笔记记录一下,有自己的沉淀才会印象深刻.最好跟着代码自己调试几遍,纸上得来终觉浅,绝知此…
Class字节码中有两种数据类型: 字节数据直接量:这是基本的数据类型.共细分为u1.u2.u4.u8四种,分别代表连续的1个字节.2个字节.4个字节.8个字节组成的整体数据. 表:表是由多个基本数据或其他表,按照既定顺序组成的大的数据集合.表是有结构的,它的结构体现在,组成表的成分所在的位置和顺序都是已经严格定义好的. Class字节码总体结构如下: 具体详解请参考http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html 我在这…
1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, 5丶nginx使用平台:unix,linux,windows都可以 6丶官网:http://nginx.org 2.nginx应用场景 1丶静态处理 2丶反向代理 3丶负载均衡 4丶资源缓存 5丶安全防护 6丶访问限制 7丶访问认证 3.nginx特性 1丶基于I/O多路复用,I/O复用解决的是并…
一.前言 SDWebImage,非常友好的网络图片加载第三方框架,在GitHub中已经获得了15000++的star,链接地址:https://github.com/rs/SDWebImage 本人分析源码比较喜欢使用Xmind思维导图,非常方便做流程记录.所以,下面直接给大家伙看思维导图. 二.SDWebImage 优缺点 2.1.纯属个人看法,优点可能不止这些,下面的有点个人觉得很值得学习.…
不多说,直接上干货! 在前面的博文里,我已经介绍了 大数据入门基础系列之Linux操作系统简介与选择 大数据入门基础系列之虚拟机的下载.安装详解 大数据入门基础系列之Linux的安装详解 大数据入门基础系列之远程连接工具下载和安装详解 大数据入门基础系列之Apache版本的hadoop集群详细部署搭建(包括HA和非HA)(包括单节点.3节点.5节点) 大数据入门基础系列之CDH版本的hadoop集群详细部署搭建(3节点) 大数据入门基础系列之ClouderManager版本的hadoop集群详细…