关于技术选型

技术选型主要考虑因素:

数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算

数据采集传输:

Flume、Kafka、Sqoop、Logstash、DataX
ELK【ElasticSearch、Logstash 和 Kibana】:处理数据量大于Mysql,但是处理不了 BP、TP级的大数据。
DataX :阿里巴巴集团内被广泛使用的离线数据同步工具/平台,
其核心组件:
Reader:数据采集模块,负责从源采集数据
Writer:数据写入模块,负责写入目标库
Framework:数据传输通道,负责处理数据缓冲等。

数据存储:

Mysql、HDFS、HBase、Redis、MongoDB
HBase:通常在实时项目中用来存储实时的(k,v)数据。列式数据库,字典查询,稀疏性存储,用于存储海量数据,底层基于HDFS,无法做关系数据库的主外键。
Redis:分布式缓存,强调缓存,内存中数据。
MongoDB:前端、Python工程师用的比较多,存储的数据量也不是特别大

数据计算:

Hive、Spark、Flink、Tez、Storm
Hive:核心工作就是把sql语句翻译成MR程序。
Spark:微批处理。是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
Flink:可实时,可批处理。是基于事件驱动的,是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink相较于Spark Streaming 延迟更小,实时性更好,可以提供毫米级别的延迟水平。
Tez:是基于Hadoop Yarn之上的DAG(有向无环图,Directed Acyclic Graph)计算框架。它把Map/Reduce过程拆分成若干个子过程,同时可以把多个Map/Reduce任务组合成一个较大的DAG任务,减少了Map/Reduce之间的文件存储。同时合理组合其子过程,也可以减少任务的运行时间。
Storm:是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。(技术比较老了)

数据查询:

Presto、Druid、Impala、Kylin
presto 和 Impala 基于内存,快速查询
Druid:可用于实时,可用于批处理,但是只能处理单表
Kylin:适用于多维度查询。

任务调度:

Azkaban、Oozie
Oozie,其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。
Azkaban的工作流的创建特别方便,直接通过web界面创建工程,然后提交任务。(创建job的的文件必须是以.job的文件,并且上传的文件是以zip压缩包的形式进行上传)。

数据可视化:

Echarts、Superset、QuickBI、DataV

元数据监控:

Atlas

集群监控:

Zbbix

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值