大数据实践课——HDFS分布式文件系统
- 分布式存储
Master主节点:
存放文件系统的目录树状结构,
slave节点:
放真实的数据
block块:
版本1:64m
版本2:128m
replication:
副本机制,3个
namespace:
命名空间管理,管理着整个服务器集群的所有文件。
传统解决方案:
移动数据:将数据向计算移动
移动计算:将计算向数据移动
1、任务分解
2、结果汇总
hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架。
GFS MapReduce BigTable
HDFS(分布式文件系统)
角色:
1.NameNode:文件系统大管家,监管着文件系统的目录和结构,由他维护文件系统的数据元素(文件名、block location)
2.DataNode:存放真实数据(block数据)
3.client:客户端
MapReduce(计算框架)
HBase 数据库,基于列式存储的数据库
-
分布式计算
-
Hadoop(一种生态/平台)介绍
Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架
-可靠的:主要是副本机制…
-可扩展的
-分布式并行计算框架
分布式文件系统HDFS+计算框架MapReduce
Hadoop不是数据库,Hbase才是数据库(基于列式存储的数据库)底层语言:Java
面向大数据处理
大数据:目前的软硬件环境无法处理的数据,只能依靠特殊方式来处理
离线分析:并不是在生产系统上直接对数据进行处理,需要把生产环境的数据导入到另外的环境中(数据仓库),并不是实时分析
Hadoop使用行业:电子商务、京东、淘宝 -
Hadoop架构
·hive是基于Hadoop的一个工具,提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行处理。
·Hbase是一个开源的,基于列存储的分布式数据库
·HDFS是一个分布式文件系统。有着高容错性特点,并且设计用来部署在低廉的硬件上,适合那些有着超大数据集的应用程序。
·MapReduce是一种编程模式,用于大规模数据集(大于1TB)的并行运算。
HDFS(分布式文件系统)角色:
1.NameNode:文件系统大管家,监管着文件系统的目录和结构,由他维护文件系统的数据元素(文件名、block location)
2.DataNode:存放真实数据(block数据)
3.client:客户端
- Hadoop的架构1.x
Client:
HDFS:
NameNode:
DataNode:
MapReduce中两个核心进程:(JobTacker TaskTacker只存在于1.x版本,2.x版本中为yarn)
JobTacker:只有一个,主节点,实现作业调度和监视每个节点上的作业执行情况
TaskTacker:从节点,作业执行情况主动向JobTacker进行汇报
Java基础里的核心知识点:
1、面向对象
2、反射机制
3、IO socket TCP/UDP
4、Java设计模式
单例
工厂(实例、静态)
观察者
代理(静态、动态)
基于接口的代理:jdk
基于类的代理:cglib
Hadoop的核心设计
两大核心
1、MapReduce
Map:任务分解
Reduce:结果的汇总
2、HDFS
NameNode:文件管理
DataNode:文件存储
Client:文件获取
元数据:描述数据的数据
例如:表明,字段、数据类型
真实数据:实际数据
HDFS:
提供分布式存储机制,提供可线性增长的海量存储能力
自动数据冗余,无需使用Raid,无需另行备份
为进一步分析计算提供数据基础
架构模型:
文件元数据MetaData,文件数据:
元数据
数据本身
(主)NameNode节点保存文件元数据:单节点
(从)DataNode节点保存文件Block数据:多节点
DATaNode与NameNode保持心跳,提交Block列表
HdfsClient与NameNode交互元数据信息
HdfsClient与DataNode交互文件Block数据
命令:
jps -查看当前开启的进程
start-dfs.sh -启动Hadoop重点hdfs进程
stop-dfs.sh -关闭hdfs进程
//SecondaryNameNode并不是NameNode的副本
内存受限问题解决办法:
Fell(联邦机制)
NameNode单点故障问题解决办法:
HA模式(高可用模式)