自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring之动态切换数据库

在做项目时,当数据量很大需要将数据存在不同的数据库或者希望将不同类型数据存入不同数据库时,就需要利用Spring进行动态的数据库切换。1.1 原理示意图 其原理如下图所示:1.2 数据库配置 要实现动态切换数据源,首先需要将各个数据源配置好,如下所示: <bean id="parentDataSource" abst...

2019-03-15 11:49:25 975

原创 LVS负载均衡原理

1 LVS简介LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端...

2019-03-08 16:08:06 248

原创 原子操作类AtomicInteger详解

为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下:public class AtomicIntegerTest { private static final int...

2019-03-05 19:58:35 280

原创 OLTP、OLAP与HTAP

OLTPOn-Line Transaction Processing联机事务处理过程(OLTP)也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理结果的一个重要指标...

2019-02-21 18:53:53 20791 2

原创 消息队列中点对点与发布订阅区别

1. 点对点生产者生产消息发送到queue中,然后消费者从queue中取出并且消费消息。这里要注意: 消息被消费以后,queue中不再有存储,所以消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。2. 发布/订阅生产者将消息发布到topic中,同时有多个消费者订阅该消息。和点对点方式不同,发布到topic的消...

2019-01-28 15:40:40 557

原创 分布式专题体系学习

    本专题对分布式专题体系进行学习,学习内容分为以下各个专题:    1. 分布式架构原理        (1)分布式架构演进过程        (2)如何把应用从单机扩展到分布式        (3)CDN加速静态文件访问        (4)系统监控、容灾、储存动态扩容        (5)架构设计及业务驱动分化        (6)CAP、Base理论及其应用...

2019-01-21 12:01:55 268

原创 Mysql存储引擎对比

        数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。 数据库存储引擎查看MySQL给开发者提供了查询存储引擎的功能,可以使用: ...

2018-08-27 23:55:34 419

原创 Java EE五大框架之 Spring 1 --- Spring的IOC容器之XML的方式

1  Spring框架概述         * Spring是一个开源框架        * Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。         * 它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之...

2018-08-05 15:10:43 422

原创 Java EE MVC思想

MVC(model - view - controller)是软件开发的一种设计模式,即把一个应用的输入、处理、输出流程哪找模型层(Model)、视图层(view)、控制层(controller)的方式进行划分。主要目的是将模型层和视图层的代码进行分离,从而使同一个应用可以使用不同的表现形式,只需通过控制层确保两者的更新同步即可。 1.模型层模型层是对业务流程/状态的处理以及业务规则的...

2018-08-05 12:59:08 320

原创 Hive学习 ---- 1.Hive的概念与结构

1. Hive概述            Hive是一个数据仓库基础工具,在Hadoop中用来处理结构化数据。它架构在Hadoop之上,使得查询和分析变得方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive是为了解决hadoop中mapreduce编写困难,提供给熟悉sql的人使用的。只要你对SQL有一定的了解,就能通过Hive写出mapreduce的程...

2018-06-21 22:54:29 315

原创 pyCharm2018最新激活码

K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ...

2018-06-19 19:43:59 7014

原创 python调用linux命令的方法

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法:1. os 模块1.1. os模块的exec方法族python的exec系统方法同Unix的exec系统调用是一致的。这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回。1.2. o...

2018-06-19 18:53:41 2009

原创 hadoop之datanode节点超时时间设置与HDFS冗余数据块的自动删除

一  Datanode节点超时时间设置datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长。HDFS默认的超时时长为10分钟+30秒。如果定义超时时间为timeout,则超时时长的计算公式为: timeout  = 2 * heartbeat.recheck.interval + 10...

2018-06-17 16:56:07 1746

原创 Hadoop之分布式集群高可用性(HA)模式部署详解与Zookeeper

1  分布式协调技术      提到zookeeper,首先需要理解什么是分布式协调技术。分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果,如下图所示:                            在这图中有三台机器,每台机器各跑一个应用程序。然后我们将这三台机器通过网络将其连接起来,构成一个系统来为用户提供服务,对...

2018-06-16 19:24:46 779

原创 Hadoop实战之多个job在同一个main方法中提交

有两种方式,一般是用shell脚本。还可以在main函数中编写,例如: public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); //先构造job_one Job job_one = Job.getInstance(conf); ...

2018-06-14 11:12:20 1130 1

原创 Hadoop实战之倒排索引的MR实现

一  目标:实现倒排索引由于多个文件得到如下结果:二  分析---------------------------------mapper//context.wirte("hello->a.txt", "1")//context.wirte("hello->a.txt", "1")//context.wirte("hello->a.txt", "1&quot

2018-06-13 23:33:12 292

