大数据生态圈常用组件:数据库、查询引擎、ETL工具、任务调度工具等

你的闺蜜在减肥,隔壁老王在练腰,你还不赶紧来学习

  整理了当年使用过的一些,大数据生态圈组件的特性和使用场景,若有不当之处,请留言斧正,一起学习成长。

组件名 属性标签 特性 使用场景 价格成本
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) 开源

你可能感兴趣的:(大数据生态圈)