一、谈谈对大数据的框架理解
1.1大数据的定义
大数据是收集、整理、处理大容量数据集,并从中获得信息的非传统战略和技术的总称。其区别于传统数据库最主要的4个特点就是“4V”,包含规模性(Volume)、多样性(Variety)、高速性(Velocity)、价值性(Value)。
首先,大数据容量大,数据的规模往往是PB、EB、ZB为单位的;其次,其数据来源多,数据类型多,数据之间的关联多,这就导致传统的关系型数据库无法满足其需求;虽然有了大数据量和多样性这样的特点,但是大数据对数据处理的响应在各个应用领域仍有较高的要求,包括从数据中挖掘有用的信息,使用机器学习方法、人工智能方法或者数据挖掘方法、深度学习等运用于农业、金融、医疗等各个领域,具有巨大的价值。
1.2大数据框架和技术
1.2.1 Hadoop生态圈
大数据框架中目前最广泛,社区资源充足的就是Hadoop框架,这是进行大数据处理必不可少的。Hadoop是一个能处理大批量数据的分布式处理框架,其底层是HDFS(分布式文件系统)可以解决海量存储的问题,为构建大规模集群和高可用的文件处理打下基础。MapReduce作为Hadoop的原生批处理引擎,用于对大规模数据集进行运算。HBase则是基于HDFS的分布式键值对数据库。
1.2.2 Spark介绍
Spark也是一种数据处理工具,Apache Spark在行业中有首要的重要性,最主要的原因在于,相比于MapReduce分布式数据处理,Spark具有高速数据处理引擎,除此之外,它还具有用于机器学习和图形分析算法的完善库。具有更加强大的数据处理能力。
Spark & MapReduce对比:
MapReduce如果实现复杂计算逻辑,一个MapReduce搞不定,就需要将多个MapReduce按照先后顺序连成一串,一个MapReduce计算完成后会将计算结果写入到HDFS中,下一个MapReduce将上一个MapReduce的输出作为输入,这样就要频繁读写HDFS,网络IO和磁盘IO会成为性能瓶颈。从而导致效率低下。
Spark既可以做离线计算,有可以做实时计算,提供了高度封装的API,算子丰富,并且使用了更先进的DAG有向无环图调度思想,可以对执行计划优化后在执行,并且可以数据可以cache到内存中进行复用。
MapReduce稳定,但是编程API不灵活,需要磁盘IO,导致速度慢。
Spark编程API灵活,直接在内存中进行下一步运算,但是内存有限,对于大规模任务仍不能较好完成,且没有MapReduce稳定。
1.3大数据的生命周期
数据都存在一个生命周期,大数据生命周期是指数据从采集、处理、分析、存储等一系列完整的流程。对于大数据应用来说,最终,数据被赋能才有了其真正的价值。
数据生命周期可分为四个阶段:
1.数据采集:数据可能以不同形式存在,可能需要不同的机制来获取;它们尽量获取最原始的数据
2. 数据处理:获取到的数据需要进一步进行处理,从而得到有用的信息,如商品推荐、业务洞察力等,此时可能会用到机器学习技术;
3. 数据分析:数据会进一步被分析,以便按需访问数据分析需求受信息访问模式驱动
4. 数据存储:数据分析结果需要存储在合适的数据存储系统中;
1.4 NameNode & DataNode理解
NameNode管理者整个HDFS文件系统的元数据。元数据是描述真正数据的数据,也就是说,其描述了HDFS文件系统中,真正存放数据的详细信息,存放在NameNode中。
DataNode负责存储和检索数据块,他受客户端和Namenode调度,并且他会定期向NameNode发送本节点上所存储的块列表,这就是为什么NameNode并不是永久保存各个节点块的信息原因了。