大数据的特点:
1.数据来源广
数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件)
数据量大(最少是TB级别的,甚至可能是PB级别的)、数据增长速度快等
采集汇总:Sqoop、Cammel、DataX工具
存储:GFS、HDFS、TFS等分布式文件存储
批处理运算:MapReduce 。分布式快速运算框架
解析引擎:Hive,Pig 将SQL转换为MapReduce的解析引擎。
流处理运算:Strom/JStrom等低延时的流式计算框架。
集群:Hadoop(HDFS+MapReduce+Yarn) 和Storm
一站式集群:Spark 一站式计算框架,即可以进行批处理,也可以进行流处理(微批处理)
Lambda框架,Kappa架构的出现,提供了业务处理的通用框架。
辅助工具(加快工作效率,加快运算速度):
1:Ozzie,azkaban:定时任务调度的工具
2.Hue,Zepplin:图形化任务执行管理,结果查看工具
3.Scala语言:编写Spark程序的最佳语言,可以选择用Python
4.Python语言,编写脚本时会用到
5.Alluxio,kylin等,通过对存储的数据进行预处理,加快运算速度的工具。
针对以上特点,要考虑的问题
1.数据来源广,如何采集汇总? Sqoop,Cammel,DataX等工具
2.数据采集后,如何存储?对应出现了GFS、HDFS、TFS等分布式文件存储系统
3.由于数据增长速度快,数据存储要求可以水平扩展,
4.数据存储后,该如何通过运算快速转换成一致的格式,快速运算出自己要的结果。
对应的MapReduce的分布式运算框架解决了这个问题。
普通的MapReduce只能一批一批的处理,时间延时太长了,为了实现,每输入一条数据就得到结果,出现了Strom/JStrom这样的低延时流式计算框架。
如果同时要做批处理和流处理,就要搭两个集群,Hadoop集群和Storm集群