自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 收藏
  • 关注

原创 kafka的Topic&Partition

关于 Topic 和 PartitionTopic在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合。每条消息发送到 kafka 集群的消息都有一个类别。物理上来说,不同的 topic 的消息是分开存储的,每个 topic 可以有多个生产者向它发送消息,也可以有多个消费者去消费其中的消息。Partition每个 topic 可以划分多个...

2019-08-14 18:10:31 1224

原创 kafka安装部署及集群部署,基本使用和应用

下载安装包https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz安装过程1.tar -zxvf 解压安装包kafka目录介绍 /bin 操作 kafka 的可执行脚本 /config 配置文件 /libs 依赖库目录 /logs 日志数据目录 启动/停止 ...

2019-08-14 17:55:07 467

转载 为什么强烈推荐 Java 程序员使用 Google Guava 编程!

JDK提供的String还不够好么? Joiner/Splitter CharMatcher Ints Multiset Multiset Code unmodifiable defensive copies Immutable ImmutableMap Multimap BiMap...

2019-08-14 11:33:13 599

原创 kafka产生的背景和架构

kafka产生的背景什么是kafka?Kafka 是一款分布式消息发布和订阅系统,具有高性能、高吞吐量的特点而被 广泛应用与大数据传输场景。它是由 LinkedIn 公司开发,使用 Scala 语言编 写,之后成为 Apache 基金会的一个顶级项目。kafka 提供了类似 JMS 的特 性,但是在设计和实现上是完全不同的,而且他也不是 JMS 规范的实现kafka产生的背景kaf...

2019-08-11 19:19:07 1043

转载 mysql调优-索引的基本操作

MySQL 索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。索引分单列索引和组合索引。单列索引,即一个索引只包...

2019-08-09 19:13:14 249

原创 mysql性能优化-数据库设计常见规则

第一范式( 1NF): 字段具有原子性,不可再分。 所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的, 不可再分;第二范式( 2NF): 要求实体的属性完全依赖于主键。 所谓完全依赖是指不能存在仅依赖主键一部分的属性,如果存在, 那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体, 新实体与原 实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例...

2019-08-09 17:01:02 268

原创 mysql性能优化-配置参数

mysql服务器参数类型基于参数的作用域: 全局参数set global autocommit = ON/OFF;会话参数(会话参数不单独设置则会采用全局参数) set session autocommit = ON/OFF;注意: 全局参数的设定对于已经存在的会话无法生效 会话参数的设定随着会话的销毁而失效 全局类的统一配置建议配置在默认配置文件中,否则重启服务会导致配置失效...

2019-08-09 16:57:36 461

原创 mysql性能优化-MVCC

思考一个问题MVCC是什么?MVCC:Multiversion concurrency control (多版本并发控制)解释:并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理,以达到用来避免写操作的堵塞,从而引发读操作的并发问题。mysql中MVCC逻辑流程-插入假如一张表user有三个字段id,name,age,MySQL会默认的给每...

2019-08-09 16:55:33 1539

原创 mysql性能优化-锁

理解表锁,行锁锁是用于管理不同事务对共享资源的并发访问表锁与行锁的区别:锁定粒度:表锁 > 行锁加锁效率:表锁 > 行锁冲突概率:表锁 > 行锁并发性能:表锁 < 行锁InnoDB存储引擎支持行锁和表锁(另类的行锁)mysql Innodb锁的类型l 共享锁(行锁):Shared Locksl 排它锁(行锁):Exclusive...

2019-08-09 16:12:23 275

原创 mysql性能优化-事务

mysql性能优化-事务Innodb的特性什么是事务事务:数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;事务是一组不可在分割的操作集合(工作逻辑单元);事务:数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;事务是一组不可再分割的操作集合(工作逻辑单元);典型事务场景(转账):update user_acc...

2019-08-09 14:08:06 286

原创 mysql调优-如何定位慢查询sql

mysql调优-如何定位慢查询sql1.业务驱动2.测试驱动3慢查询日志慢查询日志配置show variables like 'slow_query_log'set global slow_query_log = onset global slow_query_log_file = '/var/lib/mysql/gupaoedu-slow.log'set g...

