大数据概况及Hadoop生态系统
文章目录
什么是大数据?
- 大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。
大数据特征
4V特征
- Volume(大数据量):90% 的数据是过去两年产生
- Velocity(速度快):数据增长速度快,时效性高
- Variety(多样化):数据种类和来源多样化
- 结构化数据、半结构化数据、非结构化数据
- Value(价值密度低):需挖掘获取数据价值
固有特征
时效性
不可变性
分布式计算
分布式计算将较大的数据分成小的部分进行处理。
**** | 传统分布式计算 | 新的分布式计算 - Hadoop |
---|---|---|
计算方式 | 将数据复制到计算节点 | 在不同数据节点并行计算 |
可处理数据量 | 小数据量 | 大数据量 |
CPU性能限制 | 受CPU限制较大 | 受单台设备限制小 |
提升计算能力 | 提升单台机器计算能力 | 扩展低成本服务器集群 |
Hadoop是什么?
-
Hadoop是一个开源分布式系统架构
- 分布式文件系统HDFS——解决大数据存储
- 分布式计算框架MapReduce——解决大数据计算
- 分布式资源管理系统YARN
-
处理海量数据的架构首选
-
非常快得完成大数据计算任务
-
已发展成为一个Hadoop生态圈
Hadoop发展及版本
-
Hadoop起源于搜索引擎Apache Nutch
- 创始人:Doug Cutting
- 2004年 - 最初版本实施
- 2008年 - 成为Apache顶级项目
-
Hadoop发行版本
- 社区版:Apache Hadoop
- Cloudera发行版:CDH
- Hortonworks发行版:HDP
为什么使用Hadoop?
- 高扩展性,可伸缩
- 高可靠性
- 多副本机制,容错高
- 低成本
- 无共享架构
- 灵活,可存储任意类型数据
- 开源,社区活跃
Hadoop vs. RDBMS
Hadoop与关系型数据库对比
**** | RDBMS | Hadoop |
---|---|---|
格式 | 写数据时要求 | 读数据时要求 |
速度 | 读数据速度快 | 写数据速度快 |
数据监管 | 标准结构化 | 任意结构数据 |
数据处理 | 有限的处理能力 | 强大的处理能力 |
数据类型 | 结构化数据 | 结构化、半结构化、非结构化 |
应用场景 | 交互式OLAP分析ACID事务处理企业业务系统 | 处理非结构化数据海量数据存储计算 |
Hadoop生态圈
-
Hadoop核心
HDFS、MapReduce、YARN、Common 公共包、core -
数据查询分析
Hive、Pig、Impala、Presto -
协调管理
HCatalog、Zookeeper、Ambari
-
数据迁移
Flume(支持实时)、Sqoop
Spark、NoSQK、机器学习、任务调度等
Zookeeper
- 是一个分布式应用程序协调服务
- 解决分布式集群中应用系统的一致性问题
- 提供的功能
- 配置管理、命名服务、分布式同步、队列管理、集群管理等
- 特性
- 全局数据一致
- 可靠性、顺序性、实时性
- 数据更新原子性
- Zookeeper集群
- 角色:Leader、Follower、Observer
Hadoop架构
- HDFS(Hadoop Distributed File System)
- 分布式文件系统,解决分布式存储
- MapReduce
- 分布式计算框架
- YARN
- 分布式资源管理系统
- 在Hadoop 2.x中引入
- Common
- 支持所有其他模块的公共工具程序
HDFS
HDFS特点
- HDFS优点
- 支持处理超大文件
- 可运行在廉价机器上
- 高容错性
- 流式文件写入
- HDFS缺点
- 不适合低延时数据访问场景
- 不适合小文件存取场景
- 不适合并发写入,文件随机修改场景
HDFS CLI (命令行)
- 基本格式
hdfs dfs -cmd
hadoop fs -cmd(已过时) - 命令和Linux相似
-ls
-mkdir
-put
-rm
-help
hdfs dfsadmin
dfsadmin命令用于管理HDFS集群
命令 | 描述 |
---|---|
hdfs dfsadmin -report | 返回集群的状态信息 |
hdfs dfsadmin -safemode enter/leave | 进入和离开安全模式 |
hdfs dfsadmin -saveNamespace | 保存集群的名字空间 |
hdfs dfsadmin -rollEdits | 回滚编辑日志 |
hdfs dfsadmin -refreshNodes | 刷新节点 |
hdfs dfsadmin -getDatanodeInfo node1:8010 | 获取数据节点信息 |
hdfs dfsadmin -setQuota 10 /h****dfs | 设置文件目录配额 |
HDFS角色
- Client:客户端
- NameNode (NN):元数据节点
- 管理文件系统的Namespace/元数据
- 一个HDFS集群只有一个Active的NN
- DataNode (DN):数据节点
- 数据存储节点,保存和检索Block
- 一个集群可以有多个数据节点
- Secondary NameNode (SNN):从元数据节点
- 合并NameNode的edit logs到fsimage文件中
- 辅助NN将内存中元数据信息持久化
HDFS架构
HDFS副本机制
- Block:数据块
- HDFS最基本的存储单元
- 默认块大小:128M(2.x)
- 副本机制
- 作用:避免数据丢失
- 副本数默认为3
- 存放机制:
- 一个在本地机架节点
- 一个在同一个机架不同节点
- 一个在不同机架的节点
HDFS高可用(High Availability)
- 在1.x版本中
- 存在Namenode单点问题
- 在2.x版本中
- 解决:HDFS Federation方式,共享DN资源
- Active Namenode
- 对外提供服务
- Standby Namenode
- Active故障时可切换为Active
HDFS读文件
HDFS写文件
HDFS文件格式
- HDFS支持以不同格式存储所有类型的文件
- 文本、二进制
- 未压缩、压缩
- 为了最佳的Map-Reduce处理,文件需可分割
- SequenceFile
- Avro File
- RCFile&ORCFile
- Parquet File