自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑白影的博客

GitHub 主页 :https://github.com/heibaiying

原创 Docker 核心概念与基本使用

一、Docker 简介 Docker 是一个构建,发布和运行应用程序的开放平台。Docker 以容器为资源分隔和调度的基本单位,容器封装了整个项目运行时所需要的所有环境,通过 Docker 你可以将应用程序与基础架构分离,像管理应用程序一样管理基础架构,以便快速完成项目的部署与交付。 Docker...

2020-01-17 13:39:41 239 0

原创 Nginx 基础之静态网站部署,负载均衡,动静分离

一、Nginx 简介 1.1 简介 Nginx(engine x)是一个免费的,开源的,高性能的 HTTP 服务器, IMAP/POP3 代理服务器 和 TCP/UDP 代理服务器,通常可以用于进行反向代理和实现基于软件的负载均衡,除此之外,它还具备以下特性: Nginx 在设计时遵循模块化的设...

2020-01-17 13:38:00 137 0

原创 详解四层、五层、七层计算机网络模型

一、体系结构 计算机网络的各层及其协议的集合被称为网络的体系结构,按照不同的维度,其常被分为七层、五层、四层网络结构: 1.1 七层网络模型 开放式系统互联模型(Open System Interconnection Model,简称为 OSI 模型)是一种概念模型,由国际标准化组织提出,并试图成...

2020-01-17 13:36:02 320 0

原创 深入理解 Java 虚拟机

一、基本概念 1.1 OpenJDK 自 1996 年 JDK 1.0 发布以来,Sun 公司在大版本上发行了 JDK 1.1、JDK 1.2、JDK 1.3、JDK 1.4、JDK 5,JDK 6 ,这些版本的 JDK 都可以统称为 SunJDK 。之后在 2006 年的 JavaOne 大会上...

2020-01-16 13:44:31 130 0

原创 Java 23 种设计模式精讲

软件设计的原则 1. 开闭原则 定义:软件实体应当对扩展开放,对修改关闭。 2. 里氏替换原则 定义:继承必须保证超类所拥有的性质在子类中仍然成立。即子类在继承父类时,除了添加新的方法来新增功能外,尽量避免重写父类方法,因为这会导致整个继承体系的复用性变差。 3. 依赖倒置原则 定义:高层模块不应...

2020-01-16 13:41:04 93 0

原创 详解 Java 并发编程

