大数据技术综述
大数据技术体系
大数据是指超出00000
- Volume 数据规模大:100PB往上才能叫规模较大
- Variety 数据类型多样
- Velocity 生成速度极快
- Value 价值大但密度低
大数据技术
大数据技术是以Hadoop/类Hadoop为代表的大规模分布式集群技术体系。
体系:是一类技术,代表是Hadoop等。
大规模、分布式:很多很多服务器一起工作。
Hadoop:通过一系列大规模集群式技术,实现大数据处理的每个环境(采集→存储→管理→计算→分析)。集群内部、集群之间精密分工高度协同。是大数据技术体系的核心和基础。
大数据的五高一低:
- 高扩展:实现动态线性扩展,能够在线增加服务器扩展性能
- 高可用:管理结点和工作结点高可用
- 高容错:结点上运算失败要调度到其他结点,结点掉了数据不能丢失
- 高吞吐
- 高性能
- 低容错
技术体系
如上图所示,上下相邻表示要协同配合工作。
ZooKeeper用作分布式协调服务
- 数据采集
结构化数据采集:Sqoop
半结构化数据:Flume、kafka - 数据存储与管理
文件系统:HDFS
分布式图数据库:Neo4j
列式数据库如HBase,Cassandra(用得少,是去中心化管理的)
分布式缓存数据:Redis
分布式文档数据库:MongoDB - 资源管理
资源管理系统:YARN(处理短任务),Mesos(容器管理,可以跑短任务也可以跑微服务)
容器化集群操作系统:Kubernetes、DC/OS、TCOS - 计算框架
离线批处理计算框架:MapReduce(map+reduce,映射+化简,对稳定性要求高,处理速度不敏感的业务)
高性能计算框架:Spark Core(相比于MapReduce计算模型更加精细:处理成任务的切分精细并发度高,使用内存加载) - 数据分析
数据仓库以及SQL引擎:Hive、SparkSQL
数据集市:Impala、Presto
综合搜索:ElasticSearch、Solr(用的少了,切词索引进行的时候用户并发增加会降低性能)
实时流处理:Strom(支持VP和事件驱动,现在用得少了)、Flink DataStream(事件驱动,事件过来必须马上处理)、Spark Streaming(VP,事件来了可以攒一下)
人工智能:Spark MLlib、TensorFlow
大数据技术vs.传统数据技术
传统数据技术:RDBMS(Share-everything,单机关系数据库)+RAC(Real Application Cluster,实时应用集群,一库多实例:一个数据库文件+多个实例,可以实现负载均衡,解决秒切换等)+MPP(Share-nothing,会有多个数据库实例,但是实例之间不作任何共享,Massively Parallel Processing大规模并行处理)
大数据技术 | 传统数据技术 | |
---|---|---|
数据类型 | 结构化、半/非结构化数据 | 结构化数据 |
数据规模 | GB → TB → PB 以上 | GB → TB |
系统架构 | 大规模分布式集群、1000+ | 集中管理、100~200 |
处理性能 | 提升几倍至几十倍 | TB以上便达到性能瓶颈 |
可靠性 | 关键组件实现高可用 海量数据的多副本冗余备份 | 取决于关键节点大规模数据的备份和恢复困难 |
经济性 | 运行在普通x86服务器上软件成本低廉 | 服务器配置要求很高 软件采购成本及后续费用很高 |
应用价值 | 数据分析与挖掘 | 事务处理、统计报表 |
业务场景 | ABC全部功能场景 | 数据仓库、数据集市 |