文章目录
- hadoop基础知识
- 初始hadoop
- 关于MapReduce
- Hadoop分布式文件系统
- hdfs的设计
- HDFS的数据块
- namenode和datanode
- 联邦HDFS
- 关于YARN
- Hadoop的IO操作
- 关于MapReduce
- Hadoop操作
- Hadoop相关开源项目
hadoop基础知识
初始hadoop
Hadoop是用于数据存储和分析的分布式系统
MapReduce与关系型数据库的比较
MapReduce:一次写入,多次读取
关系型数据库:多次读/写
数据分为
- 结构化数据
- 具有既定格式的实体化数据,XML文件等
- 半结构化数据
- 电子表格,但是表格的数据格式不一定一样
- 非结构化数据
- 文本,图像
Hadoop适合处理半结构化数据和非结构化数据,因为Hadoop的核心假设之一就是可以进行高速的流读写操作
关于MapReduce
MapReduce是一种可用于数据处理的编程模型,MapReduce程序本质上是并行的,因此可以将大规模的数据分析任务分发给任何一个数据中心
我们可以使用Hadoop来分析数据,为了充分利用Hadoop提供的并行数据处理优势,我们需要将查询表示为MapReduce作业,完成某种本地端的小规模测试之后,就可以把MapReduce作业部署到集群上运行
MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段
每阶段都以键-值对作为输出和输出
程序猿需要写两个函数:map函数和reduce函数
map函数的输出经由MapReduce框架处理后,最后发送到reduce函数
Java MapReduce 编程
Hadoop分布式文件系统
hdfs的设计
- 流式数据访问
- 大量的小文件
- 由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存总量
- HDFS中的文件写入只支持单个写入,而且写操作总是以“只添加”方式在文件末尾写数据
HDFS的数据块
好处
- 文件的所有块不需要存储在同一磁盘上,文件可以比磁盘大
- 以块为存储单位,大大简化了存储子系统的设计
namenode和datanode
namenode为管理节点,datanode为工作节点,namenode管理文件系统的命名空间
客户端client代表用户通过与namenode和datanode交互来访问整个文件系统
没有namenode,文件系统将无法使用,我们有两种机制来处理这种问题
- 备份那些组成文件系统元数据持久状态的文件
- 运行一个辅助namenode
联邦HDFS
联邦HDFS允许系统通过添加namenode实现拓展,使得拥有大量文件的超大集群可以存在
在联邦环境下,每个namenode维护一个命名空间卷(命名空间的元数据+数据块池),数据块池包含该命名空间下文件的所有数据块
命名空间卷之间相互独立,所以集群中的datanode需要在所有namenode上登记
关于YARN
Hadoop的IO操作
关于MapReduce
Hadoop操作
Hadoop相关开源项目
摆烂了,有亿点不想更新了