一,大数据(Big Data)
概念:
指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
数据单位:
最小的基本单位是bit,按顺序从小到大:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。
它们按照进率1024(2的十次方)来计算:
1 Byte =8 bit
1 KB = 1,024 Bytes = 8192 bit
1 MB = 1,024 KB = 1,048,576 Bytes
1 GB = 1,024 MB = 1,048,576 KB
1 TB = 1,024 GB = 1,048,576 MB
1 PB = 1,024 TB = 1,048,576 GB
1 EB = 1,024 PB = 1,048,576 TB
1 ZB = 1,024 EB = 1,048,576 PB
1 YB = 1,024 ZB = 1,048,576 EB
1 BB = 1,024 YB = 1,048,576 ZB
1 NB = 1,024 BB = 1,048,576 YB
1 DB = 1,024 NB = 1,048,576 BB
特征:
容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息
种类(Variety):数据类型的多样性
速度(Velocity):指获得数据的速度
可变性(Variability):妨碍了处理和有效地管理数据的过程。
真实性(Veracity):数据的质量
复杂性(Complexity):数据量巨大,来源多渠道
价值(value):合理运用大数据,以低成本创造高价值
数据分类:
结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
半结构化数据:和普通纯文本相比,半结构化数据具有一定的结构性,例如某些json、xml文件等
非结构化数据:数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。
数据的特性
基于时间戳的产生时间(Time-based)
产生以后不可修改
大数据的计算
基于数据量的计算
基于计算量的计算
二,Hadoop
起源:
Doug Cutting是Hadoop之父 ,起初他开创了一个开源软件Lucene(用Java语言编写,提供了全文检索引擎的架构,与Google类似),Lucene后来面临与Google同样的错误。于是,Doug Cutting学习并模仿Google解决这些问题的办法,产生了一个Lucene的微缩版Nutch。
后来,Doug Cutting等人根据2003-2004年Google公开的部分GFS和Mapreduce思想的细节,利用业余时间实现了GFS和Mapreduce的机制,从而提高了Nutch的性能。由此Hadoop产生了。
Hadoop于2005年秋天作为Lucene的子项目Nutch的一部分正式引入Apache基金会。2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入Hadoop的项目中。
Hadoop是什么?
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。它是一个开源框架,可编写和运行分布式应用处理大规模数据。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统(存储),MapReduce 是分布式数据处理模型和执行环境(计算)。
Hadoop的优点:
- 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
- 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
- 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
- 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
- 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop适合
- 大规模数据
- 流式数据(写一次,读多次)
- 商用硬件(一般硬件)
Hadoop不适合
- 低延时的数据访问
- 大量的小文件
- 频繁修改文件(基本就是写1次)
Hadoop架构
相关库
HDFS 分布式文件系统
MapReduce 分布式计算
YARN 资源管理 -任务调度
- Hadoop 1.0 和 2.0 区别
Hadoop 1.0 所有的任务都必须是MapReduce,MapReduce块包括分布式计算和资源管理
Hadoop 2.0 任务除了有MapReduce还可有其他类型,解耦-->把分布式计算和资源管理YARN分开
- 集群的组成
NameNode 名字节点,大boss ,整个集群的控制器,通过他访问各个DatNode节点数据