大数据基础知识-Hadoop、HBase、Hive一篇搞定

Hadoop 

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,其核心设计包括分布式文件系统(HDFS)和MapReduce编程模型;Hadoop是一个开源的分布式计算框架,旨在帮助用户在不了解分布式底层细节的情况下,开发分布式程序。

它通过利用集群的力量,提供高速运算和存储能力,特别适合处理超大数据集的应用程序。

Hadoop生态圈

Hadoop生态圈是一个由多个基于Hadoop开发的相关工具、库、应用程序、平台和服务组成的生态系统。这个生态系统旨在解决大规模数据处理问题,为用户提供从数据存储、处理到分析的全面解决方案。以下是对Hadoop生态圈主要组成部分的清晰归纳:

核心组件:

HDFS(Hadoop Distributed File System):Hadoop分布式文件系统,用于存储大规模数据集。HDFS将数据划分为多个块,并将这些块分布在集群中的多个节点上,以提供高可靠性和高可扩展性。

MapReduce:一种编程模型,用于处理和分析存储在HDFS中的大规模数据集。MapReduce将复杂的数据处理任务划分为两个阶段:Map阶段和Reduce阶段,从而实现并行处理。

资源管理器:

YARN(Yet Another Resource Negotiator):YARN是Hadoop 2.x版本引入的资源管理器,用于管理集群中的资源(如CPU、内存等)。YARN允许用户在同一集群上运行不同类型的应用程序,如MapReduce、Spark等。

数据存储与仓库:

HBase:一个基于Hadoop的分布式、版本化的非关系型数据库,用于存储结构化数据。HBase提供类似于Bigtable的列式存储,并支持实时读写操作。

Hive:一个基于Hadoop的数据仓库工具,允许用户使用SQL语言查询HDFS中的数据。Hive将SQL查询转换为MapReduce作业,并在Hadoop集群上执行。

数据处理与分析:

Spark:一个开源的大规模数据处理引擎,支持批处理、流处理、交互式查询和机器学习等多种应用场景。Spark基于内存计算,比MapReduce更加高效。

Pig:一个高级数据处理语言,允许用户编写简单的查询来处理大规模数据集。Pig将查询转换为MapReduce作业,并在Hadoop集群上执行。

分布式协调服务:

ZooKeeper:一个分布式协调服务,用于维护Hadoop集群的状态信息,如节点健康状态、数据块位置等。ZooKeeper还提供命名服务、配置管理等功能。

其他工具与服务:

Flume:一个用于收集、聚合和传输大量日志数据的工具,可以将数据发送到HDFS、HBase等存储系统中。

Sqoop:一个用于在Hadoop和结构化数据存储(如关系型数据库)之间传输数据的工具。Sqoop可以将数据从关系型数据库导入到HDFS中,也可以将HDFS中的数据导出到关系型数据库中。

Hadoop生态圈通过整合这些组件和工具,为用户提供了一个完整的大数据解决方案。用户可以根据需求选择适合的组件来构建自己的大数据处理和分析系统。

起源

Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一。在受到Google的MapReduce论文的启发后,Doug Cutting等人开始尝试实现MapReduce计算框架,并将其与NDFS(Nutch Distributed File System)结合,最终发展成为Hadoop。

特点

可靠性:假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

高效性:以并行的方式工作,通过并行处理加快处理速度。它能够在节点之间动态地移动数据,并保证各个节点的动态平衡。

可伸缩性:可以在可用的计算机集簇间分配数据并完成计算任务,这些集簇可以方便地扩展到数以千计的节点中。

高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本:依赖于社区服务,因此它的成本比较低,任何人都可以使用。

二、Hadoop 三大核心组件

HDFS(分布式文件系统) -—— 实现将文件分布式存储在集群服务器上

MAPREDUCE(分布式运算编程框架) —— 实现在集群服务器上分布式并行运算

YARN(分布式资源调度系统) —— 帮用户调度大量的 MapReduce 程序,并合理分配运算资源(CPU和内存)

  1. X和2.X版本的区别

Hadoop1.x:由MapReduce(计算及资源调度)、HDFS(数据存储)和Common(辅助工具)组成

Hadoop2.x:MapReduce(计算)、Yarn(资源调度)、HDFS(数据存储)和Common(辅助工具)组成

在Hadoop1.x版本的时代,Hadoop中的MapReduce同时要处理业务逻辑运算和资源的调度,耦合性较大,于是在2.X版本增加了Yarn,负责接管资源调度的工作。

1、HDFS

定义

HDFS是一个分布式文件系统,可以将大型数据集分成多个块,并将这些块存储在不同的计算机上,以提高数据的可靠性和可扩展性。

它具有高容错性的特点,设计用来部署在低廉的硬件上,并提供高吞吐量来访问应用程序的数据。

HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。

特点
优点:

(1)高容错性

        ①数据自动保存多个副本。它通过增加副本的形式,提高容错性。

        ②某一个副本丢失以后,它可以自动恢复。

(2)适合处理大数据

        ①数据规模:能够处理数据规模达到 GB 、 TB 、甚至 PB 级别的数据;

        ②文件规模:能够处理百万规模以上的文件数量,数量相当之大。

(3)可构建在廉价机器上,通过多副本机制,提高可靠性。

缺点:

(1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。

(2)无法高效的对大量小文件进行存储。

        ①存储大量小文件的话,它会占用 NameNode 大量的内存来存储文件目录和块信息。这

样是不可取的,因为 NameNode 的内存总是有限的;

        ②小文件存储的寻址时间会超过读取时间,它违反了 HDFS 的设计目标。

Docker是一种容器化技术,用于创建、部署和管理应用程序的容器。Hadoop是一个分布式计算框架,用于处理大数据集并在集群中进行高速计算。HBase是一个面向列的分布式数据库,用于存储和管理大规模的结构化数据。Hive是一个基于Hadoop的数据仓库基础架构,用于提供简化的查询和分析大数据的能力。而Spark是一个高级的分布式计算系统,用于加速大规模数据处理和分析。 在使用这些技术时,Docker可以用于快速搭建和部署容器化的HadoopHBaseHive和Spark环境。使用Docker容器,我们可以轻松地在任何机器上部署这些组件,而无需担心环境配置的问题。 Hadoop是一个开源的分布式计算框架,它可以容纳大规模数据并以可靠的方式在集群中进行处理。通过用Docker容器来运行Hadoop,我们可以更快地搭建和管理Hadoop集群,并且容易进行监控和维护。 HBase是一个分布式数据库系统,以表的形式存储数据,并提供高效的读写操作。通过Docker容器,我们可以轻松地部署HBase集群,并且可以根据需求进行水平扩展,以满足不同规模的数据存储需求。 Hive是一个基于Hadoop的数据仓库基础架构,它提供了类似于SQL的查询接口,方便用户进行大规模数据的查询和分析。使用Docker容器,我们可以轻松地搭建Hive环境,并通过对容器进行配置和管理,优化Hive的性能。 Spark是一个高级的分布式计算系统,它强调内存计算和迭代计算的能力,从而加速大规模数据处理和分析。通过Docker容器,我们可以快速部署和管理Spark集群,并且可以根据需求进行资源配置和任务调度,以实现高性能和高吞吐量的数据处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值