大数据技术栈

该图基本上全面介绍了大数据技术栈中全部的内容,参考自阿里云社区https://yq.aliyun.com/articles/171813算法

如下转载了相关的技术栈说明 http://www.javashuo.com/article/p-eqhfqdmg-bv.html ,后续我也会基于本文和工做中遇到的技术来进行补充。数据库

1 先说各类数据存储

数据是个很泛的概念,可是咱们脑海里第一反应的就是关系型数据库和EXCEL这种二维表是数据。apache

而如今数据各类各样特点,有文档、有图片、有流式的音频视频、有日志数据、有IM消息数据、有索引数据、有社交应用的网状关系数据、有地图数据。他们对存储访问都有不一样的要求,于是NoSQL兴起了。安全

如KV型,前后出现了Memcached、Redis。如文档型,出现了CouchDB、MongoDB。如日志数据,也出现了Facebook Scribe、Flume、Logstash。服务器

即便在传统关系型数据领域,因为大数据规模也出现了真正的分布式关系型数据库,如GreenPlum、TiDB、OceanBase网络

为了多维分析,也出现了专门的列式数据库,如HBase。架构

2 数据仓库

各式各样的数据,经由各类上层应用进行了采集和存储。但咱们一提到大数据,天然想到的就是大数据分析。大数据分析的第一步就是大数据仓库建设。框架

大数据仓库建设,必要的工做就是ETL(抽取、转换、导入)。抽取,这步就又细分为:数据抽取、数据清洗、数据校验。在转换这步,咱们也须要关注数据安全脱敏,也就是说,进入大数据仓库的数据须要分级。运维

不过你们通常建设大数据仓库,首先作的第一个应用工做就是:主数据治理。因此这个第一期,须要作:主数据标准制定、主数据清洗与校验、主数据转换(拆分合并)、主数据复制分发、主数据访问OpenAPI。机器学习

数据复制分发,咱们可使用消息队列和调度服务来工做。消息队列如Kafka、ZeroMQ、ActiveMQ、RabbitMQ。调度服务如ZooKeeper。

数据抽取传输开源项目,我能看到的Sqoop on Hadoop。可能不少数据都是直接被Spark、Storm、Presto、Hbase处理了。

3 大数据仓库基础架构

如今建大数据仓库,须要的是分布式存储和分布式计算,不再是过去几十台服务器和几百T存储这么简单的。这都是要以万计的,这才是真正的大数据。而要建造这么大规模的大数据仓库,须要分布式存储和分布式计算基础框架支撑。

咱们第一个就要提出的就是Hadoop。目前它已经成为了一个生态。Hadoop最核心是两块:分布式文件系统HDFS、MapReduce。MapReduce又分为MAP(分解任务)、Reduce(合并结果)两部分。

如今有个新玩意叫YARN,不过YARN并非MapReduce2.0。在MapReduce中资源管理和做业管理均是由JobTracker实现的,集两个功能于一身,而在新的Hadoop2.0架构中,MapReduce做业管理由ApplicationMaster实现,而资源管理由新增系统YARN完成。Hadoop Corona是facebook开源的下一代MapReduce框架。其基本设计动机和Apache的YARN一致。就是由于你们都在解决同一个问题,只不过不一样时间段开源出来不一样的解决方案项目,因此使你们大呼到底要用哪一个啊。

如今又出来一个新玩意叫:Mesos。Mesos是更宽泛的资源管理框架,不只能够管理偏重于半结构化的大数据框架,也能够管理非结构化的框架。人们也在对比Mesos和Kubernetes,其实Kubernetes只是目前聚焦于容器的管理,而Mesos野心更大,固然也抽象的更通用化,留下各类抽象接口,以管理各类资源。

有人还把ZooKeeper和YARN、Mesos比较。其实Zookeeper已经成为最基层最具体最不可或缺的真正的协调执行者了。而YARN成为了大数据处理资源管理框架,而Mesos更成为了有史以来更大集成者更通用的资源管理框架了。

4 大数据计算框架

在大数据处理领域,目前当红炸子鸡是:Spark、Storm、Flink。

