Hadoop重点组件

  • HDFS:分布式文件系统
  • MAPREDUCE:分布式运算程序开发框架
  • HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具
  • HBASE:基于HADOOP的分布式海量数据库
  • ZOOKEEPER:分布式协调服务基础组件
  • Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
  • Oozie:工作流调度框架
  • Sqoop:数据导入导出工具
  • Flume:日志数据采集框架

一、HDFS

概述

HDFS的全称是Hadoop Distributed File System易于扩展的 分布式文件存储系统 ,运行在大量普通廉价机器上,提供容错机制,为大量用户提供性能不错的文件存取服务 ,
它的设计目标是

  1. 自动快速检测应对硬件错误
  2. 流式访问数据
  3. 移动计算比移动数据本身更划算
  4. 简单一致性模型
  5. 异构平台可移植

它的特点:包括优点和缺点两个方面
优点:
6. 高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖;
7. 高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
8. 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
9. 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

缺点:
10. 不适合低延迟数据访问。
11. 无法高效存储大量小文件。
12. 不支持多用户写入及任意修改文件。

hdfs的核心设计理念是

分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;

  • 为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务
  • hdfs更具体描述
    首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件
    其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;

它的重要特性包括

  1. HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M。
  2. HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。
  3. 目录结构及文件分块信息(元数据)的管理由namenode节点承担——namenode是HDFS集群主节点,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)。
  4. 文件的各个block的存储管理由datanode节点承担— datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置dfs.replication)。
  5. HDFS是设计成适应一次写入,多次读出的场景,且不支持文件的修改 。

hdfs shell操作

https://blog.csdn.net/murphyZ/article/details/88649200

HDFS工作机制概述

https://blog.csdn.net/murphyZ/article/details/88650022

猜你喜欢

转载自blog.csdn.net/murphyZ/article/details/88569762