原创 Hadoop之MR程序的组件全貌及textinputformat对切片规划的源码分析

一  MR程序的组件全貌之前的文章中已经描述过了大部分的组件。目前没有接触过的只剩InputFormat、RecordReaders、OutputFormat。InputFormat和RecordReaderHadoop提出了InputFormat的概念org.apache.hadoop.mapreduce包里的InputFormat抽象类提供了如下列代码所示的两个方法public abstrac...

2018-06-13 12:57:09 352

原创 Hadoop之分块、分片与shuffle机制详解

一  分块(Block)      HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统保证一个块存储在一个datanode上。      把File划分成Block,...

2018-06-11 15:20:55 4409

原创 Hadoop之map/reduce之间的shuffle,partition,combiner过程的详解

      Shuffle的本意是洗牌、混乱的意思,类似于java中的Collections.shuffle(List)方法,它会随机地打乱参数list里的元素顺序。MapReduce中,所谓Shuffle过程可以大致的理解成:怎样把map task的输出结果有效地传送到reduce输入端。也可以这样理解, Shuffle描述着数据从map task输出到reduce task输入的这段过程。  ...

2018-06-11 14:50:17 1140

原创 Hadoop实战之自定义分组的实现

一  Hadoop中自带的Partitioner从源码可以看出,现在是根据key的哈希值进行分组的。/** Partition keys by their {@link Object#hashCode()}. */@[email protected] class HashPartitioner<K, V&gt...

2018-06-09 13:44:37 432

原创 Hadoop实战之自定义排序实现

一  在javaBean中定义排序规则(Compare方法)import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop.io.Writable;import org.apache.hadoop.io.WritableComparable;p...

2018-06-08 15:22:45 448

原创 Hadoop实战之流量求和MR程序开发

一  数据格式实现针对每个手机号码实现流量(上行、下行)求和。二  自定义JavaBean当map输出的“value”包含多个值的时候,我们可以自定义JavaBean,来将需要的数据封装在一起。import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.had...

2018-06-07 22:59:08 402

原创 项目管理工具 maven(4) ---- 依赖管理-添加依赖、在阿里云的Maven库中找jar包

1  添加依赖1.1  dependency      在pom.xml中添加dependency标签,如下:      <dependency>              <groupId><groupId>              <artifactId></artifactId>              <version&...

2018-06-03 00:04:48 3023

原创 项目管理工具 maven(3) ---- 使用Maven与Eclipse进行项目构建及入门示例

1  m2e插件安装配置1.1  eclipse与maven        通过入门程序中命令行的方式使用maven工作效率不高,可以在eclipse开发工具中集成maven软件,eclipse是一个开发工具,maven是一个项目管理工具,maven有一套项目构建的规范,在eclipse集成maven软件,最终通过eclipse创建maven工程。1.2  插件安装        本教程使用ecl...

2018-06-02 21:26:53 416

原创 项目管理工具 maven(2) ---- Maven入门、常用命令、生命周期与概念模型

1 Maven入门1.1  Maven工程运行示例1.1.1  运行Web工程        进入maven工程目录(当前目录有pom.xml文件),运行tomcat:run命令。                      根据上边的提示信息,通过浏览器访问:http://localhost:8080/maven-helloworld/             1.1.2  问题处理       ...

2018-06-02 13:41:34 391

原创 项目管理工具 maven(1) ---- Maven的概念与安装、配置

1  Maven介绍1.1   maven是什么    maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目在持续增长。1.2   什么是项目构建         项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。1.2.1  传统项目构建...

2018-05-31 20:37:19 505

原创 Java EE五大框架之 Hibernate 4 ----- Hibernate关联关系映射

1 技术分析之Hibernate的关联关系映射之一对多映射因为客户和联系人是一对多的关系,在有客户的情况下,完成联系人的添加保存操作1.1  JavaWEB中一对多的设计及其建表原则        外键可以是null,但是不能是另一个表主键不存在的值。1.2  先导入SQL的建表语句1.3  编写客户和联系人的JavaBean程序(注意一对多的编写规则) * 客户的JavaBean如下 pu...

2018-05-25 16:41:25 245

原创 Java EE五大框架之 Hibernate 3

1  Hibernate中的事务与并发1.1  事务相关的概念 1. 什么是事务 * 事务就是逻辑上的一组操作,组成事务的各个执行单元,操作要么全都成功,要么全都失败. * 转账的例子:冠希给美美转钱,扣钱,加钱。两个操作组成了一个事情! 2. 事务的特性 * 原子性 -- 事务不可分割. * 一致性 -- 事务执行的前后数据的完整性保持一致. * 隔离性 -- 一个事务执行的过程中,...

2018-05-21 13:45:52 176

原创 Java EE五大框架之 Hibernate 2

