“大数据”这个词并不陌生,近几年可以说耳濡目染,开始了大爆发之路。各互联网公司大力发展自身的大数据相关技术,各种大数据开源技术也是层出不穷,甚至国家也是大力支持大数据产业的发展。
那到底啥是大数据?大数据有哪些技术呢?让我们一起走进大数据的生态圈吧!
所谓大数据其实有各种各样的定义,但无论哪种定义都突出了“大”字。一般认为,当数据量超过了单台计算机的处理能力的时候可以称之为大数据。而对于这些数据的收集、存储、处理分析以及可视化的整个过程衍生出了很多的新技术,我们统称之为大数据技术。
数据收集
数据收集是大数据处理的基础,没有了数据,则大数据技术也就没有了永无之地,所以数据收集技术是大前提,是大数据技术的基础。目前市场上关于数据收集的大数据技术有很多,有专门提高吞吐量的,有专门收集日志的,有提供消息队列用于解耦和流式处理的,多种多样。
Sqoop
这是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql等)间进行数据的传递,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。主要应用于大量数据迁移的场景。
ZeroMQ
是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker)
Kafka
是一种高吞吐量的分布式发布订阅消息系统,其应用十分的广泛,具有高性能、持久化、多副本备份、横向扩展能力。常用于流量削锋、解耦、异步处理。
Flume
是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
Scribe
是Facebook开源的日志收集系统,在Facebook内部已经得到的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。当中央存储系统的网络或者机器出现故障时,scribe会将日志转存到本地或者另 一个位置,当中央存储系统恢复后,scribe会将转存的日志重新传输给中央存储系统。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。
Fluentd
是开源的一个日志管理系统,它的特点在于其各部分均是可定制化的,可以通过简单的配置,将日志收集到不同的地方。
Logstash
是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计.
Splunk
是机器数据的引擎。使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备(物理、虚拟和云中)生成的快速移动型计算机数据 。从一个位置搜索并分析所有实时和历史数据。 使用 Splunking 处理计算机数据,可让您在几分钟内(而不是几个小时或几天)解决问题和调查安全事件。监视您的端对端基础结构,避免服务性能降低或中断。以较低成本满足合 规性要求。关联并分析跨越多个系统的复杂事件。获取新层次的运营可见性以及 IT 和业务智能。
数据存储
Tachyon
是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文 件系统中,来达到共享内存,从而提高效率。同时可以减少内存冗余,GC时间等。
Hadoop HDFS
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高 度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实 现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部
Cassandra
是一套开源分布式NoSQL数据库系统,一种流行的分布式结构化数据存储方案。是一个混合型的非关系的数据库,类似于Google的BigTable。Dynamo 2.0
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。 就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop 项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式.
Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Rial
Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。提供一个灵活的 map/reduce 引擎,一个友好的 HTTP/JSON 查询接口。
MongoDB
MongoDB是目前最为流行的NoSQL数据库,它是一种面向集合,模式无关的文档型数据库。其中数据以“集合”的方式进行分组,每个集合都有单独的名称并可以包含无限数量的文档。这里的集合同关系型数据库中的表(table)类似,唯一的区别就是它并没有任何明确的schema.
资源调度管理
Mesos:Mesos是Apache下的开源分布式资源管理框架。
Hadoop YARN:Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
Apache Ambari
Apache Ambari是对Hadoop进行监控、管理和生命周期管理的开源项目。它也是一个为Hortonworks数据平台选择管理组建的项目。Ambari向 Hadoop MapReduce、HDFS、 HBase、Pig, Hive、HCatalog以及Zookeeper提供服务。
Openstack Sahara
Sahara已经开始从利用OpenStack的IaaS能力,提供简单的大数据工具集群创建和管理服务,扩展到提供分析即服务(Analytic-as-a-Service)层面的大数据业务应用能力。
资源监控
Ganglia
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要 是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
Nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
OpenTSDB
OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,确切地说,它只是一个HBase的应用而已,其对于时间序列数据的处理可以供其他系统参考和借鉴.
安全控制
Kerberos
Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
OpenSOC
是一个针对网络包和流的安全大数据分析框架,它是大数据与安全分析技术的结合,能够实时的检测网络异常情况并且可以扩展很多节点,使用hadoop进行存储,使用ElasticSearch进行实时索引,使用Storm进行在线数据流分析。
网友评论