Spark切的领域在MapReduce工做的领域,不过Spark大量把MAP中间结果放到内存中,因此显得性能特别快。如今Spark也在往生态走,但愿可以上下游通吃,一套技术栈解决你们多种需求,因此你们又渐渐看不清楚Spark聚焦的领域了。Spark Shark,是为了VS hadoop Hive,Spark Streaming是为了VS Storm。

Storm擅长处理实时流式。好比日志,好比网站购物的点击流,是源源不断、按顺序的、没有终结的,因此经过Kafka等消息队列来了数据后,Storm就一边开始工做。Storm本身不收集数据也不存储数据,随来随处理随输出结果。

它们都有各自的特点,但他们都没法给你处理具体的业务应用,它们只是大规模分布式计算的通用框架,因此具体用他们的特性干什么,还得你本身写。这就是大数据业务领域分析系统的事了。

不过,下面我会介绍一些技术,在特定的业务领域,可以帮你更简单的达成业务应用须要。

5 大数据应用技术

  • 大数据搜索:Lucene、Solr、ElasticSearch。ElasticSearch是新推出的比Solr在大规模数据状况下更好的开源解决方案。

  • 大数据查询:这里有Hive/Impala,Hive的做用是你能够把结构化数据导入到Hadoop中而后用简单SQL来作查询。你能够把Impala看作是性能更快的Hive,由于Impala不强依赖MapReduce。而Facebook开源的Presto更是能查询多种数据源,并且一条Presto查询能够将多个数据源的数据进行合并。

  • 大数据分析:我们要提到去年新晋顶级Apache项目的Kylin。它创始于ebay,2014年进入apache孵化项目。Kylin不只仅能作SQL查询,并且能作Cube多维分析。

  • 大数据挖掘:这个领域包含精准推荐、机器学习/深度学习/神经网络、人工智能。自从AlphaGo火了之后,机器学习再度火热。Google开源了最新机器学习系统TensorFlow,微软亚洲研究院开源了分布式机器学习工具包-DMTK,雅虎也开源了Caffe On Spark 深度学习。Mahout是Apache的一个开源项目,提供一些机器学习领域经典算法的实现,包括聚类、分类、推荐过滤、频繁子项挖掘。

6 数据可视化工具

这块有大量的可视化开源组件,但成系统的开源的确实出色的很少。这里面大有可玩。

Airbnb近日开源了数据探查与可视化平台Caravel。另外,百度推出的Echarts组件也不作,能够基于此作些系统性的工做。

7 数据平台监控运维

这里只看到一套完整的适用于海量日志处理的工具:Facebook Scribe、Flume、Logstash、Kibana。但我以为,如此复杂的大数据平台技术栈,一套成熟的监控运维系统,是必需要出现的。

8 最后总结:大数据平台建设总蓝图

做为我们平常业务,最直接的须要就是一套能分析具体业务的应用系统,但这套应用系统须要不少基础技术架构和服务才能达成。为了让你们有所预期,因此我把这些必备前提储备列出来。

技术平台建设:

  • 大数据基础架构:推荐Hadoop、HDFS、YARN;大数据计算框架:推荐Spark;大数据日志收集推荐Flume+Logstash+Kibana。咱们须要部署依赖中间件Zookeeper。

  • 大数据仓库平台建设:分布式关系型TiDB、KV式Redis、文档型MongoDB、列式Hbase

  • 大数据搜索,推荐选择Lucene、ElasticSearch;大数据查询,推荐选择Presto;大数据多维分析,推荐Kylin;大数据挖掘,推荐挖掘开源算法包MashOut。

大数据整理服务:

  • 主数据管理:主数据标准制定、主数据清洗与校验、主数据转换(拆分合并)、主数据复制分发、主数据访问OpenAPI。

  • ETL:数据抽取、数据清洗、数据校验、数据安全脱敏

大数据分析系统建设:

  • 大数据展现平台建设

  • 大数据商业应用模型建模

  • 大数据应用分析系统设计与开发

大数据分析服务:

  • 大数据分析解读报告

看看,大数据建设很复杂,你们必定要沉住气,一期期来作,这个周期和投入将会很大,不是设计个分析模型、开发个分析系统这么简单的。若是就是那样简单的,其实就是个披着大数据的报表系统而已。

相关文章
相关标签/搜索