- 博客(30)
- 收藏
- 关注
原创 策略模式
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。案例:有一群不同种类的鸭子,它们的飞行行为各有不同。这里的飞行行为相当于算法族,可以独立变化。代码(策略模式 + 组合):飞行行为public interface FlyBehavior { public void performFly();}class FlyWithWings implements FlyBehavior { @Override publ
2020-08-05 20:54:38
176
原创 Java中栈的使用
代码:Stack stack = new Stack();//栈是否为空boolean isEmpty = stack.empty();System.out.println("栈是否为空:" + isEmpty);//进栈Object itemA = stack.push("itemA");System.out.println("进栈元素:" + itemA);Object itemB = stack.push("itemB");System.out.println("进栈元素:"
2020-08-04 17:26:39
407
原创 迭代器设计模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。简单来说,就是把不同集合的遍历操作分别封装起来。代码:数组的迭代器实现(ArrayList本身可以获取迭代器,这里省略实现ArrayList的迭代器)public class ItemBIterator implements Iterator { private String[] list; int position = 0; public ItemBIterator(String[
2020-08-03 04:09:42
173
原创 文件存储格式
一、前言1.1 概述文件存储格式:文件存储格式是数据在磁盘上的组织方式,直接决定了数据存取效率以及被上层分布式计算集成的容易程度。1.2 常见存储格式创建的存储格式包括 行式存储 和 列式存储 两种:行式存储 以 文本格式Text File、key/value 二进制存储格式 Sequence File 为典型代表。列式存储 以 ORC、Parquet 和 Carbon Data 三种文件格式为代表。1.3 行列存储数据组织方式 数据(每一行由若干列构成)在行存储和列存..
2020-06-24 19:59:42
4685
原创 数据序列化
目录一、概述二、数据序列化的意义三、数据序列化方案3.1序列化框架 Thrift3.2 序列化框架 Protobuf3.3 序列化框架 Avro四、序列化框架对比4.1 性能方面4.2 非功能方面一、概述数据序列化:数据序列化是将内存对象转化为字节流的过程,它直接决定了数据解析效率以及模式演化能力(数据格式发生变化时,比如增加或删除字段,是否仍能够保持兼容性)。二、数据序列化的意义 当需要将数据存入文件或者通过网络发送出去时,需将数据对象转...
2020-06-23 09:31:24
3964
原创 Kafka_数据分发中间件
一、前言 数据采集上来后,需要送到后端的组件进行进一步的分析,前段的采集和后端的处理往往是多对多的关系。为了简化传送逻辑,增强灵活性,在前端的采集和后端的处理之间需要一个消息中间件来负责消息转发,以保障消息可靠性,匹配前后端的速度差。二、Kafka概述kafka官网地址kafka文档地址2.1 产生背景 Kafka 是 LinkedIn 于 2010 年 12 月开源的消息系统,主要用于处理活跃的流式数据。活跃的流式数据在Web网站应用中很常见,这些数据包括网站的PV、用户访问了..
2020-06-18 12:45:06
1164
原创 工厂模式--抽象工厂模式
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。使用场景:当需要创建产品家族和想让制造的相关产品集合起来时,可以使用。优点:把客户从所使用的实际具体产品中解耦。工厂方法模式和抽象工厂模式的区别: 工厂方法使用继承(把对象的创建委托给子类,子类实现工厂方法来创建对象)。 抽象工厂使用对象组合(对象的创建被实现在工厂接口所暴露出来的方法中)。代码:原料家族:interface X {}class X1 implements X...
2020-06-17 18:07:23
154
原创 工厂模式--工厂方法模式
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。优点:在编写创建者类时,不需要知道实际创建的产品是哪一个。代码:产品实现:public abstract class P { String name; String type; ArrayList list = new ArrayList(); void prepare() { System.out.println("name: " +
2020-06-16 20:53:19
220
原创 Flume_日志收集工具
目录一、前言二、简介2.1 概述2.2 发展历程2.3 基本思想及特点三、Flume NG 基本架构3.1 基本架构3.2 Agent 内部组件1、Source2、Channel3、Sink3.3 高级组件1、Interceptor2、Channel Selector3、Sink Processer四、Flume NG 数据流拓扑构建方法4.1 如何构建数据流拓扑4.2 流式数据获取方式4.2 常见拓扑架构1、多路合并.
2020-06-16 18:13:14
492
原创 工厂模式--简单工厂
工厂:处理创建对象的细节。目的:将实例化具体类的代码从应用中抽离,或者封装起来,可以避免干扰应用的其他部分。简单工厂:简单工厂其实不是一个设计模式,反而像一种编程习惯。代码:产品实现:/** * DESC: * 产品A */public interface A { public void work1(); public void work2(); public void work3();}class A1 implements A { @
2020-06-13 22:56:16
92
原创 单例模式
单例模式:确保一个类只有一个实例,并提供一个全局访问点。诞生起因:有一些对象只需要一个实例,如果创造出多个实例,就会导致许多问题产生,例如程序的行为异常、资源使用过量、或者是不一致的结果。应用:线程池、缓存、对话框、处理偏好设置、注册表等。思考:只有一个实例可以通过java的静态变量static做到,但是这样在程序一开始就创建好了对象,如果这个对象非常耗费资源,还一致不用,就很浪费,而单例模式可以在需要时才创建对象。public class A { private volatile
2020-06-10 09:34:34
104
原创 linux网络相关命令
1、列出当前的网络接口配置:ifconfig2、手动设置网络接口(wlan0)的IP地址:ifconfig wlan0 192.168.0.80 设置此IP地址的子网掩码:ifconfig wlan0 192.168.0.80 netmask 255.255.255.03、自动配置网络接口(eth0):dhclient eth04、打印网络接口列表:ifconfig | cut -c-10 | tr -d ' ' |tr -s '\n' 解释...
2020-06-01 23:19:01
413
原创 Linux设置静态IP(CentOS)
1、切入root用户su root2、更改配置文件sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 3、重启网卡service network restart4、检验是否联网成功ping www.baidu.com
2020-06-01 17:47:33
110
原创 java简单实现二叉树
public class BaseOperation { public static void main(String[] args) { int[] arrs = {1,2,3,4,5,6,7,8,9}; TreeNode root = createTree(arrs); preorder(root); System.out.println(); inorder(root); System.out.
2020-05-22 12:23:55
216
原创 scala安装与环境搭建
Scala用一种简洁的高级语言将面向对象和函数式编程结合在一起。Scala的静态类型有助于避免复杂应用程序中的错误,其JVM和JavaScript运行时使您可以轻松访问庞大的库生态系统来构建高性能系统。官网:https://www.scala-lang.org/1、scala是一个多范式的编程语言(支持多种方式的编程) 使用面向对象编程:封装、继承、多态 使用函数式编程...
2020-03-12 21:47:18
169
原创 关系型数据的收集
为了能利用大数据技术处理和存储关系型数据(如mysql,oracle),首先需将这些数据导入到像HDFS、HBase这样的大数据存储系统中,以便使用MapReduce、Spark这样的分布式计算技术进行高效分析和处理。从另一个角度讲,为了便于与前端的数据可视化系统对接,我们通常需要讲Hadoop大数据系统分析产生的结果(如报表,通常数据量不会太大)导回到关系型数据库中。为了解决上述问题,高效地实现...
2020-02-14 23:50:26
805
原创 大数据技术框架
一、大数据应用场景1、互联网领域:搜索引擎、推荐系统、广告系统2、电信领域:网络管理和优化、市场与精准营销、客户关系管理、企业运营管理、数据商业化3、医疗领域:临床数据对比、药品研发、临床决策支持、实时统计分析、基本药物临床应用分析、远程病人数据分析、人口统计学分析、新农合基金数据分析、就诊行为分析、新的服务模式等。4、金融领域:客户画像应用、精准营销、风险管控、运营优化、二...
2020-02-12 05:43:35
1498
原创 Python异常
程序中的问题1、低级错误:代码语法出错2、中级错误:代码存在隐性错误(代码编写存在逻辑错误或缺陷)3、高级错误:软件面对不确定性的异常错误捕捉异常1、代码try: 1/0except: print('捕获异常:除数不能为0')finally: print('程序执行结束!')2、特定异常信息:ValueError:对象值不正确时触发该错误...
2019-12-14 04:31:18
135
1
原创 Python标准库
Python标准库知识标准库(Standard Library):内置了大量的函数和类,是Python解释器里的核心功能之一。官网标准库地址:https://docs.python.org/3/library/index.htmldatetime模块(日期时间)1、文档:https://docs.python.org/3/library/datetime.html2、源码...
2019-12-13 06:36:48
880
1
原创 Python类
初试类1、类(Class):指把具有相同特性(数据)和行为(函数)的对象抽象为类。数据通过类内的局部变量来实现对数据的读写操作,函数可以实现对类的相关行为的操作。 实例(Instance):是把类通过等号(=)赋值给一个变量的过程,就是实例化过程,这个变量就是实例。2、代码class Box1(): '''求立方体的类''' def __init__(self,...
2019-12-13 03:49:31
145
原创 Python函数
函数基本知识1、函数(Function):通过专门的代码组织,用来实现特定功能的代码段,具有相对独立性,可供其他代码重复调用自定义函数第一步1、不带参数函数#求因数def factor_no_para(): i=1 nums=10 print('%d的因数是:'%(nums)) while i<=nums: if num...
2019-12-12 22:29:11
847
原创 Python字典
接触字典1、字典(Dict),是可变的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号{}表示字典的开始和结束,元素之间用逗号(,)分隔,键值对用(:)分隔。2、常见操作d1={1:'car',2:'bus'}print('字典的定义:',d1)print('字典的长度:',len(d1))d1[3]='train'print('字典增加元素:'...
2019-12-12 18:43:49
199
原创 Python列表与元组
接触列表1、列表(List),是可变的序列,也是一种可以存储各种数据类型的集合,用[]表示列表的开始和结束,元素之间用逗号(,)分隔,列表中每个元素提供一个对应的下标。textx1=[1,2,3,['Tom','John','Jim']]print(len(textx1))print(textx1)print(textx1[1])2、列表的基本操作#列表元素增加fru...
2019-12-11 22:22:28
357
原创 Python条件分支与循环
if条件分支1、单分支判断if True: print('OK')2、双分支判断if False: print('OK')else: print('NO')3、多条件多分支判断n=10if n==1: print(n)elif n==2: print(n)else: print(n)while循环...
2019-12-10 21:57:28
201
原创 Python变量和简单数据类型
变量1、变量(Variable):指在计算机编程中与关联的标识符配对的内存存储位置,在使用时含相关类型的值,其值可以修改。2、Python的基本变量类型:字符串(String)、数字(Numeric)、列表(List)、元组(Tuple)、字典(Dictionary)。3、Python语言变量值的类型在赋值后才被隐性确定。one=two=three=10print(one,two...
2019-12-10 06:49:54
357
原创 Python下载、运行、调试
概述1、计算机软件:是一系列按照特定顺序组织的计算机数据和指令的集合。(office、windows、微信、qq、网站)2、编程语言:是一种形式语言,指定了一组可用于产生各种输出的指令。(Python、C、JAVA、C++、C#、R、JavaScript、PHP)3、计算机程序:由计算机执行的执行特定任务指令的集合。什么是Python语言1、Python:是一种解释型语言...
2019-12-10 04:33:55
372
原创 同步与互斥
1、进程同步的基本概念 a、互斥:若某一进程要求使用某种资源,而该资源正在被另一进程使用,并且该资源不允许两个进程同时使用,那么该进程只好等待已占用资源的进程释放资源后再使用。基本形式是:“进程-资源-进程”。同类进程是互斥关系。 b、同步:某一进程若收不到另一进程给它提供的必要信息就不能继续运行下去,这种情况表明了两个进程之间在某些点上要交换信息,相互交流运行情况。基本形式是:“...
2019-12-09 22:36:45
288
原创 处理器调度
1、调度的基本概念 调度:是依照确定的策略将一批进程排序,从就绪队列中移出一个进程并给它提供处理机的使用权。 应用:系统中处于就绪状态等进程对处理器的竞争是由进程调度程序来协调的。2、调度时机、切换与过程一个作业从提交开始直到完成,往往要经历三级调度: 1> 高级调度(作业调度/宏观调度/长程调度) 任务:按照一定的原则从外存上处于后备状态的作...
2019-12-09 07:34:44
422
原创 进程与线程
1、进程概念a、进程是资源分配的基本单位,也是独立运行的基本单位。 是程序在处理器上的一次执行过程。 是可以和别的进程并行执行的计算。 是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 是一个数据结构及能在其上进行操作的一个程序。 是一个程序关于某个数据集合在处理器上顺序执行所发生的活动。 目的:是...
2019-12-08 21:32:33
379
原创 Mac上安装Linux(虚拟机版)
1、下载虚拟机Vmware Fusion下载地址:Fusion 11.5 Pro2、linux镜像文件下载(redhat版)官网下载地址:https://developers.redhat.com/products/rhel/download注:需要注册登陆之后才能下载,此处以7.4版为例。 3、redhat镜像安装将刚才下载的镜像拖入下一步,不要使...
2019-10-31 13:36:28
15124
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人