什么是 hadoop ?

x33g5p2x  于2020-12-22 发布在 Hadoop  
字(2.6k)|赞(0)|评价(0)|浏览(696)

什么是 Hadoop?

基于 Java 的开源框架,可分布式处理大量数据。apache™ hadoop® 是一个开源软件项目,可用于高效处理大型数据集,而不是使用一台大型计算机处理和存储数据,Hadoop 允许您将商业硬件群集在一起,以并行分析大量数据集。

这是一种分布式存储**(hdfs)技术和分布式处理技术(mapreduce)*,一次可以读取多个磁盘数据。例如,假设有 100 个驱动器,每个驱动器存储了百分之一的数据。如果以"并行"运行,我们可以在**2分钟内读取数据。

换句话说,Hadoop 是一个框架,它通过名为 hdfs(hadoop distributed file system)** 的数据存储和名为"映射***(mapreduce)"的分析系统执行分布式编程。

为什么使用 Hadoop

简言之,现有的rdbms很贵,但**Hadoop很便宜。

rdbms 的成本太高,无法承受大数据的大量数据。例如,2008 年,《纽约时报》的 1100 万篇 130 年报纸文章使用 Hadoop 以 200 万韩元的成本转换为 pdf。这是一个工作,如果它被作为一个普通服务器,需要大约14年**因此,Hadoop 具有使用"分布式计算方法"的低成本、更快的数据处理和更快的数据处理功能,并具有备故障的特性。

Hadoop 是一种将数据存储在多台服务器上的方法,并在同一时间处理存储在每个服务器上的数据。**Hadoop 不替换现有的 rdbms(oracle、ms-sql、mysql 等)。**换句话说,它不适合处理数据,以确保过渡或完整性。Hadoop 是一个适合以可放置的方式存储和处理数据的系统。

在购物中注册会员或付款进度时,应保证过渡或完整性。它不被视为 Hadoop,而是适用于存储为可放置性的数据,例如成员感兴趣的物品、移动路径和停留时间。如果每次都将这些东西存储在昂贵的 rdbms 中,则浪费。因此,Hadoop 可以被看做是与 rdbms 合作,而不是与 rdbms 竞争。

Hadoop 是"分散"

Hadoop是两大元素的组合。处理(计算)和存储。换句话说,可以看做"分布式处理"和"存储分布式"。将多个低成本计算机捆绑在一起。

分布式存储

使用 Hadoop 文件系统 (hdfs) 将文件分为适当的块大小 (64mb),并存储在每个节点群集(每台计算机)中。此外,在数据失失的风险或人们大量接近(访问)时,创建每个块的副本(复制),以处理负载。通常副本至少为 3卡。为什么这样做是高性能服务器上的存储,它需要大量资金,并分散存储,以捆绑多个低成本存储,使它的行为类似于突袭。

分布式处理

使用名为 mapreduce 的框架进行计算,并且该框架非常重要。换句话说,它为分布式处理创建框架。为了进行分布式处理,根据框架进行编码,并在 Hadoop 系统中运行时自动进行分布式处理。称为映射的框架分为两种格式:映射 + reduce。概念很简单。**在 map 函数中处理数据,并在 reduce 函数中计算所需的结果。

Hadoop 的特征

**- 分布式:**在数十万台计算机上分散存储和处理材料

**- 可 scalable: **随着容量增加而添加计算机

**- 故障:**即使一台或多台计算机发生故障,系统也能正常运行

**- 开放资源: **公共软件

Hadoop 分布式文件系统 (hadoop distributed file system)

hdfs 是 hadoop distributed file system 的缩写。文件系统,将数十 TB 或 PB 以上的大型文件存储在分布式服务器上,并快速处理存储的数据。此外,它比传统的大型文件系统(nas、das、san 等)具有优势,因为使用低端服务器配置存储。hdfs 是块结构的文件系统。文件被分成一定大小的块,存储在分布式服务器上。块大小从 64 mb 到 Hadoop2.0 到 128 米。

名称节点和数据节点

hdfs 由名称节点(主节点)和数据节点(从节点)实现。

名称节点(名称节点)执行以下核心功能:

元数据管理

管理元数据以维护文件系统

监视数据节点

数据节点每三秒钟向名称节点发送一次检测信号(heartbeat)。名称节点使用它来检查数据节点的执行状态和容量。不发送检测信号的数据节点确定为故障服务器。

块管理

将故障数据节点的块复制到新数据节点。如果容量不足,则将块移动到空间更大的数据节点。

接收客户请求

客户端必须先连接到名称节点才能访问 hdfs。在 hdfs 中保存文件时,请通过验证现有文件或验证权限的过程批准保存。数据节点 (datanode) 将客户端存储在 hdfs 中的文件保留在本地磁盘上。此时,文件存储为两种,一个是实际存储的行数据,另一个是存储元数据的文件,如校验和或文件创建日期。

将文件保存到 hdfs

客户端首先通过名称节点和通信过程生成流(流)。通过生成的流将文件从客户端发送到每个数据节点。此时,要存储的文件按数据包进行传输。文件前发送完成后,当客户端关闭从名称节点获取的流时,所有剩余的数据包都将 flush。如果客户端调用名称节点的 complete 方法并正常保存,则返回 true。然后,文件保存完成。

在 hdfs 中读取文件

在客户端上,通过名称节点的输入流对象(输入流)创建流对象。使用生成的流对象按基础块的 10 倍进行查找。如果客户端从流对象生成块读取器,并且存储块的数据节点位于同一服务器上,则创建本地块读取器(块读取器),如果远程,则生成远程块读取器(远程块读取器)。dfsinputstream 查找块,直到读取所有文件。如果全部读了,应该通过close关闭。

辅助名称节点

名称节点将元数据写入内存并处理,如果服务器重新启动,它可能会消失。由于这一点,hdfs 生成两个文件:editslog 和 fsimage。editslog 存储 hdfs 的所有更改历史,fsimage 是存储存储在内存中的元数据的文件系统映像的文件。但是,如果 editslog 变大,则创建 fsimage 将非常耗时。

为了解决这些问题,有一个辅助名称节点(辅助名称节点)。辅助名称节点更新 fsimage。这些操作称为"检查点"。因此,辅助名称节点也称为签入点服务器。辅助名称节点不是名称节点的备份,而只是减少 fsimage 的作用。它用于防止 fsimage 太大,无法加载到内存中。

相关文章