一、线程 1.1 创建线程 创建线程通常有以下三种方式: 实现 Runnable 接口,并重写其 run 方法: public class J1_Method01 { public static void main(String[] args) { System.out...

2020-01-16 11:23:44 80 0

原创 Java 反射与注解

一、Class 类 1.1 Class 对象 在 Java 中,每个已加载的类在内存中都有一份类信息,类信息对应的类是 java.lang.Class,每个对象都持有指向它所属类信息的引用。所以想要获取 Class 对象,有以下三种方法: 通过类名获取: Class<Date> d...

2020-01-16 11:04:16 48 0

原创 基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群

一、集群简介 1.1 集群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关...

2020-01-16 10:49:01 91 0

原创 RabbitMQ 客户端开发

一、基本 API 1.1 连接服务 不论是进行生产者还是消费者的开发,第一步都必须要先连接到 RabbitMQ Broker ,然后创建信道 Channel,Channel 是后续一切操作的基础。代码如下: // 1.创建连接工厂 ConnectionFactory factory = new C...

2020-01-16 10:47:01 42 0

原创 RabbitMQ 核心概念

一、消息队列 消息队列中间件 (Message Queue Middleware,简称 MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,它可以在分布式环境下扩展进程间的数据通信,并基于数据通信来进行分布式系统的集成。它主要适用于以下场景: 项目解耦:不同的项目或模块可以使用消息中...

2020-01-16 10:42:05 54 0

原创 MongoDB 高可用集群架构

一、分片机制 1.1 核心组件 在单机环境下,高频率的查询会给服务器 CPU 和 I/O 带来巨大的负担,基于这个原因,MongoDB 提供了分片机制用于解决大数据集的分布式部署,从而提高系统的吞吐量。一个标准的 MongoDB 分片集群通常包含以下三类组件: shard :用于存储分片数据的...

2020-01-16 10:32:00 50 0

原创 MongoDB 高可用基础之副本集

一、副本集 1.1 复制功能 为保证数据安全,实现高可用,MongoDB 提供了复制功能,可以将主节点上的数据复制到多个从节点上,这样即便主节点异常,由于数据是以多副本的方式存储,仍然可以保证数据安全。一个标准的三节点的副本集的架构如下: 1. 初始同步 在副本集初始化时,主节点的 mong...

2020-01-16 10:29:30 113 0

原创 MongoDB 聚合管道

一、聚合简述 在日常开发中,我们通常需要对存储数据进行聚合分析后,再返回给客户端。MongoDB提供了三种聚合的方式,分别是聚合管道,map-reduce 函数和单用途聚合方法。 二、聚合管道 MongoDB 的聚合操作类似于流水线处理,文档会依次进入多个管道阶段并执行相应的操作。这里先插入部分演...

2020-01-16 10:26:39 47 0

原创 MongoDB 索引详解

一、索引简介 1.1 创建索引 和大多数关系型数据库一样,MongoDB 支持使用索引来进行查询优化,采用类似 B-Tree 的数据结构来储存索引和文档的位置信息,同样也支持前缀索引和覆盖索引。在当前最新的 MongoDB 4.0 中,索引的创建语法如下: db.collection.create...

2020-01-16 10:25:38 37 0

原创 MongoDB 基本使用

一、数据类型 1.1 BSON 文档 (Documents) 是 MongoDB 中数据的基本单元,它是键值对的有序集合,在数据结构上类似于 JSON,但是由于 JSON 只支持基本的 6 种数据类型:null,布尔,数字,字符串,数组和对象,因此其表达能力有限,所以 MongoDB 基于 JSO...

2020-01-16 10:24:34 71 2

原创 Redis 集群模式

一、集群模式介绍 Redis Cluster 是 Redis 官方提供的分布式实现,在 Redis 3.0 版本正式推出,通过集群模式可以扩展单机的性能瓶颈,同时也可以通过横向扩展来实现扩容。此外,Redis 集群模式还提供了副本迁移机制,用于保证数据的安全和提高集群的容错能力,从而实现高可用。 ...

2020-01-15 14:55:12 58 0

原创 Redis 哨兵模式

一、复制 为了解决单点问题,保证数据的安全性,Redis 提供了复制机制,用于满足故障恢复和负载均衡等需求。通过复制机制,Redis 可以通过多个副本保证数据的安全性,从而提供高可用的基础,Redis 的哨兵和集群模式都是在复制基础上实现高可用的。 1.1 建立复制关系 想要对两个 Redis 节...

2020-01-15 14:47:13 41 0

原创 Redis AOF 和 RDB 持久化策略原理

一、数据持久化 默认情况下 Redis 的数据都是保存在内存中,为避免 Redis 进程意外退出而导致数据丢失的问题,Redis 提供了 RDB 和 AOF 两种方式来实现数据的持久化存储。 二、RDB 机制 RDB 机制是以指定的时间间隔将 Redis 中的数据生成快照并保存到硬盘中,它更适合...

2020-01-15 14:43:24 43 0

原创 Redis 基本数据类型和常用命令

一、数据类型 Redis 5 支持以下多种数据类型: 二进制安全的字符串。 Lists (列表):根据插入顺序排序的字符串元素的集合。 Sets (集):未排序的不重复的字符串元素的集合。 Sorted Sets (排序集):类似于集,但每个字符串元素与被称为分数的值相关,元素总是按其分数排序。...

2020-01-15 14:39:53 45 0

原创 MySQL 查询性能分析之 Explain

EXPLAIN 关键字可以用于获取 SQL 语句执行计划的相关信息,在 MySQL 8.0 中,EXPLAIN 支持大多数 SQL 语句,如 SELECT 、DELETE 、INSERT 、REPLACE、和 UPDATE 。示例如下: mysql> EXPLAIN SELECT * FR...

2020-01-08 11:32:46 40 0

原创 MyCat 读写分离与分库分表

一、Mycat 简介 Mycat 是一个开源的数据库中间件,可以解决分布式数据库环境下的大多数问题,如读写分离、分库分表等,除此之外,它还具备以下特性: 支持 MySQL、Oracle、DB2、SQL Server、PostgreSQL 等数据库常见的 SQL 语法。 能够基于心跳机制进行自动地...

2020-01-08 11:27:08 37 0

原创 MySQL 高可用架构之 PXC 集群

一、PXC 集群 Percona XtraDB Cluster (简称 PXC) 是 Percona 公司开源的实现 MySQL 高可用的解决方案。它将 Percona Server 和 Percona XtraBackup 与 Galera 库集成,以实现多主同步复制。和 MySQL 传统的异步...

2020-01-07 10:48:03 46 0

原创 MySQL 二进制日志复制、GTID 复制与半同步复制

一、日志格式 1.1 二进制日志格式 MySQL 二进制日志是进行主从复制的基础,它记录了所有对 MySQL 数据库的修改事件,包括增删改查和表结构修改。当前 MySQL 一共支持三种二进制日志格式,可以通过 binlog-format 参数来进行控制,其可选值如下: STATEMENT:段格式...

2020-01-06 16:18:45 75 0

原创 MySQL常用备份策略详解 —— mysqldump、mysqlpump 和 Xtrabackup

一、备份简介 2.1 备份分类 按照不同的思考维度,通常将数据库的备份分为以下几类: 物理备份 与 逻辑备份 物理备份:备份的是完整的数据库目录和数据文件。采用该模式会进行大量的 IO 操作,但不含任何逻辑转换,因此备份和恢复速度通常都比较快。 逻辑备份:通过数据库结构和内容信息来进行备份。因为...

2020-01-03 09:28:39 67 0

原创 MySQL 核心三剑客 —— 索引、锁、事务

一、常见存储引擎 1.1 InnoDB InnoDB 是 MySQL 5.5 之后默认的存储引擎,它具有高可靠、高性能的特点,主要具备以下优势: DML 操作完全遵循 ACID 模型,支持事务,支持崩溃恢复,能够极大地保护用户的数据安全; 支持多版本并发控制,它会保存数据的旧版本信息,从而可以支...

2020-01-02 17:00:43 373 0

原创 Spark 系列(一)—— Spark简介

Spark简介 一、简介 Spark于2009年诞生于加州大学伯克利分校AMPLab,2013年被捐赠给Apache软件基金会,2014年2月成为Apache的顶级项目。相对于MapReduce的批处理计算,Spark可以带来上百倍的性能提升,因此它成为继MapReduce之后,最为广泛使用的...

2019-07-19 07:38:33 217 4

原创 Spark 系列(三)—— 弹性式数据集RDDs

一、RDD简介 RDD全称为Resilient Distributed Datasets,是Spark最基本的数据抽象,它是只读的、分区记录的集合,支持并行操作,可以由外部数据集或其他RDD转换而来,它具有以下特性: 一个RDD由一个或者多个分区(Partitions)组成。对于RDD来说...

2019-07-19 07:37:49 168 0

原创 Spark 系列(二)—— Spark开发环境搭建

一、安装Spark 1.1 下载并解压 官方下载地址:http://spark.apache.org/downloads.html ,选择Spark版本和对应的Hadoop版本后再下载: 解压安装包: # tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz 1...

2019-07-19 07:37:22 188 0

原创 Hive —— 安装部署

一、安装Hive 1.1 下载并解压 下载所需版本的Hive,这里我下载版本为cdh5.15.2。下载地址:http://archive.cloudera.com/cdh5/cdh/5/ # 下载后进行解压 tar -zxvf hive-1.1.0-cdh5.15.2.tar.gz 1.2 配...

2019-06-10 13:46:55 108 1

原创 Kafka —— 基于 ZooKeeper 搭建 Kafka 高可用集群

一、Zookeeper集群搭建 为保证集群高可用,Zookeeper集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。 1.1 下载 & 解压 下载对应版本Zookeeper,这里我下载的版本3.4.14。官方下载地址:https://archive.apache.o...

2019-06-10 13:30:48 202 0

原创 ZooKeeper —— 单机环境和集群环境搭建

一、单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14。官方下载地址:https://archive.apache.org/dist/zookeeper/ # wget https://archive.apache.org/dist/zookeeper/zoo...

2019-06-10 13:30:39 73 0

原创 Flume —— 安装部署

一、前置条件 Flume需要依赖JDK 1.8+,JDK安装方式见本仓库: Linux环境下JDK安装 二 、安装步骤 2.1 下载并解压 下载所需版本的Flume,这里我下载的是CDH版本的Flume。下载地址为:http://archive.cloudera.com/cdh5/cdh/5/...

2019-06-10 13:30:26 99 0

原创 Azkaban —— 编译及部署

一、Azkaban 源码编译 1.1 下载并解压 Azkaban 在3.0版本之后就不提供对应的安装包,需要自己下载源码进行编译。 下载所需版本的源码,Azkaban的源码托管在GitHub上,地址为https://github.com/azkaban/azkaban 。可以使用git clone...

2019-06-10 13:30:18 193 0

原创 Spark —— 高可用集群搭建

一、集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务。同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop003上分别部署备用的Master服务,Master服务由Zookeeper集群进行协调管理,如果主M...

2019-06-10 13:30:04 107 0

原创 Storm —— 集群环境搭建

一、集群规划 这里搭建一个3节点的Storm集群:三台主机上均部署Supervisor和LogViewer服务。同时为了保证高可用,除了在hadoop001上部署主Nimbus服务外,还在hadoop002上部署备用的Nimbus服务。Nimbus服务由Zookeeper集群进行协调管理,如果主N...

2019-06-10 13:29:51 153 0

原创 Storm —— 单机环境搭建

1. 安装环境要求 you need to install Storm’s dependencies on Nimbus and the worker machines. These are: Java 7+ (Apache Storm 1.x is tested through travis...

2019-06-10 13:29:44 118 0

原创 HBase —— 集群环境搭建

一、集群规划 这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server。同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的Master服务。Master服务由Zookeeper集群进行协调管理,如果主Master不可用,...

2019-06-10 13:29:35 119 0

原创 HBase —— 单机环境搭建

一、安装前置条件说明 1.1 JDK版本说明 HBase 需要依赖JDK环境,同时HBase 2.0+ 以上版本不再支持JDK 1.7 ,需要安装JDK 1.8+ 。JDK 安装方式见本仓库: Linux环境下JDK安装 1.2 Standalone模式和伪集群模式的区别 在Standalo...

2019-06-10 13:29:27 154 0

原创 基于 ZooKeeper 搭建 Hadoop 高可用集群

一、高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,故下面先进行讲解: 1...

2019-06-10 13:29:05 571 0

原创 Hadoop —— 集群环境搭建

一、集群规划 这里搭建一个3节点的Hadoop集群,其中三台主机均部署DataNode和NodeManager服务,但只有hadoop001上部署NameNode和ResourceManager服务。 二、前置条件 Hadoop的运行依赖JDK,需要预先安装。其安装步骤单独整理至: Lin...

2019-06-10 13:28:52 155 0

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