1  Hibernate的持久化类**什么是持久化类** 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为是持久化类。 * 持久化类 = JavaBean + xxx.hbm.xml**持久化类的编写规则** 1. 提供一个无参数 public访问控制符的构造器         -- 底层需要进行反射. 2. 提供一个标识属性,映射数据...

2018-05-20 18:35:32 150

原创 Hadoop中的序列化机制

1 序列化的概念1、什么是序列化? 将结构化对象转换成字节流以便于进行网络传输或写入持久存储的过程。 2、什么是反序列化? 将字节流转换为一系列结构化对象的过程。2 序列化用途:1、作为一种持久化格式。 2、作为一种通信的数据格式。 3、作为一种数据拷贝、克隆机制。3 Java序列化和反序列化1、创建一个对象并实现Serializable 2、序列化:ObjectOutputStream.writ...

2018-05-17 20:27:15 1355

原创 Hadoop Yarn框架原理及运作机制

1 YARN基本架构YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。2  YARN基本组成结构...

2018-05-17 14:34:10 330

原创 Hadoop之MapReduce编写入门和提交集群运行

1. MapReduce编写入门对于一个MapReduce程序,我们需要编写三个类。第一个类是Mapper类,用于实现map的逻辑。第二个类是Reducer类,用于实现reduce逻辑。第三个类用来描述整个逻辑,来建立业务逻辑间的关联(map与reduce的关联)1.1. Mapper类import java.io.IOException;import org.apache.commons.lan...

2018-05-17 00:56:50 281

原创 Hadoop中的RPC应用实例2

1.服务端接口public interface LoginServiceInterface { public static final long versionID=1L; public String login(String username,String password);}实现类public class LoginServiceImpl implements LoginServiceIn...

2018-05-16 19:08:34 164

原创 Hadoop中的RPC应用实例1

hadoop作为分布式的系统, 集群机器之间的通信是最基本,最常见的需求。这种需求本质上是IPC, 即进程间通信。 按照传统的UINX编程模型,进程间通信无非是如下的几种方式:管道, FIFO, 消息队列, 信号量, 共享存储, 套接字。只有套接字是可以跨机器的网络通信, 能满足hadoop的需求。通常情况下, 网络通信的程序使用显式网络编程(即直接使用java.net包)。比如Web浏览器, W...

2018-05-16 18:44:31 316

原创 Java EE五大框架之 Hibernate 1

0   前言 学习框架之前,首先再来回顾一下EE开发三层结构:1   Hibernate的概述1.1    什么是框架框架是软件的半成品,已经完成了相应部分的内容了.只需要实现自己业务即可.1.2    什么是HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernat...

2018-05-13 23:08:08 240

原创 Hadoop之RPC机制

1  RPC机制介绍在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。123456public class Test {     public static void main(String[] args) {         HelloWorldService helloWorldService =...

2018-05-12 21:53:05 273

原创 Java泛型

引言泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础泛型类我们首先定义一个简单的Box类:这是最常见的做法,这样做的一个坏处是Box里面现在只能装入String类型的元素,今后如果我们需要装入Integer等其他类型的元素,还必须要另外重写一个Box,代码得不到复用,使用...

2018-05-12 14:18:03 157

原创 Hadoop之本地运行模式详解

Hadoop的运行模式分为3种:本地运行模式,伪分布运行模式,集群运行模式,相应概念如下: 1、独立模式即本地运行模式(standalone或local mode) 无需运行任何守护进程(daemon),所有程序都在单个JVM上执行。由于在本机模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。 2、伪分布运行模式 伪分布:如果Hadoop对应的Java进程都运行在一个...

2018-05-12 14:17:19 1691

原创 Hadoop之MapReduce程序的3种集群提交运行模式详解

1.MapReduce程序的集群运行模式1MapReduce程序的集群运行模式1—将工程打成jar包,上传到服务器,然后用hadoop命令hadoop jar xxx.jar 将jar包分发到集群中运行。wordcount代码:package MapReduce;import java.io.IOException;import org.apache.hadoop.conf.Configu...

2018-05-12 13:07:54 1645

原创 Hadoop之HDFS的Java客户端编写

      在使用MapReduce框架进行开发时,总会使用Configuration类的一个实例对象去初始化一个任务,然后进行任务提交,而在整个任务执行过程中,客户点实例化的Configuration的对象,将作为整个任务过程中参数版本,任务执行过程中所需要的所有参数都是从客户端实例化的Configuration对象中进行获取。      Configuration初始化时主要有两步:读取默认文...

2018-05-12 00:27:52 399

python http post实例

python 3.x 实现http post,有助于区别python2 python3

2018-07-04

空空如也

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

TA关注的人

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