挑战
海量数据的存储,数据源以及数据类型的多类别,高实时性要求。
复杂的网络架构带来的运维问题。
数据隐私。
Hadoop的功能:
搭建大型数据仓库(存储PB级的数据)
处理
分析
统计
HDFS(分布式文件系统,类比Linux EXT4)
文件拆分:
Namenode(Filename, numReplicas, block-ids, ...)
一个文件可以被拆分成多个部分,每个部分又分为多个数据块,每个数据块可以有多个副本。
-
HDFS架构
-
设计目标
-
架构图
NameNode: 负责客户端请求的响应,负责元数据(文件的名称、副本系数、Block存的DN)的管理
DataNode:负责存储用户的文件对应的数据块(Block)
要定期向NN发送心跳信息,汇报本身及所有的block信息,健康状况。
HDFS分布式文件存储设计思想
-
-
HDFS副本机制
-
HDFS集群部署
官方提出的典型的部署:一个NameNode机器+多个DataNode机器(不建议多个DataNode部署在同一个机器上)
-
安装
依赖软件:
1)Java环境,因为HDFS是用Java开发的
2)ssh,Hadoop集群需要通过sshd执行脚本管理各个节点的Deamon。
-
Block副本因子(副本系数)
Block副本的数量
-
副本存放策略
假如一个数据中心有两个机架(A、B),每个机架有多个服务器节点,现在客户端要创建一个有3个副本的文件,则首先会将在客户端所在的节点(假如在A机架上)上创建一个副本,然后在另一个机架(B)上的两台机器上分别创建一个副本。
-
-
HDFS shell
-
HDFS Java API
-
HDFS文件读写流程
-
HDFS优缺点
YARN(数据操作系统,类比Linux的PM)
整个集群资源的管理和调度
特点:扩展性、容错性、多框架资源统一调度(支持多框架多种类型的作业的同时执行,比如可以在YARN上执行Solr的搜索、Spark数据运算、Storm的数据分析)
MapReduce
特点:拓展性、容错性、海量资源离线处理
Hadoop生态系统架构图(2 40:05)
《Hadoop权威指南》
提问:
数据源、数据类型