前言
你的闺蜜在减肥,隔壁老王在练腰,你还不赶紧来学习
整理了当年使用过的一些,大数据生态圈组件的特性和使用场景,若有不当之处,请留言斧正,一起学习成长。
正文
组件名 |
属性标签价格成本 |
特性 | 使用场景 | 价格成本 |
Mysql |
关系型数据库,行式存储,支持sql | 轻量级数据分析,存储 | hive的元数据,kettle的资源库,web 应用后台库。 | 社区版和商业版 |
Oracle |
关系型数据库,行式存储,支持sql | 中量级数据分析,存储。可分布式 | BI(商业智能) | 社区版和商业版 |
Hive | 基于HDFS的数据仓库,可行(textfile)可列(parquet)存储,支持sql | 支持数据量大,依赖jdk,hadoop,元数据存储一般使用mysql | 数据仓库,离线大数据集的批处理作业 | 开源 |
Spark | 基于内存的大规模数据处理快速通用的计算引擎,支持sql | Job中间输出结果可以保存在内存中,从而不再需要读写HDFS。通用引擎: 支持SQL 查询、文本处理、机器学习 | 适用于数据挖掘与机器学习;hive on saprk的快速离线计算 | 开源 |
Spark Streaming | 流式处理 | 高吞吐量的、具备容错机制的实时流数据的处理 | 实时数据处理 | 开源 |
Hbase | 高可靠性、高性能、面向列、可伸缩的分布式存储系统 问世灵感:Google论文Bigtable |
基于zookerper,hadoop,适合于非结构化数据存储的数据库 | 适用超大数据存储,准实时查询; bitmap存储 |
软件开源,低硬件成本(hadoop) |
ES | 分布式全文搜索引擎 |
ES自动可以将海量数据分散到多台服务器上去存储和检索,支持海量数据进行近实时的全文检索(like "%ABC%")和结构化检索(= "ABC" ) | 站内搜索(电商,招聘,门户等),IT系统(OA,CRM,ERP);维基百科,GitHub | 开源 |
redis | 高性能的key-value数据库 | 读写性能极高,丰富的数据类型 | 结合storm的实时查询分析,java高并发秒杀 | 开源 |
memcache | 基于内存 | 分布式的高速缓存系统,对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。 | 单点登录页面跳转的时候,解决重复性登录的问题。 | 开源 |
HANA | 软硬结合,基于内存的高性能实时数据计算平台,支持sql | 用大内存提供内存数据库,并在内存数据库里采用列式存储从而可以将更多的数据装进内存(列式存储更适合数据压缩) |
高性能数据插入、修改和高效的查询功能;外部数据快速建模;报表展现。绫致时装在用 |
非常昂贵 |
Oracle Exadata | 软硬结合;重内存,轻磁盘 | 把大部分数据库操作push到硬件,通过高性能硬件提高数据查询速度,通过采用列式结构减少需要在存储和内存间移动的数据量,通过高速网络接口提供数据传输的效率 | 企业数据分析和常规建模 |
适中 |
TeraData | 数据仓库,支持sql,性能超赞 | 专注于大数据分析、数据仓库和整合营销管理解决方案 | 银行数仓 | 非常昂贵 |
Kafka | 高吞吐量、低延迟:kafka每秒可以处理几十万条消息;可扩展性:kafka集群支持热扩展; 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失; 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败);高并发:支持数千个客户端同时读写 |
一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写 | 日志收集:可以用Kafka可以收集各种服务的log; 消息系统:解耦和生产者和消费者、缓存消息等; 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等; 运营指标:Kafka也经常用来记录运营监控数据; 流式处理:比如spark streaming和storm |
开源 |
Flume | 高可用的分布式海量日志采集、聚合和传输的系统 | 接收各方数据并进行简单处理,支持多通道,多数据类型,和规模宏大的社交网络节点事件数据 | 社交网站,电商网站:facebook,twitter,亚马逊,flipkart | 开源 |
storm | 分布式、高容错的实时计算系统 | 分布式系统:可横向拓展,现在的项目不带个分布式特性都不好意思开源。高度容错:模块都是无状态的,随时宕机重启。 无数据丢失:Storm创新性提出的ack消息追踪框架和复杂的事务性处理,能够满足很多级别的数据处理需求。 |
Storm被广泛应用于实时分析,在线机器学习,持续计算、分布式远程调用等领域 |
开源 |
ETL工具 | ||||
Kettle | ETL工具 | 本地开发,通过资源库同步在服务器执行 | 常用ETL工具之一 | 开源 |
Sqoop | ETL工具 | 常规etl工具,可集群部署 | mysql与hadoop数据迁移等 | 开源 |
调度工具 | ||||
azkaban | 调度工具 | 调度工具 处理有依赖关系的复杂任务调度,只支持mysql存储基本信息 | 常用调度工具之一 | 开源 |
crontab | linux自带调度工具 | 简单任务调度 | 适用日常少量调度 | 开源 |
ooize | 调度工具 | 处理复杂任务调度,但好像并不好用 | 大数据领域调度工具之一(Oozie, Azkaban,Cascading,Hamake) | 开源 |