自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Master-TJ的个人博客

https://github.com/Tjcug

  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hadoop详解(十):Hadoop 作业调度机制

Hadoop 作为一个分布式计算平台,从集群计算的角度分析,Hadoop可以将底层的计算资源整合后统一分配到集群中的计算节点,从而达到分布式和并行计算的目的,最终完成任务的高效执行。在调度机制中涉及的三个核心问题:计算资源的组织用户作业的选择任务的分配策略在目前的Hadoop 系统中,默认的调度器为FIFO调度,主要适合单队列的批处理作业需求,针对多用户多队列的控制需求,雅虎开发并...

2019-01-29 23:37:37 2803

原创 Hadoop详解(九):Hadoop Streaming和Pipes原理和实现

为了保证编程接口的通用性,Hadoop提供了Streaming和Pipes编程框架和接口,Streaming编程框架通过标准的输入/输出作为媒介来和Hadoop框架交换数据,因此任何可以操作的标准输入/输出的编程语言都可以基于Hadoop进行并行应用1. Hadoop Streaming1.1 Streaming 原理浅谈Streaming的原理:通过标准的输入/输出管道让用户的程序和Had...

2019-01-29 14:25:44 1451

原创 Hadoop详解(八):MapReduce深度分析

1. MapReduce数据流向分析MapReduce是一种并行数据处理框架,首先我们需要关注系统中数据流向问题,也就是从输入到输出过程中的数据传输问题。1)从HDFS到Mpper节点输入文件。在一般情况下,存储数据的节点是Mapper运行的节点,不需要在节点之间进行数据传输,也就是尽量让存储靠近计算。但是由于用户的数据文件往往不是均衡的分布在整个集群中,则MapReduce的计算槽位资源却...

2019-01-29 01:55:27 798

原创 Hadoop详解(六):MapReduce计算框架详解

1. Hadoop MapReduce简介Hadoop MapReduce是一个使用简便的软件框架,是Google云计算模型MapReduce的Java开源实现,基于它写出来的应用程序能够运行在由上千万台普通机器注册的大型集群系统中,并以一种可靠地、容错的方式并行处理上T级别的数据集。Hadoop MapReduce基本思想:一个MapReduce作业通常会把输入的数据集合切分为若干独立的数据...

2019-01-27 13:34:16 4174

原创 Hadoop详解(七):YARYN完全分布式环境搭建

1. 前言本文搭建了一个由三节点(master、slave1、slave2)构成的Hadoop完全分布式集群,并通过Hadoop分布式计算的一个示例测试集群的正确性。本文将搭建一个支持Yarn的完全分布式环境2. Hadoop MapReduce架构Hadoop MapReduce使用的是主从架构体系主JobTracker:ResourceManager复杂调度分配每一个任务Task运...

2019-01-23 16:52:35 466

原创 Hadoop详解(五):HDFS HA 和 Federation

1. Hadoop 2.0 产生背景Hadoop 1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题HDFS存在的问题NameNode单点故障,难以应用于在线场景 HANameNode压力过大,且内存受限,影扩展性 FederationMapReduce存在的问题响JobTracker访问压力大,影响系统扩展性难以支持除MapReduce之外的计算...

2019-01-23 12:15:39 1684

原创 大数据:Hive和Hbase的区别于优势

1. 前言最近在研究大数据相关知识,Hive和Hbase是之前本科的时候调研过的两个数据仓库。现在特把这两个数据仓库拿来总结以下,这两个数据仓库各自由各自的特点,可以应用与不同的应用场景。对于大数据开发工程师,有必要了解这两个数据仓库的区别以及各自的应用场景。2. Hive 和HBase简介Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查...

2019-01-21 21:55:39 2035

原创 Hadoop详解(四):HDFS shell操作和Java API操作

