编程语言中高级特性:反射

反射机制 这里以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 # 指的就是关机后重启系统 # 安装ssh服务,发现连接不了先启动,启动不成功就安装 sudo apt install openssh-server # IP配置 sudo vim /...

继续阅读 »

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...

继续阅读 »

Git实现自动化部署

业务需求 随着项目业务越来越复杂,参与开发的人越来越多,代码管理,部署就会越来越复杂。传统手动部署变的不可靠,容易出错,而且浪费大量时间。有没有什么办法制动部署呢?这了介绍利用git hook完成制动部署。 当然,制动化部署是DevOps的重要部分。 关于钩子(hooks) 客户端钩子 客户端钩子分为很多种。 下面把它们分为:提交工作流钩子、电子邮件工作流钩子和其它钩子。脚本写在工作区的.g...

继续阅读 »

定向广告系统开发需考虑的要素

简单描述一下何为定向广告 什么是定向广告? 简单来说,就是将广告推给特定属性和行为的人群。 定向广告系统与传统广告系统区别 传统广告系统一般是广告位买断制,全量展示。而定向广告系统一般需大数据计算,投放比较精细。 定向广告系统,需大量数据和用户支撑,也需要有大量广告主形成良性竞价平衡。不然会出现价格低,数据难看等情况。 定向广告系统不是以广告位为投放单位,而是以创意为基本投放单位。一个创意...

继续阅读 »

Elasticsearch教程 — 集群/分片/副本/水平扩容/优化

集群安装与配置 单台节点往往性能有限、磁盘有限、并发有限。 修改集群文件目录中每个节点的 config/elasticsearch.yml 配置文件 #节点 1 的配置信息: #集群名称,节点之间要保持一致 cluster.name: my-elasticsearch #节点名称,集群内要唯一 node.name: node-1001 node.master: true node.data:...

继续阅读 »

优秀的ssh工具推荐

Xshell + Xftp 付费软件,不过有家庭免费版 https://www.xshellcn.com/xshell.html 此软件是在公司中使用的软件,公司电脑配置差。打开占用内存 30M左右。只能运行在windows环境中。需要说明一下的是,以前这两款软件爆出过收集用户信息的丑闻了的。 tabby 开源工具 https://github.com/Eugeny/tabby 经过...

继续阅读 »