2019-08-06 16:36:54 1660

原创 mysql调优-执行计划详解

mysql调优-执行计划详解执行计划-idselect查询的序列号,标识执行的顺序1、id相同,执行顺序由上至下2、id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行3、id相同又不同即两种情况同时存在,id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行执行计划-select_type...

2019-08-05 16:51:18 769

原创 mysql调优-查询执行流程分析

mysql体系结构及运行机理mysql体系结构Client Connectors接入方 支持协议很多Management Serveices & Utilities系统管理和控制工具,mysqldump、 mysql复制集群、分区管理等Connection Pool 连接池:管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求SQL Int...

2019-08-05 16:14:06 478

原创 mysql调优-存储引擎介绍

mysql插拔式的存储引擎存储引擎的介绍1.插拔式的插件方式2.存储引擎是指定在表之上的,即一个库中的每一个表都可以指定专用的存储引擎。3,不管表采用什么样的存储引擎,都会在数据区,产生对应的一个frm文件(表结构定义描述文件)CSV存储引擎数据存储以CSV文件特点:1、不能定义没有索引、列定义必须为NOT NULL、不能设置自增列-->不适用大表或...

2019-08-05 15:30:52 268

原创 mysql调优-初始mysql体系结构和理解mysql底层B+tree索引机制

