Schedule—简单实用的 Python 周期任务调度工具

注意:Schedule主要作用是替代linux系统自带的Crontab命令,用于周期性的执行某个命令。 科普一下任务调度系统 任务调度系统的地位 任务调度系统在数据平台中算是非常核心的组件,相当于指挥部,指挥各个平台上各个组件的运行,并监督任务的运行情况。大数据平台中通常会有很多任务运行,有一个好的任务调度系统可以极大提高效率。 最简单的任务调度系统莫过于linux系统自带的Crontab工...

继续阅读 »

Github进行fork后如何与原仓库同步

如果你提交的 pull request 未被接受且得到回复说:“重新fork”。说明在你fork之后,源仓库又更新了。 通常的做法是,删掉自己fork的库,然后再修改。但是如果fork中有大量已修改的内容时这个方法就不行了。 操作步骤 1、执行命令 git remote -v 查看你的远程仓库的路径。 $ git remote -v origin https://github.com/e2...

继续阅读 »

编程语言中IO流的使用

什么是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简说

SEO与SEM SEO的发展历程 SEO是搜索引擎优化的意思,通过研究搜索引擎排序规则,使页面达到搜索排名前列的目的,从而达成曝光率。 SEO 的发展主要经历了以下几个发展阶段: 第一阶段:谷歌百度成立初期,SEO刚出现,此时的SEO是各种玄学,缺少理论和科学依据。 第二阶段:搜索引擎算法完善,PC端搜索引擎成了主要流量入口。再加上大量人员进入这个行业导致其野蛮发展,形成了产业链,同时通...

继续阅读 »

浏览器跨域问题详解

简单请求 对于简单的跨域请求,浏览器会自动在请求的头信息加上 Origin 字段,表示本次请求来自哪个源(协议 + 域名 + 端口),服务端会获取到这个值,然后判断是否同意这次请求并返回。 只要同时满足以下两大条件,就属于简单请求。 条件一: 请求方法只有HEAD/GET/POST中的一个 条件二: HTTP的头信息不超出以下几种字段 Accept、Accept-Language、Conte...

继续阅读 »

数据库设计——自定义扩展数据

在开发中,应业务需要,我们的关系型数据库的数据字段需要进行扩展,我们如何在原有的表基础上实现扩展呢? 直接添加字段 顾名思义,直接修改数据表,增加字段。通常在业务确定需要某个属性时这样操作,但业务数据不定时就不适合了。 预留字段 普通预留字段 在建表时,新增几个预留的字段,类型为字符串。 CREATE TABLE `p_test` ( `id` INT(10) UNSIGNED NOT ...

继续阅读 »

Sqoop/Flume/Logstash数据采集软件的对比与教程

Sqoop/Flume/Logstash 说明 Apache Sqoop Apache Sqoop:是一款Hadoop和关系数据库之间传送数据的工具。 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数据库; 工作机制:将导入或导出命令翻译成mapreduce程序来实现,所以安装sqo...

继续阅读 »

Cloudera Manager — hadoop集群软件分发和管理平台

apache hadoop及其生态组件安装管理的缺点 部署过程及其复杂,超过20个节点的时候,手动操作就非常累了。 各组件部署完成后,各自为政,没有统一化的管理界面。 各组件之间的依赖关系很复杂,一环扣一环,部署过程心累。 各组件之间没有统一的可视化界面,比如hdfs占用磁盘空间、IO、运行状况等。 优化等需要用户自己根据业务场景进行跳转,效率极低,不能自动分发到所有节点上。 为了解决上...

继续阅读 »

k8s集群管理平台:Kubesphere与Rancher

Kubernetes 是什么 Kubernetes,又称为 k8s,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,应用部署,规划,更新,维护的一种机制。 目前主流的Kubernetes集群管理平台就是Kubesphere和Rancher Kubesphere 和 Rancher 的区别 核心区别 KubeSphere定位是以应用为中心...

继续阅读 »

基于Hive的离线数据仓库项目

项目的架构 架构图 架构图说明 Zookeeper:集群管理工具,主要服务于hadoop高可用,以及其他基于zookeeper管理的大数据软件 HDFS:大数据最终数据的储存 YARN:负责资源的分配 HIVE:用于编写SQL进行数据分析 Oozie:主要负责自动化定时调度 Sqoop:用户关系数据库的导入导出 Flume:日志文件的导入导出 HUE:提升hadoop的用户体验,可以比较...

继续阅读 »

Hive与数据仓库

数据仓库概念 数据仓库是一个用于储存、分析、报告的数据系统,目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持。 数据仓库本身不生产任何数据,其数据来源于外部系统,同时数据仓库也不消费任何数据,其分析的结果开放给各外部应用使用。 Hive是什么 Hive是⼀个基于Hadoop的数据仓库⼯具,可以将结构化的数据文件映射成⼀张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及...

继续阅读 »

linux常用命令汇总

这里以Ubuntu18.04 server版本为例子讲解 # 关机重启 halt # 关机 shutdown -h now # 立即关闭系统和电源 reboot # 重启 shutdown -r now # 指的就是关机后重启系统 # 内核版本 uname -r cat /proc/version lsb_release -a # 查看发行版本信息 # 启动项服务 systemctl s...

继续阅读 »

Hadoop大数据入门教程

Hadoop可运行于一般的商用服务器上,具有高容错、高可靠性、高扩展性等特点 特别适合写一次,读多次的场景 适合 大规模数据 流式数据(写一次,读多次) 商用硬件(一般硬件) 不适合 低延时的数据访问 大量的小文件 频繁修改文件(基本就是写1次) Hadoop版本和架构变迁 Hadoop 1.0版本 HDFS(分布式文件存储) MapReduce(资源管理和分布式数据处理) Hadoop...

继续阅读 »

大数据学习线路图

大数据入门指南 : https://github.com/heibaiying/BigData-Notes 大数据成神之路 : https://github.com/wangzhiwubigdata/God-Of-BigData 大数据学习指南 : https://github.com/MoRan1607/BigDataGuide 大数据面试题 : https://github.com...

继续阅读 »