大数据
在学习Hadoop之前,我们首先需要了解一下大数据的概念
大数据:大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。
大数据的特征
4V特征:
Volume(大数据量):90%的数据是在过去的两年间产生的
Velocity(速度快):数据增长速度快,时效性高
Variety(多样化):数据种类和来源多样化
Value(价值密度低):需要挖掘才能获取数据价值
固有特征:
时效性
不可变性
分布式计算
分布式计算就是将较大的数据分成一个个小的部分进行处理
传统分布式计算 | 新的分布式计算-Hadoop | |
---|---|---|
计算方式 | 将数据复制到计算节点 | 在不同的数据节点并行计算 |
可处理数据量 | 小数据量 | 大数据量 |
CPU性能限制 | 受CPU限制较大 | 受单台设备限制小 |
提升计算能力 | 提升单台机器计算能力 | 扩展低成本服务器集群 |
Hadoop
介绍
Hadoop是一个开源分布式系统架构,它包含了三部分
分布式文件系统HDFS(Hadoop Distributed File System)----解决大数据存储
分布式计算框架MapReduce----解决大数据计算
分布式资源管理系统YARN
Hadoop是目前处理海量数据的首选架构
Hadoop能非常快地完成大数据计算任务
目前已经发展成了一个Hadoop生态圈
Hadoop发展及版本
Hadoop起源于搜索引擎Apache Nutch
创始人为Doug Cutting
Hadoop发行版本
社区版:Apache Hadoop
Cloudera发行版:CDH
Hortonworks发行版:HDP
Hadoop的优势:
高扩展性(理论上可以无限扩展),可伸缩
高可靠性(多副本机制,容错高)
低成本
无共享架构
灵活,可存储任意类型数据
开源,社区活跃
Hadoop与关系型数据库对比
RDBMS | Hadoop | |
---|---|---|
格式 | 写数据时要求 | 读数据时要求 |
速度 | 读数据速度快 | 写数据速度快 |
数据监管 | 标准结构化 | 任意数据结构 |
数据处理 | 有限的处理能力 | 强大的处理能力 |
数据类型 | 结构化数据 | 结构化、半结构化、非结构化 |
应用场景 | 交互式OLAP分析、ACID事务处理、企业业务系统 | 处理非结构化数据、海量数据存储计算 |
Zookeeper
是一个分布式应用程序协调服务
解决分布式集群中应用系统的一致性问题
提供的功能
配置管理、命名服务、分布式同步、队列管理、集群管理等
特性
全局数据一致
可靠性、顺序性、实时性
数据更新原子性
Zookeeper集群
角色:Leader、Follower、Observer
HDFS特点
优点
支持处理超大文件
可运行在廉价机器上
高容错性
流式文件写入
缺点
不适合低延时数据访问场景
不适合小文件存取场景
不适合并发写入以及文件随机修改场景
HDFS中的角色
Client:客户端
NameNode(NN):元数据节点
管理文件系统的Namespace/元数据
一个HDFS集群只有一个Active的NN
DataNode(DN):数据节点
数据存储节点,保存和检索Block
一个集群可以有多个数据节点
Secondary NameNode(SNN):从元数据节点
合并NameNode的edit logs到fsimage文件中
辅助NN将内存中元数据信息持久化
HDFS副本机制
Block:数据块
HDFS最基本的存储单元
默认块大小:128M
副本机制
作用:避免数据丢失
副本数默认为3
存放机制:
一个在本地机架节点
一个在同一个机架不同节点
一个在不同机架的节点
HDFS高可用(High Availability)
在1.x版本中
存在NameNode单点问题,一旦NameNode节点出问题,整个系统都可能不能使用
在2.x版本中
解决:HDFS Federation方式,共享DN资源
Active NameNode:
对外提供服务
Standby NameNode:
Active发生故障时,Standy NameNode可切换成Active
HDFS读写文件
读文件过程:
写文件过程:
HDFS文件格式
HDFS支持以不同格式存储所有类型的文件
文本、二进制
未压缩、压缩
为了最佳的Map-Reduce处理,文件需可分割
SequenceFile
Avro File
RCFile&ORCFile
Parquet File