大数据概况及Hadoop生态系统
什么是大数据
大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。
ERP:原生数据
CRM(mysql数据库):关系型数据,支持GB级别
WEB:支持GB级别
BIG DATA:支持PB级别
我们身边的大数据
大数据每时每刻不在诞生,交互,传回,我们的日常手里的微信运动,身体健康,快递,外卖,购物,搜索,大数据的应用目前在这领域是最广为人知的。重点是如何应用大数据更好的了解客户以及他们的爱好和行为。企业非常喜欢搜集社交方面的数据、浏览器的日志、分析出文本和传感器的数据,为了更加全面的了解客户。
举个我们身边的例子:
2019年接近尾声的时候,全球爆发了新冠病毒疫情。
从2020年初,一直到现在,我们每天都能得到全球各地的疫情情况。这就是疫情实时大数据。
大数据就在我们身边。在这个信息繁杂、而数据处理技术又蓬勃发展的时代,小至个人自我的数据分析,一个商家对于消费者的消费行为的监测,大至政府对于民意的考察和监控,相信只要你拥有全新的理念,就能从一大堆数据中得出各种各样的奇思妙想。
大数据特征
4V特征
- Volume(大数据量):90%的数据是过去两年产生的。
- Velocity(速度快):数据增长速度快,时效性高。
- Variety(多样化):数据种类和来源多样化。数据化结构、半结构化数据、非结构化数据。
- Value(价值密度低):需挖掘获取数据价值。
固有特征
- 时效性
- 不可变性
分布式计算
- 分布式计算将较大的数据分成小的部分进行处理。
传统分布式计算 | 新的分布式计算-Hadoop | |
---|---|---|
计算方式 | 将数据复制到计算节点 | 在不同数据节点并行计算 |
可处理数据量 | 小数据量 | 大数据量 |
CPU性能限制 | 受CPU限制较大 | 受单台设备限制小 |
提升计算能力 | 提升单台机器计算能力 | 扩展低成本服务器集群 |
Hadoop
Hadoop是什么
-
Hadoop是一个开源分布式系统架构
分布式文件系统HDFS——解决大数据存储 分布式计算框架MapReduce——解决大数据计算 分布式资源管理系统YARN
-
处理海量数据的架构首选
-
非常快的王城大数据计算任务
-
已发展成为一个Hadoop生态圈
这个Hadoop的图像是发明者Doug Cutting女儿的小象玩具,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
-
数据迁移
Sqoop、Flume(实时)、Sqark(代替MapReduce)、NoSQL(Hbase)、机器学习、任务调度
Zookeeper
-
是一个分布式应用程序协调服务
解决分布式集群中应用系统的一致性问题
-
提供的功能
配置管理、命名服务、分布式同步、队列管理、集群管理等
-
特性
全局数据一致 可靠性、顺序性、实时性 数据更新原子性
-
Zookeeper集群(最少三个)
角色:Leader(领导者)、Follower(跟随者)、Observer(上帝视角)
Hadoop架构
-
HDFS(Hadoop Distributed File System)
分布式文件系统,解决分布式存储
-
MapReduce
分布式计算框架
-
YARN
分布式资源管理系统 在Hadoop 2.x中引入
-
Common
支持所有其他模块的公共工具程序
HDFS特点
-
HDFS优点
支持处理超大文件 可运行在廉价机器上 高容错性 流式文件写入
-
HDFS缺点
不适合低延时数据访问场景 不适合小文件存取场景 不适合并发写入,文件随机修改场景
HDFS CLI(命令行)
-
基本格式
hdfs dfs -cmd<args> hadoop fs -cmd<args>(已过时)
-
命令和Linux相似
#创建文件夹
hdfs dfs -mkdir
#查看文件
hdfs dfs -ls
#从本地上传到hdfs
hdfs dfs -put
#从hdfs下载到本地
hdfs dfs -get
#删除文件/文件夹
hdfs dfs -rm
#查看常用命令介绍
hdfs dfs -help
#递归创建文件夹
hdfs dfs -r mkdir
#查看文本内容
hdfs dfs -cat
#查看文本内容
hdfs dfs -test
#统计目录下文件大小
hdfs dfs -du
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 /hdfs | 设置文件目录配额 |
HDFS
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