大数据基础知识理解

参考资料

学习内容

大数据中间件及其组件一览

Hadoop:NameNode、DataNode、Zkfc、HttpFS、JournalNode、ResourceManager、NodeManager、TimeLineServer、JobHistoryServer

Flink:FlinkResource、FlinkServer

Kafka:Broker、MirrorMaker、KafkaUI

ZooKeeper:quorumpeer

Hive:MetricController、MetaStore、WebHCat、HiveServer

HBase:HMaster、ThriftServer、RegionServer、RESTServer、MetricController

Spark:JDBCServer、JobHistory、SparkResource、IndexServer

Guardian:TokenServer

OMSServer:OMSServer

Ranger:rangerAdmin、UserSync、PolicySync、TagSync、RangerKMS

JobGateway:JobServer、JobBalance

HDFS

Hadoop 分布式文件系统,在大规模分布式服务器集群上,对数据分片后进行并行读写冗余存储

设计目标:管理数以千计的服务器、数以万计的磁盘,将这么大规模的服务器计算资源当作一个单一的存储系统进行管理,对应用程序提供数以 PB 计的存储容量,让应用程序像使用普通文件系统一样存储大规模的文件数据。

优势

  • 高容错:多副本,出错自动恢复
  • 高可用:NameNode HA 主备节点(Active、Standby)
  • 高扩展:可管理 10K 节点
  • 批处理:流式访问,直接告诉计算框架数据的存储位置

劣势

  • 不适合低延迟数据:吞吐率高,响应速度慢
  • 不适合大量小文件存储:文件信息占用空间大于文件本身,磁盘寻道时间超过读取时间
  • 不支持并发写入:可以并行读写
  • 不支持文件随机修改:只能追加写入

Client

  • 将文件切分为 Block 数据块
  • 与 NameNode 交互,获取文件元数据
  • 与 DataNode 交互,读取或写入数据

NameNode

负责管理文件系统的命名空间以及客户端对文件的访问

  • 管理命名空间
  • 管理元数据:文件的位置、所有者、权限、数据块等
  • 管理 Block 副本策略:默认 3 个副本
  • 处理客户端读写请求,为 DataNode 分配任务

DataNode

负责文件数据的存储和读写操作,HDFS 将文件数据分割成若干数据块(Block),每个 DataNode 存储一部分数据块,这样文件就分布存储在整个 HDFS 服务器集群中

  • 存储 Block 和数据校验和
  • 执行客户端发送的读写操作
  • 集群启动时,DataNode 向 NameNode 提供 Block 列表信息
  • 通过心跳机制定期(默认 3 秒)向 NameNode 汇报运行状态和 Block 列表信息