1. HDFS环境准备1.1 HDFS的格式化与启动HDFS配置完之后就可以对其进行格式化操作。在NameNode所在机器上执行如下命令进行HDFS的格式化操作:hadoop namenode --format在完成hdfs的格式化之后,就可以开始启动HDFS系统了,执行如下命令启动HDFS:bin/start-dfs.sh1.2. HDFS运行检查用户可以使用HDFS的管理...

2019-01-21 21:00:14 2673

原创 Hadoop详解(二):HDFS存储系统设计原理

1. 基本概念1.1 NameNodeHDFS采用Master/Slave架构。NameNode就是HDFS的Master架构。HDFS系统包括一个NameNode组件,主要负责HDFS文件系统的管理工作,具体包括名称空间(namespace)管理,文件Block管理。NameNode提供的是始终被动接收服务的server,主要有三类协议接口:ClientProtocol接口,提供给客户...

2019-01-21 19:14:38 1690

原创 Hadoop详解(三):HDFS完全分布式环境搭建

1. 前言本文搭建了一个由三节点(master、slave1、slave2)构成的Hadoop完全分布式集群,并通过Hadoop分布式计算的一个示例测试集群的正确性。2. 基础集群的搭建目的:获得一个可以互相通信的三节点集群使用VMware安装master节点(稍后其他两个节点可以通过复制master节点的虚拟机文件创建)。三个节点存储均为30G默认安装,master节点内存大小为1GB...

2019-01-21 16:47:59 777

原创 Hadoop详解(一):Hadoop简介

1. Hadoop 起源1.1 Hadoop的身世首先我们介绍一下Nutch的发展情况,Nutch是一个以Lucene为基础实现的搜索引擎系统,Lucene为Nutch提供了文本检索和索引的API,Nutch不仅仅有检索的功能,还有网页数据采集的功能。1.2 Hadopop简介Hadoop本质上起源于Google的集群系统,Google的数据中心使用廉价的Linux PC机组成集群,用其运...

2019-01-21 12:03:39 3389 1

原创 Zookeeper分布式一致性原理(十一):Zookeeper在JStorm中应用

Storm 是Twitter开源的一个高容错的分布式实时计算系统,而JStorm是阿里巴巴集团中间件团队在Storm基础上改造和优化的一个分布式实时计算引擎,它使用Java语言开发。JStorm是一个类似与Hadoop MapReduce的分布式计算系统,用户按照指定的接口编写一个任务程序,然后将这个任务程序提交给Jstorm系统,Jstorm系统会复杂7*24小时运行并调度该任务。在运行过程中...

2019-01-20 14:23:13 891 1

原创 Zookeeper分布式一致性原理(十):Zookeeper在大型分布式系统的应用

1. Hadoop在Hadoop中,ZooKeeper主要用于实现HA(High Availability),这部分逻辑主要集中在Hadoop Common的HA模块中,HDFS的NameNode与YARN的ResourceManger都是基于此HA模块中,HDFS的NameNode与YARN的ResourceManger都是基于此HA模块来实现自己的HA功能的。同时,在YARN中又特别提供了Z...

2019-01-19 21:37:52 1000

原创 Zookeeper分布式一致性原理(九):Zookeeper分布式应用

1. Master选举在分布式系统中,Master往往用来协调集群中其他系统单元,具有对分布式系统状态变更的决定权,如在读写分离的应用场景中,客户端的写请求往往是由Master来处理,或者其常常处理一些复杂的逻辑并将处理结果同步给其他系统单元。利用Zookeeper的强一致性,能够很好地保证在分布式高并发情况下节点的创建一定能够保证全局唯一性,即Zookeeper将会保证客户端无法重复创建一个已...

2019-01-19 20:23:34 722

原创 Zookeeper分布式一致性原理(八):Zookeeper典型应用场景

