分布式消息系统,解耦模块的桥梁
Kafka 是一个基于 发布-订阅 的分布式消息系统,主要面向于大数据应用场景。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka 是一种快速、可扩展、本身就专注于分布式的、实时消息流系统。Kafka 在2010 年正式向 Apache 社区开源,目前社区活跃。目前在互联网公司使用非常广泛,已经成为大数据分析的基础服务。
时序处理数据库,更快的存储和聚合
OpenTSDB 是为存储时序数据而设计的,它基于 HBase 存储数据,充分发挥了 HBase 的分布式列存储特性,支持数百万每秒的读写,支持千万数目的 Metric,它的特点就是容易扩展,具有灵活的 Tag 机制。其主要用途,就是做监控系统,譬如收集大规模集群( 包括网络设备、操作系统、应用程序 )的 监控数据 并进行存储和聚合查询,在目前的 IoT 方面具有很大的应用价值。
基于时间序列,实现数据聚合
时序数据 就是基于时间序列的数据,其常常表现为同一指标按时间序列记录的数据列,在需求实时性的场景中比较常见。而对于此种数据的运用通常使用基本的 聚合 方式就能达到需求了。当然,目前 AI
盛行的时代,机器学习领域也不断出现很多基于 时序预测 的算法。但本文主要介绍时序数据的基础认识,这部分的认知主要是从自己目前所做的数据监控项目的经验所得,若有不正确,请大家批评指正。
时序数据 和一般的数据没什么区别的,基本上也都用 json 格式表示,唯一不同点就是数据中一定包含关于 时间 的信息,比如: 时间戳。
一般一条时序数据只表示一个键值信息,而在时序数据中,这个键常常称为 指标 或 指标名 (英: metric ),而值则就是指标对应的值了。因而,一个时序数据的基本格式如下:
show me code? No, show me elegant code!
很多情况下,我们的程序需要在操作系统 后台 一直运行,这在程序代码里的实现就是用死循环 ( while (true)
) 来实现的。但是,这样会出现一个问题,就是我们想要关闭程序怎么办?如果用暴力结束进程方式,那程序的内存中若还有未输出的数据,这部分数据将会遗失。因此,我们要对程序实现 退出收尾 操作,这就需要我们完善我们的程序,实现 “优雅” 地退出。
首先,我们需要知道什么是后台进程。众所周知,我们与服务器进行交互都需要通过终端进行实现,而在终端上执行的程序都会默认将输出打印在终端界面里,而这中方式就 交互式进程,并且当前终端只能运行一个交互进程的,所以如果我们想在一个终端里运行多个任务,我们就需要将某些进程丢到 后台 ,而这些进程不影响当前终端的交互执行,就被称为 “后台进程”。
所有的 交互式进程 都是可以转为 后台进程 的,因为进程的操作任务是一定的,只不过是它们的显示方式不同罢了,通常我们在一个终端里在任务后面加上 & 操作符就可以让交互式进程变为后台执行进程了。如:
容易被忽略的数据生产源
目前,随着大数据方向的推进,越来越多的数据被应用于数据分析和挖掘,而其中一大部分就是项目中的 日志数据。而 Java 项目中有很多的日志输出包,不同项目使用不同的日志工具会造成数据结构的不一致,这样就为 数据分析 增添了一定的麻烦,今天记录下对各中日志工具的说明。
这个是 java.util.logging 的缩写,也就是 Java 本身 JDK 自带的日志工具,但是通常它的功能有限,因此,项目中的日志输出都是采用特有的日志工具进行记录。而日志工具中得到广泛使用的就是 log4j.
Java 界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j, 许多应用程序的日志部分都交给了 log4j, 不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个工具,毕竟在同一个时候还有很多其他很多日志工具,假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序就会有两份日志输出了。
为虚拟化应用而生,生产环境一键打包
Docker
是一个开源的 应用容器引擎,基于 Go
语言 并遵 从Apache2.0
协议开源。Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口( 类似 iPhone
的 App
),更重要的是容器性能开销极低。
Web
应用的自动化打包和发布;OpenShift
等平台来搭建自己的PaaS环境;仓库:
docker
官网仓库: http://hub.docker.comdocker
中国区官网仓库: https://registry.docker-cn.com学术论文平台一点通,毕业论文不再是难事
最近发论文的需求逐渐被提高上来,身边的同学也在忙碌自己的研究,准备发篇论文以应对论文开题。但我们学校对发的论文有一定要求,需要被至少 SCI、EI、北大核刊 录入才可以,但是全球期刊和会议多之又多,怎么确定哪个会议被哪个平台是否录入,哪个学术会议或期刊价值更高点,以及怎么对各个平台进行索引搜索,这就需要自己详细地了解各种平台以及各个名词,下面记录下自己的了解。
SCI 的英文全称为 Science Citation Index ,即 《科学引文索引》,简称 《SCI》,是美国科技情报研究所( Institute for Scientific Information 简称“ ISI ” )于 1961 年创办的国际权威检索系统,其创始人为 尤金·加菲尔德( Eugene Garfield, September 16, 1925~2017 )。
企业大数据开源平台,从部署迈出第一步
最近应项目公司需求,我们需要为其构建一个大数据平台。开源的Hadoop生态应用 由于没有技术服务支持,公司不采用此种方案进行构建。因此我们选择采购具有技术支持的 第三方大数据平台,当然这些公司的平台也完全基于 Hadoop, 只不过他们有着一帮技术团队,可以为自己平台出现的问题提供技术服务。
第三方平台目前我们所接触了解的有四家:
而由于 Cloudera 提供了开源免费版本的产品,因此这篇博客主要对 Cloudera 公司产品的部署过程进行记录。