一mysql体系结构如下图所示正确的创建合适的索引是提升数据库查询性能的基础二索引是什么?索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构为什么要使用索引?1.索引能极大的减少存储引擎需要扫描的数据量2.索引可以把随机IO变成顺序IO3.索引可以帮助我们在进行分组、排序等操作时,避免使用临时表三什么是B+tree?(Binar...

2019-07-15 19:32:44 497

原创 设计模式2.0-单例模式-破坏单例模式的方法

反射破坏单例大家有没有发现,《设计模式2.0-单例模式-四种常用的单例模式》一文中介绍的单例模式的构造方法除了加上 private 以外,没有做任何处理。如果我们使用反射来调用其构造方法,然后,再调用 getInstance()方法,应该就会两个不同的实例。现在来看一段测试代码,以 LazyInnerClassSingleton 为例:public class LazyInnerClas...

2019-07-04 19:19:38 280

原创 设计模式2.0——单例模式——四种常用的单例模式

单例模式的应用场景 单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛。例如,国家主席、公司 CEO、部门经理等。在 J2EE 标准中,ServletContext、ServletContextConfig 等;在 Spring 框架应用中 ApplicationContext;...

2019-06-27 17:55:35 278

原创 设计模式2.0——工厂模式三剑客——抽象工厂模式

抽象工厂模式(Abastract Factory Pattern)是指提供一个创建一系列相关或相互依赖对象的接口,无须指定他们具体的类。客户端(应用层)不依赖于产品类实例如何被创建、实现等细节,强调的是一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码。需要提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现。讲解抽象工厂之前,我们要了解两个概念产品等...

2019-06-26 16:13:14 356

原创 设计模式2.0——工厂模式三剑客——工厂方法模式

设计模式2.0-工厂方法模式工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。在工厂方法模式中用户只需要关心所需产品对应的工厂,无须关心创建细节,而且加入新的产品符合开闭原则。工厂方法模式主要解决产品扩展的问题,在简单工厂中,随着产品链的丰富,如果每个课程的创建逻辑有区别的话,工厂...

2019-06-26 16:09:06 273

原创 设计模式2.0——工厂模式三剑客——简单工厂模式

设计模式2.0-工厂模式先来回忆一下设计原则:设计原则 解释 开闭原则 对扩展开放,对修改关闭。 依赖倒置原则 通过抽象使各个类或者模块不相互影响,实现松耦合。 单一职责原则 一个类、接口、方法只做一件事 接口隔离原则 尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。 迪米特法则 又叫最少知道原则,一个类对其所依赖的类知道得越少越...

2019-06-26 16:05:34 265

原创 设计模式2.0——软件架构设计的七大原则——合成复用原则

合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。继承我们叫做白箱复用,相当于把所有的实现细节暴露给子类。组合/聚合也称之为黑箱 复用,对类以外的对象是无法获取到实现细节...

2019-06-25 17:02:37 338

原创 设计模式2.0——软件架构设计的七大原则——里氏替换原则

里氏替换原则(Liskov Substitution Principle,LSP)是指如果对每一个类型为 T1 的对象 o1,都有类型为 T2 的对象 o2,使得以 T1 定义的所有程序 P 在所有的对象 o1 都替换成o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义看上去还是比较抽象,我们重新理解一下,可以理解为一个软件实体如果适用一个父类的话,那一定是适用于...

2019-06-25 16:58:16 235

原创 设计模式2.0——软件架构设计的七大原则——迪米特法则

迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫最少知道原则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合。迪米特原则主要强调只和朋友交流,不和陌生人说话。出现在成员变量、方法的输入、输出参数中的类都可以称之为成员朋友类,而出现在方法体内部的类不属于朋友类。现在来设计一个权限系统,Boss 需要查看目前发...

2019-06-25 10:24:18 271

原创 设计模式2.0——软件架构设计的七大原则——接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时应当注意以下几点: 1、一个类对一类的依赖应该建立在最小的接口之上。 2、建立单一接口,不要建立庞大臃肿的接口。 3、尽量细化接口,接口中的方法尽量少(不是越少越好,一定要适度)。 接口隔离原则符合我们常说的...

2019-06-24 10:16:59 288

原创 设计模式2.0——软件架构设计的七大原则——单一职责原则

单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因。假设我们有一个 Class 负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能会导致另一个职责的功能发生故障。这样一来,这个 Class 存在两个导致类变更的原因。如何解决这个问题呢?我们就要给两个职责分别用两个 Class 来实现,进行解耦。后期需求变更维护互不影...

2019-06-21 14:56:30 419

原创 设计模式2.0——软件架构设计的七大原则——依赖倒置原则

依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模 块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖 抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的 可读性和可维护性,并能够降低修改程序所造成的风险。接下来我们来看一段代码,还是以课程为例:public class Ma ...

2019-06-19 09:50:09 313

原创 设计模式2.0——软件架构设计的七大原则——开闭原则

开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对 扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调 的是用抽象构建框架,用实现扩展细节。可以提高软件系统的可复用性及可维护性。开 闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统, 例如:我们版本更新,我尽可能不修改源代码,但是可以增加新功能。...

2019-06-18 18:53:15 350

转载 学习hadoop遇到的问题(关于hive动态分区问题,当strom自动往hive表对应的文件下写数据时,在hive中查询不到数据,得修复一下)

分区表分区表实际就是对应hdfs文件系统上的的独立的文件夹,该文件是夹下是该分区所有数据文件。分区可以理解为分类,通过分类把不同类型的数据放到不同的目录下。分类的标准就是分区字段,可以一个,也可以多个。分区表的意义在于优化查询。查询时尽量利用分区字段。如果不使用分区字段,就会全部扫描。在查询是通过where子句查询来指定所需的分区。样例create external table ...

2019-04-24 11:32:50 2542 2

原创 学习hadoop遇到的问题(flume-kafka报错)

org.apache.kafka.common.errors.InterruptException: Flush interrupted. at org.apache.kafka.clients.producer.KafkaProducer.flush(KafkaProducer.java:546) at org.apache.flume.sink.kafka.KafkaSink.proce...

2019-04-16 15:16:51 2482 2

原创 学习hadoop遇到的问题(linux中的rsyslog日志的转发)

https://www.cnblogs.com/smail-bao/p/8603263.htmlhttps://www.cnblogs.com/zhanmeiliang/p/7479501.htmlhttps://blog.51cto.com/ityunwei2017/1934910

2019-04-16 13:40:52 249

原创 学习hadoop遇到的问题(记录一次storm启动报错)

启动报错 “wike。。。。”原因(在其他没错的情况下):1、没有创建String zkRoot = "/kafkaspout_offest";String id = "message_log";在zk中实行create /kafkaspout_offestmessage_log2.版本不兼容...

2019-04-12 17:29:02 214

转载 学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

参考文档 https://www.cnblogs.com/zlslch/p/7096402.html集群节点 三个mini1,mini2,mini31,下载phoenix for CDH下载位置,我下载的是目前phoenix对应的cdh最高版本5.9,但是我用的是CDH最高版本5.13(目前最高版本。测试5.13,生产上用的是CDH5.11)https://github.com/chi...

2019-04-11 09:56:27 335

转载 学习hadoop遇到的问题(部署CDH5.9.1遇到的问题)

问题1错误提示:cloudera-scm-agent 已死,但 pid 文件仍存解决办法:[root@node1 ~]# cd /var/run/[root@node1 run]# rm -rf cloudera-scm-agent.pid 问题2错误提示:error: No socket could be created on (‘node1’, 9000) – ...

2019-04-10 16:57:42 1720

转载 学习hadoop遇到的问题(添加kafka服务)

CDH的parcel包中是没有kafka的,kafka被剥离了出来,需要从新下载parcel包安装。或者在线安装,但是在线安装都很慢,这里使用下载parcel包离线安装的方式。PS:kafka有很多版本,CDH也有很多版本,那也许你会疑问如何知道你的CDH应该安装什么kafka版本。这个官方有介绍,文档地址:https://www.cloudera.com/documentation/ente...

2019-04-10 16:12:56 326

转载 学习hadoop遇到的问题(linux ssh 非root用户免密码登录)

ssh-keygen –t rsa然后一路按回车键,最后在将id_rsa.pub写到authorized_keys,命令如下:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys在hadoop用户下,需要给authorized_keys赋予600的权限,不然免密码登陆无效。在其他节点只需要使用ssh-keygen –t rsa...

2019-04-09 09:51:24 1185

转载 基于Flume的日志采集

大数据系统中通常需要采集的日志有:系统访问日志 用户点击日志 其他业务日志(比如推荐系统的点击日志)在收集日志的时候,一般分为三层结构:采集层、汇总层和存储层,而不是直接从采集端将数据发送到存储端,这样的好处有:如果存储端如Hadoop集群、Kafka等需要停机维护或升级,对部署在应用服务器上的采集端没有影响,只需要汇总层做好数据的缓冲,在存储端恢复正常后继续写入数据。 采集层只负...

2019-04-03 18:12:14 1404

原创 常用设计模式总结

(1)装饰者模式定义:装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。使用场景:装饰者在代码程序中适用于以下场景: 1、用于扩展一个类的功能或给一个类添加附加职责。 2、动态的给一个对象添加功能,这些功能可以再动态的撤销。例子:来看一个...

2019-03-23 12:27:28 358

原创 学习hadoop遇到的问题(phoenix报Caused by: org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG)

先关闭hbase在执行hbase clean --cleanZk清楚hbase以前的数据信息我的报错是因为使用phoenix-5.0版本降级为4.0版本造成的

2019-03-16 15:40:02 5360 1

转载 学习hadoop遇到的问题(hbase整合Phoenix报'hbase.procedure.store.wal.use.hsync')

从hadoop到hbase的环境搭建一切正常,可直接参照网上教程,这里不累述。这里记录一下我在配置phoenix连接hbase的时候遇到的问题。直观的看是HMaster先能启动,过一会又自动挂掉。日志错误信息如下:ERROR [master/YSL-MASTER:16000] master.HMaster: Failed to become active masterjava.lan...

2019-03-08 18:07:38 1777

转载 学习hadoop遇到的问题(hive整合phoenix及注意问题)

测试环境:phoenix4.14.1 hbase1.1.1 hive2.3.3 hadoop2.7.2(由于不是通过CDH/Ambari搭建,所以会出现组件的兼容性问题)聊一聊为什么要使用hive映射phoenix? 将数据存储Phoenix,本质是HBase提供的SQL。用于前端的查询,要求RT在秒级以内。phoenix作为hbase二级索引的最佳组合,测试过上百万级别的数据构...

2019-03-08 17:23:42 1529

空空如也

空空如也

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

TA关注的人

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