1. 简介Zookeeper是一个高可用的分布式数据管理和协调框架,并且能够很好的保证分布式环境中数据的一致性。在越来越多的分布式系统(Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用。典型应用场景数据发布/订阅负载均衡命名服务分布式协调/通知集群管理Master选举分布式锁分布式队列2. 数据发布/订阅数据发布/订阅系统,即配置中心。需要...

2019-01-19 20:21:21 924

原创 Zookeeper分布式一致性原理(七):Curator客户端

1. Curator简介Curator是Netfix公司开源的一套Zookeeper客户端。Curator解决了很多Zookeeper客户端非常底层的细节开发工作,包括重连、反复注册Watcher和NodeExistsException异常等。目前已经成为Apache的顶级项目,是全世界范围内使用最广泛的Zookeeper客户端Curator Maven依赖 <!-- https:/...

2019-01-18 15:07:58 761

原创 RDMA技术详解(三):理解RDMA Scatter Gather List

1. 前言在使用RDMA操作之前,我们需要了解一些RDMA API中的一些需要的值。其中在ibv_send_wr我们需要一个sg_list的数组,sg_list是用来存放ibv_sge元素,那么什么是SGL以及什么是sge呢?对于一个使用RDMA进行开发的程序员来说,我们需要了解这一系列细节。2. SGE简介在NVMe over PCIe中,I/O命令支持SGL(Scatter Gather...

2019-01-17 16:42:38 7991 2

原创 RDMA技术详解(二):RDMA Send Receive操作

1. 前言RDMA指的是远程直接内存访问,这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。RDMA与传统的网络接口不同,因为它绕过了操作系统。这允许实现了RDMA的程序具有如下特点:绝对的最低时延最高的吞吐量最小的CPU足迹 (也就是说,需要CPU参与的地方被最小化)2. RDMA Verbs操作使用RDMA, 我们需要有一张实现了RDMA引擎的网卡。我们把这种卡称...

2019-01-17 15:15:43 7396 1

原创 RDMA技术详解(一):RDMA概述

1. DMA和RDMA概念1.1 DMADMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统CPU的参与,大大降...

2019-01-17 12:56:53 18629 4

原创 计算机网络:TCP滑动窗口的流量控制和拥塞控制

1. 前言最近在研究网络通信底层通信原理,所以不得不复习一波计算机网络传输控制协议。那么对于程序开发人员,了解底层网络通信原理,对于我们理解BIO、NIO网络通信十分重要。所以对于程序开发人员来说,我们需要了解这方面的知识。2. 传输控制协议简介TCP网络传输是面向字节流:TCP中的流(Stream)就是指的是流入到进程或者从进程流出的字节序列。虽然应用程序和TCP的交互是一次一个数据块(也...

2019-01-17 10:17:56 3365 1

原创 计算机网络:Socket网络通信底层数据传输

1. 前言最近在研究RDMA的实时流处理系统,其中需要比较RDMA高速网络通信和传统Socket网络通信的传输特点进行比较。所以我们就来总结游戏传统Scoket网络通信的特点,对于一个程序开发人员来说,我们还需要了解Scoket网络通信的底层数据传输知识。2. Socket简介Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用...

2019-01-17 08:56:13 2531 1

原创 Zookeeper分布式一致性原理(六):Zookeeper开源客户端zkClient

zkClient 是GitHub上的一个开源Zookeeper客户端项目,是由Datameer的工程师Stefan和Groschupf和PeteVoss一起开发的。zkClient在Zookeeper原生的API接口之进行了包装,是一个简易的Zookeeper客户端。同时,zkClient在内部实现了诸如Session超时重连,Watcher反复注册等功能,使得Zookeeper客户端的繁琐的细节...

2019-01-16 19:32:22 548

原创 Zookeeper分布式一致性原理(五):Zookeeper-Java-API

1. 部署与运行ZK文档 http://zookeeper.apache.org/doc/r3.4.13/zookeeperStarted.htmlZK下载 https://www.apache.org/dyn/closer.cgi/zookeeper/2. 客户端脚本运行 zkCli.sh连接到Zookeeper集群2.1 创建使用create命令创建一个Znode节点,用法...

2019-01-16 09:03:25 590

原创 Vmware虚拟机网络模式NAT模式

1. 前言最近使用Vmware搭建虚拟机环境,不得不要使用NAT模式来实现虚拟机内部网络到外部网络的网络地址转换功能。我们知道在计算机网络中NAT模式可以分为以下三个模式:静态NAT、动态NAT、网络地址端口转换NPAT这三种类型。我个人认为Vmware中的NAT模式是使用的网络地址端口转换NPAT这种类型,因为Vmware中我们外网网络公共IP地址只有我们主机Ip一个,一般无法实现动态IP地址...

2019-01-15 10:02:34 707

原创 计算机网络:NAT基本原理

1. 前言最近在研究搭建Vmware虚拟机环境,所以不得不重新学习NAT虚拟机网络配置。在Vmware中虚拟机网络配置有三种:Host-Only(主机模式)、Bridge(桥接模式)、NAT(网络地址转换模式)。在使用网络地址转换的时候遇到了一些问题,所以这里我将重新复习一些计算机网络知识NAT模式。2. 名称概念公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或...

2019-01-15 10:01:55 22942 3

原创 Zookeeper分布式一致性原理(四):Zookeeper简介

zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、master选举、分布式锁和分布式队列等。1. Zookeeper 介绍Zookeepr是一个开源你代码的分布式协调服务,由知名互联网公司雅虎创建,时Google Chubby的开源实现。Zookeeper的设计目标时将那些复杂且容易出错的分布式...

2019-01-14 21:22:24 2766

原创 Zookeeper分布式一致性原理(三):Chubby分布式锁服务

1. ChubbyGoogle Chubby 是一个大名鼎鼎的分布式锁服务,GFS和Big Table等大型系统都用他来解决分布式协作、元数据存储和Master选择等一系列与分布式锁服务相关的问题。Chubby的底层一致性实现就是以Paxos算法为基础的。1.1 概述Chubby是一个面向松耦合分布式系统的锁服务,通常用于为一个由大量小型计算机构成的松耦合分布式系统提供高可用的分布式锁服务。...

2019-01-14 16:35:23 2577

原创 Zookeeper分布式一致性原理(二):一致性协议

为了解决分布式一致性问题,在长期的研究过程中,提出了一大批经典的一致性协议和算法,其中最著名的就是2PC和3PC以及Paxos算法了。1. 2PC和3PC在分布式系统中,每个节点都明确知道自己事务操作的成功或失败,但无法获取其他分布式节点的操作结果。因此当一个事务需要跨节点进行事务操作时,需要引入协调者(Coordinator)组件来统一调度所有分布式节点的执行逻辑,这些被调度的节点称为参与者...

2019-01-14 11:08:17 798

原创 Zookeeper分布式一致性原理(一):分布式架构

分布式一致性问题在分布式系统中一个需要解决的重要问题就是数据的复制问题。分布式系统对于数据复制需求一般都来自以下两个原因:为了提高系统地可用性,以防止单点故障引起的系统不可用。提高系统地整体性能,通过负载均衡技术,能够让分布在不同地方的数据副本都能够为用户提供服务数据一致性就是指对一个数据副本进行更新的时候,必须能够更新其他的副本,否则副本之间的数据就将不一致。然而副本之间的数据不...

2019-01-14 10:28:51 815

原创 Spring 详解(五):Spring声明式事务

事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。本文主要讲解事务涉及到一些概念以及spring中事务的使用。1. 事务数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务四个属性ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部...

2019-01-12 14:31:27 503

原创 Spring 详解(四):Spring MVC

1. 跟踪Spring请求使用Spring构建的Web程序中,请求最先接触到的是Spring中的DispatcherServlet。从图中可以看见DispatcherServlet相当一个调度者,所有的核心环节最终都要汇总到DispatcherServlet中。对图流程的概要说明:DispatcherServlet其实是一个Servlet,用于拦截客户端的所有请求。在这里一个单实例的S...

2019-01-11 14:18:08 520

原创 Spring 详解(三):AOP 面向切面的编程

AOP即面向切面编程,它通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。常用于日志记录,性能统计,安全控制,事务处理,异常处理等等。中文名称:面...

2019-01-11 12:04:44 645

原创 Java高并发编程:性能与线程竞争

线程的最主要目的是提高程序的运行性能,线程可以使程序更加充分地发挥系统地可处理能力,从而提高系统的资源利用率。此外,线程还可以使程序在运行现有的任务的情况下即开始处理新的任务。但性能的提升会导致复杂性的提升,又会导致安全性和活跃性的风险1.对性能的思考提升性能意味着用更少的资源做更多地事情。要想通过并发来获得更好的性能,就要更有效地利用现有处理资源线程使用的额外的性能开销:线程之间的协调(...

2019-01-11 09:40:26 976 1

原创 Spring 详解(二):IOC 和DI

1 IOC 理解Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。IoC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于...

2019-01-10 19:46:36 486

原创 Spring详解:WebServlet 中不能注入Bean对象

1. 前言最近在研究Spring IOC、AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就是Servlet中不能通过@Autowired注入Bean对象。这个时候我就纳闷了,在Spring中明明对象的创建和管理交给Spring IOC容器去管理,纳闷为什么不能再容器中注入Bean对象? 下...

2019-01-10 17:22:47 3416 2

原创 Java高并发编程:活跃性危险

Java高并发程序中,不得不出现资源竞争以及一些其他严重的问题,比如死锁、线程饥饿、响应性问题和活锁问题。在安全性与活跃性之间通常存在依赖,我们使用加锁机制来确保线程安全,但是如果过度地使用加锁,则可能导致锁顺序死锁(Lock-Ordering DeadLock)。1.死锁死锁定义:当一个线程永远地持有一个锁,并且其他线程都尝试获取这个锁的时候,那么它们将永远被阻塞。在线程A持有L锁并且想获...

2019-01-10 10:38:18 668

原创 NIO详解(一):java网络编程IO总结(BIO、NIO、AIO)

1.基本概念在Java网络通信中,最基本的概念就是Socket编程了。Socket又称“套接字” 向网络发出请求或者应答网络请求。Socket 和ServerSocket类库位于 Java.net 包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Scoket实例,操作这个实例,完成所需要的会话。对于一个网络连接来说,套接字是...

2019-01-09 16:42:17 1374 1

原创 Java高并发编程:取消和关闭

Java没有提供任何机制来安全地终止线程,但是它提供了中断(Interruption).这是一种协作机制,能够使一个线程终止另一个线程当前的工作。在对一个线程对象调用Thread.interrupted()方法之后,一般情况下对这个线程不会产生任何影响。因为调用Thread.interrupted()方法只是将增线程的中断标志位设置为true。如果一个线程被调用Thread.interru...

2019-01-09 11:44:08 2411

原创 Spring详解(一):简介

Spring Framework创始人:Rod Johnson. 计算机专业本科,音乐学博士。有着相当丰富的C/C++技术背景的Rod早在1996年就开始了对Java服务器端技术的研究。轮子理论推崇者:轮子理论:不用重复发明轮子IT 行业:直接使用写好的代码Spring框架宗旨:不重新发明技术,让原有技术使用起来更加方便。Spring优点:方便解耦,简化开发,通过Sprin...

2019-01-09 09:55:56 794

原创 Java设计模式(二十三):访问者设计模式

1. 应用场景对于系统中的某些对象,它们存储在同一个集合中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同,访问者模式为解决这类问题而诞生。在实际使用时,对同一集合对象的操作并不是唯一的,对相同的元素对象可能存在多种不同的操作方式。而且这些操作方式并不稳定,可能还需要增加新的操作,以满足新的业务需求。此时,访问者模式就是一个值得...

2019-01-08 11:46:27 437

公司工资管理系统

公司工资管理系统

2015-05-22

空空如也

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

TA关注的人

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