设计模式的七大原则 开放-封闭原则 通俗:对扩展开放,对修改关闭 单一职责原则 通俗:一个类只做一件事 依赖倒转原则 通俗:程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,而不要用具体类来做这些事情。 迪米特法则(最少知道原则) 通俗:高内聚,低耦合。类对自己依赖的类知道的越少越好。 接口隔离原则 通俗:最小的接口, 互不关联的接口独立出来减少依赖 合成...
设计模式的七大原则 开放-封闭原则 通俗:对扩展开放,对修改关闭 单一职责原则 通俗:一个类只做一件事 依赖倒转原则 通俗:程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,而不要用具体类来做这些事情。 迪米特法则(最少知道原则) 通俗:高内聚,低耦合。类对自己依赖的类知道的越少越好。 接口隔离原则 通俗:最小的接口, 互不关联的接口独立出来减少依赖 合成...
import与sys.path 模块import导入顺序 在 sys.modules 中查找,它缓存了所有已导入的模块, 这里默认在运行前会自动加载内置库. 此变量中包括了解释器的内置库,即在sys.builtin_module_names中搜索,返回第一个找到的结果 在 sys.meta_path 中查找,它支持自定义的加载器 按顺序在sys.path中搜索,排在前面的优先被找...
魔法方法指南 Python魔法方法指南: https://github.com/MrKiven/PyZh/blob/master/docs/python-magic-methods-guide.rst 魔术方法和内建属性 Python中有大量类似__dict__这种以双下划线开头和结尾的特殊成员及“魔法方法”,它们有着非常重要的地位和作用,也是Python语言独具特色的语法之一!重写魔术...
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。注意pip和conda是两个不同的东西,它们的包安装地址都不一样,不要混淆了。 为什么选择Anaconda 什么是 conda conda 是开源包(packages)和虚拟环境(environment)的管理系统。 packages 管理:一个类似于pip的包管理工具,不同...
注意:Schedule主要作用是替代linux系统自带的Crontab命令,用于周期性的执行某个命令。 科普一下任务调度系统 任务调度系统的地位 任务调度系统在数据平台中算是非常核心的组件,相当于指挥部,指挥各个平台上各个组件的运行,并监督任务的运行情况。大数据平台中通常会有很多任务运行,有一个好的任务调度系统可以极大提高效率。 最简单的任务调度系统莫过于linux系统自带的Crontab工...
如果你提交的 pull request 未被接受且得到回复说:“重新fork”。说明在你fork之后,源仓库又更新了。 通常的做法是,删掉自己fork的库,然后再修改。但是如果fork中有大量已修改的内容时这个方法就不行了。 操作步骤 1、执行命令 git remote -v 查看你的远程仓库的路径。 $ git remote -v origin https://github.com/e2...
什么是IO流 java的io是实现输入和输出的基础,都在java.io.*包下。 流(stream)是一种有顺序的,有起点和终点的字节集合 IO流的分类: 按照流的方向区分: 节点流,输入流(往内存中去)、输出流(内存中出来) java.io.InputStream 字节输入流 java.io.OutputStream 字节输出流 按照读取数据方式区分: 处理流,字节流、字符流 java.i...
注意:同样以java为例说明 为什么说集合非常重要 集合可以说是学习 Java 中最重要的一块知识点了,无论做任何业务系统,集合总是最为基础的那块API。 在实际项目中,我们可以发现集合无处不在,因为凡是涉及到数据存储相关的问题都离不开集合,合理的使用集合可以极大的提高存储和检索的效率。集合也是很多数据结构的基础。 集合与集合框架 集合 集合是 Java 提供的一种存储对象的容器,同数组一样...
注意:本文以java为例说明。 什么是注解 Java注解是JDK1.5的新特性,与注释比较类似,不同的是注释是给我们开发人员看的,注解是给代码看的,它是代码层面的解释说明,注解也被称为元数据。注解的使用也很简单,语法规则:@注解名称,比如我们常见的“@Override”。 注解本身没有任何意义,单独的注解就是一种注释,他需要结合其他如反射等技术才有意义。 Java注解它提供了一种安全的类似注...
反射机制 这里以java反射机制加以说明,其他编程语言基本类似。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 反射机制应用场景 通过配置信息调用类的方法 结合注解实现特殊功能 按需加载jar包或class 逆向代码 ,例如反编...
什么是泛型,为什么使用泛型 泛型:允许程序员在强类型程序设计语言中在类定义时不会设置类中的属性或方法参数的具体类型,而是在类实例化时(创建对象)再进行类型的定义,会在编译期检查类型是否错误。 使用泛型的目的 可重用,不使用泛型通常相同功能的代码,根据不同传入的参数类型的多少,就的重复写多次。 可扩展,可扩展不同的数据类型 类型安全,实例化时需指定类型,如果使用object代替类型,那么类型...
SEO与SEM SEO的发展历程 SEO是搜索引擎优化的意思,通过研究搜索引擎排序规则,使页面达到搜索排名前列的目的,从而达成曝光率。 SEO 的发展主要经历了以下几个发展阶段: 第一阶段:谷歌百度成立初期,SEO刚出现,此时的SEO是各种玄学,缺少理论和科学依据。 第二阶段:搜索引擎算法完善,PC端搜索引擎成了主要流量入口。再加上大量人员进入这个行业导致其野蛮发展,形成了产业链,同时通...
简单请求 对于简单的跨域请求,浏览器会自动在请求的头信息加上 Origin 字段,表示本次请求来自哪个源(协议 + 域名 + 端口),服务端会获取到这个值,然后判断是否同意这次请求并返回。 只要同时满足以下两大条件,就属于简单请求。 条件一: 请求方法只有HEAD/GET/POST中的一个 条件二: HTTP的头信息不超出以下几种字段 Accept、Accept-Language、Conte...
版本说明 MySQL5.7.8 开始支持JSON类型 使用 JSON 数据类型,推荐用 MySQL 8.0.17 以上的版本,性能更好,同时也支持 Multi-Valued Indexes
在开发中,应业务需要,我们的关系型数据库的数据字段需要进行扩展,我们如何在原有的表基础上实现扩展呢? 直接添加字段 顾名思义,直接修改数据表,增加字段。通常在业务确定需要某个属性时这样操作,但业务数据不定时就不适合了。 预留字段 普通预留字段 在建表时,新增几个预留的字段,类型为字符串。 CREATE TABLE `p_test` ( `id` INT(10) UNSIGNED NOT ...
Flume1.9用户手册中文版 在线文档: https://hlog.cc/docs/flume1.9/
Sqoop/Flume/Logstash 说明 Apache Sqoop Apache Sqoop:是一款Hadoop和关系数据库之间传送数据的工具。 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数据库; 工作机制:将导入或导出命令翻译成mapreduce程序来实现,所以安装sqo...
apache hadoop及其生态组件安装管理的缺点 部署过程及其复杂,超过20个节点的时候,手动操作就非常累了。 各组件部署完成后,各自为政,没有统一化的管理界面。 各组件之间的依赖关系很复杂,一环扣一环,部署过程心累。 各组件之间没有统一的可视化界面,比如hdfs占用磁盘空间、IO、运行状况等。 优化等需要用户自己根据业务场景进行跳转,效率极低,不能自动分发到所有节点上。 为了解决上...
Kubernetes 是什么 Kubernetes,又称为 k8s,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,应用部署,规划,更新,维护的一种机制。 目前主流的Kubernetes集群管理平台就是Kubesphere和Rancher Kubesphere 和 Rancher 的区别 核心区别 KubeSphere定位是以应用为中心...
项目的架构 架构图 架构图说明 Zookeeper:集群管理工具,主要服务于hadoop高可用,以及其他基于zookeeper管理的大数据软件 HDFS:大数据最终数据的储存 YARN:负责资源的分配 HIVE:用于编写SQL进行数据分析 Oozie:主要负责自动化定时调度 Sqoop:用户关系数据库的导入导出 Flume:日志文件的导入导出 HUE:提升hadoop的用户体验,可以比较...