(1)数据量大(Volume):大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
(2)类型繁多(Variety):有大量的结构化和非结构化数据
(3)价值密度低(Value):信息感知无处不在,存在信息海量,但价值密度较低。
(4)时效高(Velocity):从数据生成到消耗的时间窗口非常少,可用于决策的时间非常少,这是大数据区分于传统数据挖掘最显著的特征。
(全样而非抽样,效率而非精确,相关而非因果)
分布式存储、分布式计算
(1)云计算为大数据提供了技术基础
(2)物联网是大数据的重要来源,大数据技术为物联网分析提供支撑
(3)云计算为物联网提供了海量数据的存储能力,物联网为云计算技术提供了广阔的应用空间
(1)稳定性:多台机器构成集群,部分机器发生故障,剩余机器可以继续对外提供服务
(2)高效性:成百上千台机器一起计算
(3)高扩展性:可以不断往集群中增加机器
(4)低成本性:可以采用普通PC来构成集群,对硬件要求不高
(5)支持多种编程语言:支持C/C++,python ,java
(1)输入读取(Input Read):Map阶段的输入读取:在这个阶段,系统从磁盘读取输入数据。数据通常存储在分布式文件系统中,比如HDFS。这里的I/O操作是读取输入文件。
(2)映射(Mapping):Map阶段的写入:Map函数处理输入数据,并产生中间键值对。这些中间结果通常会先写入到本地磁盘,而不是直接发送到Reduce节点,这涉及到磁盘写操作。
(3)排序和/或洗牌(Shuffle and Sort):读取Map输出:Reduce节点从各个Map节点读取中间结果,这通常涉及网络I/O和磁盘I/O,因为数据需要从Map节点的磁盘传输到Reduce节点的磁盘。排序:在Reduce节点上,数据会被排序以便于后续处理,这个过程可能涉及到磁盘读写,尤其是当数据量大到内存无法一次性处理时。
(4)归约(Reducing):Reduce阶段的输出写入:Reduce函数处理排序后的中间数据,并产生最终输出。最终输出通常会被写回到分布式文件系统中,这涉及到磁盘写操作。
(5)输出写入(Output Write):最终结果的写入:作业的最终结果被写入到磁盘中,通常是分布式文件系统,例如HDFS。
名称节点是整个HDFS集群的管家,负责记录信息和数据目录
数据节点负责存储实际数据
Fsimage:保存系统树
Eidtlog:记录对数据进行的诸如创建、删除、重命名等操作
文件和目录信息:包括文件名、目录结构、权限、修改时间等。
块信息:每个块的位置、大小等。
数据节点信息:系统中的健康状况、存储容量等。
副本策略:文件的副本数及其分布情况。
命名空间配额和存储配额:对文件系统中目录可以包含的文件和子目录数量的限制,以及它们可以使用的存储空间限制。
如果每个人需要1M的空间来存储数据,那么1000人总共需要的空间是1000MB。在HDFS中,这些数据默认复制因子是3,另外还需要30%的冗余存储。
所需总存储空间=数据总量×复制因子×(1+冗余比例)=1000MB×3×(1+30%)=3900MB
两大核心技术是HDFS和Mapreduce;HDFS用于对大规模数据集的分布式存储;MapRedcue用于对大规模数据的分布式计算和分析
(1)内存(RAM):
要求:16-72GB——足够大的RAM来存储整个文件系统的命名空间和文件块信息。
原因: 名称节点需要在内存中维护文件系统的元数据,包括文件名、权限、文件与块的映射关系等。对于大型文件系统,这可能需要大量内存。
(2)处理器(CPU):
要求: 2-8核CPU
原因: 名称节点需要处理来自文件系统客户端的大量并发请求,包括文件的打开、关闭、重命名等操作。
(3)存储(硬盘):
要求: 快速的本地存储,通常是使用RAID配置的企业级硬盘。
原因: 虽然元数据存储在内存中,但也会定期写入磁盘以保证系统的持久性和恢复能力。快速可靠的存储可以确保元数据的安全和快速恢复。
(4)网络:
要求:万兆光纤网络。
原因: 名称节点需要与集群中的其他节点(如数据节点)频繁通信,处理大量的数据传输和管理消息。