Hadoop个人心得笔记(一)
- Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是T、P(1024个T)、E(100万个T)或Z(10亿个T)
- Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求
- Value:数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值是大数据时代最需要解决的问题
- Velocity:数据增长速度快,处理速度也快,时效性要求比较高
- Veracity:数据的准确性和可信赖度,即数据的质量
- Valence:大数据之间的连通性
- 随着大数据的发展,又增加了Vitality(动态性)、Visualization(可视化)、Validity(合法性)等
- 是Hadoop中用于进行分布式存储的组件
- 根据Google的论文设计实现的
一、概述
- 全称为Hadoop Distributed File System ,Hadoop分布式文件存储系统
- HDFS是根据谷歌的论文:《The Google File System》进行设计的
- 本身是一个分布式的,可扩展,可靠的文件系统
- HDFS中包含三个主要的进程:NameNode,DataNode,SecondaryNameNode。这三个进程一般是分布式不同的主机上,所以一般习惯上是用进程的名字称呼节点
NameNode 负责管理 DataNode 负责存储
二、特点
- 优点:
- 支持超大文件。超大文件在这里指的是几百M,几百GB,甚至几TB大小的文件。一般来说Hadoop的文件系统会存储TB级别或者PB级别的数据。所以在企业的应用中,数据节点有可能有上千个
- 检测和快速应对硬件故障。在集群的环境中,硬件故障是常见的问题。因为有上千台服务器连接在一起,这样会导致高故障率。因此故障检测和自动恢复(心跳机制)是HDFS文件系统的一个设计目标
- 流式数据访问。HDFS的数据处理规模比较大,应用一次需要访问大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据集。主要的是数据的吞吐量,而不是访问速度
- 简化的一致性模型。大部分hdfs操作文件时,需要一次写入,多次读取。在HDFS中,一个文件一旦经过创建、写入、关闭后,一般就不需要修改了。这样简单的一致性模型,有利于提高吞吐量
- 高容错性。数据自动保存多个副本,副本丢失后自动恢复
- 可构建在廉价机器上。构建在廉价机器上可以轻松的通过扩展机器数量来近乎线性的提高集群存储能力
- 缺点:
- 不能低延迟数据访问。如和用户进行交互的应用,需要数据在毫秒或秒的范围内得到响应。由于Hadoop针对海量数据的吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟来说,不适合用hadoop来做
- 不适合存储大量的小文件。HDFS支持超大的文件,是通过数据分布在数据节点,数据的元数据保存在名字节点上。名字节点的内存大小,决定了HDFS文件系统可保存的文件数量。虽然现在的系统内存都比较大,但大量的小文件还是会影响名字节点的性能
- 不支持多用户写入、修改文件。HDFS的文件只能有一次写入,不支持修改和追加写入(2.0版本支持追加),也不支持修改。只有这样数据的吞吐量才能大
- 不支持超强的事务。没有像关系型数据库那样,对事务有强有力的支持