请谈谈你对Hadoop的理解

2023-10-27

一、请谈谈你对Hadoop的理解?


1、Hadoop是什么?(What is Hadoop)
       Hadoop是Apache软件基金会的一个开源项目,是一个分布式处理海量数据的软件框架。
       它为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统的底层细节的情况下开发分布式的应用,充分利用由大量廉价硬件设备组成的集群的强大功能,实现存储和高速运算。Hadoop项目中包括一个分布式的文件系统HDFS,一个分布式的并行编程框架MapReduce以及包括Hive、HBase、Mahout、Pig、Zookeeper、Avro、Chukwa等周边生态系统。
    
2、为什么使用Hadoop?(Why use Hadoop)

       提升单台计算机速度是过去的办法,慢慢走到了极端,CPU的速度不可能再大幅度提升了。人们一直希望通过增加计算机数量提升运算。

       例如:在过去,计算机运算的效率依靠的是CPU的速度,随着对计算机体系结构的不断改善和研究,微型机CPU的处理速度基本达到稳定值了。也就是说过去计算速度依靠的是“个人英雄主义”。而现在呢?通过增加计算机数量(专业术语:集群)并行运算以提升运算和数据处理速度。可见,现在计算速度依靠的是“团体作战主义”。如果过去一台计算机处理一批数据需要24小时,现在通过同时在240台计算机上并行处理数据,仅仅需要10分钟。

     (个人英雄主义->团体作战主义)


3、Hadoop框架的作用
       它为应用程序提供了一组既稳定又可靠的接口。Hadoop计算框架的目的是构建一个具有高可靠性和良好扩展性的分布式操作系统。
     
4、Hadoop的特性(The feature of Hadoop)
       Hadoop是可靠的,如果计算元素或者存储数据失败,它可以启动和维护多个工作数据副本,确保失败的节点重新对数据进行分布式处理。
       Hadoop是高效的,它的工作方式是并行的,采用这种方式加快处理数据的速度。
       Hadoop是可伸缩的,可以处理不同级别的数据,大到能够处理PB级的数据。(1PB=1000TB)

5、Hadoop的应用前景(The application prospect of Hadoop)
云计算是IT界的第三次浪潮。在这次浪潮中,各大厂商面临着极大的挑战--他们需要从TB级乃至PB级数据中挖掘出有用的数据,并对这些海量的数据进行更快捷、高效率的处理。于是IT厂商推出了自己的云计算平台。Google的
MapReduce、GFS、BigTable成为互联网的领头羊,然而它的技术是保密的,Google公司并没有开源MapReduce的
实现细节。Amazon的AWS、微软的Azure和IBM的蓝云等也是云计算的典型代表,但它们都是商业性平台,对想要

继续研究和发展云计算技术的人员或科研团队来说,无法获得更多的了解。

Hadoop是Google云计算平台的开源实现(山寨版),越来越多的公司和组织选择使用Hadoop开源项目作为其解决方案。

Hadoop可以应用到:搜索引擎、广告优化、机器学习。

在未来,企业应用需求要求有更强的计算能力、更广泛的数据分布、更低的耦合性、更强的稳定性以及更灵活的可扩展性,采用传统的集群模式在这些要求面前显得力不从心了。如果采用分布式技术,就可以运用自己已有的资源,组织更加庞大的计算机网络、更大的集群来满足各行业对应用的需求,而Hadoop就是一个相当成功的分布式计算平台。

现代社会的信息量飞速增长,在这些信息里包含着大量的数据,主要有个人数据和工业数据。到2020年,预计数字信息超过1/3的内容将驻留在云平台或者借助云平台来进行处理数据。那么,如何高效地存储和管理这些数据,又如何分析这些数据呢?可以采用Hadoop系统,它在面对存储、管理分析这些数据时,采用分布式存储方式来存储数据,提高了读/写数据的速度并扩大了数据的存储容量;采用MapReduce来整合分布式文件系统的数据,使得分析和处理数据达到了高效率;同时Hadoop采用存储冗余数据的方式来保证数据的安全性。

 起源于Apache基金会项目,随着越来越多的用户加入,扩大了使用面,对其进一步开发和完善,到现在已经形成一个强大的生态系统。

从2009年开始,大力发展云计算和大数据,Hadoop作为海量数据分析的最佳解决方案,受到越来越多IT厂商的关注,使得Hadoop发展飞速,出现了Hadoop的商业版以及相匹配的Hadoop产品,包括软件和硬件产品。

国内淘宝、中国移动、金山、腾讯、百度、网易、新浪等。淘宝的Hadoop系统用于存储并处理电子商务交易的相关数据;中国移动研究院基于Hadoop的“大云”系统用于对数据进行分析并对外提供服务;金山专注安全云;腾讯提出“腾云”、WebQQ;百度采用Hadoop进行搜索日志的分析和网页数据的挖掘工作。


      Hadoop将在更多的领域中扮演幕后英雄,将为我们的生活带来更多优质的服务。
   
6、Hadoop的体系结构

core/common:为Hadoop其他子项目提供支持的常用工具,主要包括FileSystem、RPC和串行化库,它们为在廉价的硬件上搭建云计算环境提供基本的服务,并且为运行在该云平台上的软件开发提供了所需的API。
    
Avro:用于数据序列化的系统。它提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能。其中,代码生成器既不需要读/写文件数据,也不需要使用或实现RPC协议,它只是一个可选的对静态类型语言的实现。

7、HDFS的体系结构
     
8、MapReduce的体系结构

    

MapReduce的基本概述

采用MapReduce架构实现的程序能够在由大量的普通配置的计算机构成的集群中实现并行化操作。MapReduce系统在运行过程中只关心数据如何分割、如何调度,以及集群中计算机如何对错误进行处理,管理着计算机之间的通信。采用MapReduce架构可以使那些没有进行并行计算和分布式计算的开发人员能充分利用分布式系统的丰富资源进行并行式、分布式的开发。

MapReduce框架由一个单独的master JobTracker和集群节点上的slave TaskTracker共同组成。master负责调度一个作业中的所有任务,把这些任务分布在不同的slave上。master监控slave节点上这些任务的执行情况,并重新执行失败的任务,而slave仅负责执行由master指派的任务。

MapReduce是什么

MapReduce是一种编程模型,一种云计算的核心计算模型。

1)MapReduce主要用来解决什么问题

MapReduce致力于解决大规模数据处理的问题。基于分治法的思想,利用局部性原理将整个问题分而治之。数据在处理之前已经将数据集分布到各个节点上,处理时,每个节点先就近读取本地存储的数据来进行Map处理,将Map处理后的数据再进行合并(combine)排序(shuffle和sort)后再分发到Reduce节点。

2)MapReduce的核心思想

MapReduce编程模式的主要思想是将自动分割的要执行问题拆解成Map(映射)和Reduce(化简)的方式。它的两项核心操作是Map和Reduce。在数据分割后通过Map函数的程序将数据映射成不同的区块,分配给计算机群处理,达到分布式运算的效果。再通过Reduce函数的程序将结果汇整,从而输出开发者需要的结果。

9、Hadoop的数据管理
Hadoop的数据管理主要包括Hadoop的分布式文件系统HDFS、分布式数据库HBase和数据仓库工具Hive的数据管理。它们都有自己完整的数据定义和体系结构,以及实现数据从宏观到微观的立体管理方法。
   1)HDFS的数据管理
HDFS是分布式计算、分布式存储的基石。HDFS文件系统的管理主要通过3个重要的角色来进行:名字节点NameNode、数据节点DataNode和客户端Client。
NameNode是分布式文件系统中的管理者,它主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode节点将文件系统的Metadata存储
在内存中,Metadata的信息主要包括文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode中的信息等。DataNode是文件存储的基本的单元,
它将文件块存储在本地文件系统中,保存了所有的Block的Metadata,同时周期性地将所有存在的Block信息发送给NameNode。Clinet就是需要获取分布式
文件系统文件的应用程序。
   2)HBase的数据管理
HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据
存储的数据库。HBase是Google BigTable的开源实现。
   3)Hive的数据管理
Hive作为一个数据管理仓库,它的数据管理按照使用层次方面来看,可以从元数据存储、数据存储和查询计划3个方面来介绍
 ①元数据存储
   Hive数据仓库将元数据存储在关系数据库中,如MySQL、Derby。Hive中的元数据包括表的名字、表的列和分区及其属性、表的属性、表的数据所在目录。
   Hive的数据存储在HDFS中,大部分查询是通过MapReduce来完成的,但是带有*的查询是不会生成MapReduce任务的。
②数据存储
   在Hive中没有专门的数据存储格式,也不需要为数据建立索引,用户可以自由地在Hive中组织表。在组织表之前创建表时通知Hive在数据中采用列分隔符合行分隔符这样
   Hive就可以解析数据了。
 ③查询计划
   查询计划是通过解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化最后生成查询计划。生成的查询计划存储在HDFS中,并在MapReduce调用执行。
   

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请谈谈你对Hadoop的理解 的相关文章

随机推荐

  • (Matlab实现)K-means算法及最佳聚类数目的确定

    目录 摘要 1 K means算法 2 Calinski Harabasz Criterion 卡林斯基 哈拉巴斯指标 CH值 3 Davies Bouldin Criterion 戴维斯 博尔丁指标 DB值 4 Gap Value Gap
  • ChatGPT大流行的思考-设想篇

    在ChatGPT火热当下 我们不妨设想一下它可以应用到我们生活和工作的哪些方面 作者在对ChatGPT有所了解后 从行业 宏观及微观的角度进行设想 积累灵感 并投身到模型建设中 希望对你也有所启发 一 宏观及微观角度的设想 1 宏观角度 行
  • SQL Server远程连接的设置

    SQL Server正常连接时 若不需要远程操控其他电脑 可以用Windows身份验证模式 但是涉及到远程处理时 需要通过SQL Server身份验证登录 具体操作如下 首先 我们在登录时 选择Windows身份验证 然后连接到服务器 图1
  • pip 下载慢——解决方法

    国内源 新版ubuntu要求使用https源 要注意 清华 https pypi tuna tsinghua edu cn simple 阿里云 http mirrors aliyun com pypi simple 中国科技大学 http
  • 手把手教你10分钟快速部署Kubernetes集群

    本文介绍的部署过程主要是为了让读者能够理解 K8S 的运行原理 为了简化流程 这里不涉及高可用 高性能等解决方案 安装说明 本文仅仅是在两个节点上部署所有的组件 如图所示包括 MASTER 和 NODE 所有的组件都安装在 opt comp
  • Java程序开发学习之组件及事件处理

    学习参考书 Java2实用教程第5版 一 GUI编程 容器类 Container 和组件类 Component javax swing包中JComponent类是java awt包中Container类的一个直接子类 java awt包中C
  • 虚拟机环境搭建-CentOS篇

    文章目录 VMware Workstation软件安装 略 Linux环境安装 使用CentOS7 环境配置 基本配置 用 Xshell 访问虚拟机 参考文档 VMware Workstation软件安装 略 VMware Workstat
  • kmalloc分配大小的限制

    kmalloc是通过cache来实现的 只不过每次kmalloc的大小不同 因此是从不同的cache中分配 include linux slab h 注意kmalloc是在头文件中定义的 static inline void kmalloc
  • C语言--浮点数的比较

    先说结论 浮点数不能直接用 进行比较 观察代码 看如下代码 分析输出 void testDoubleCompare float a float 0 1 float b float 0 1 float c float 0 1 double d
  • 超炫酷的 Docker 终端 UI lazydocker,想看哪里点哪里

    有开发者开源了一个用于 Docker 和 docker compose 的简单终端 UI lazydocker 才短短几天目前已经收获了 2k star 作者表示记住 Docker 命令很难 并且在多个终端窗口中跟踪容器几乎是不可能的 la
  • loadrunner error:27796解决方法

    使用loadrunner进行web性能测试时 高并发场景以及高性能的服务器 负载机可能导致压测出现大量Error 27796 Failed to connect to server 10 2 9 147 80 10048 服务器ip和端口
  • 树莓派交叉编译(PS交叉编译链下载安装、配置永久环境变量、带WiringPi库交叉编译、软链接)

    目录 一 本章概述 二 交叉编译工具链的下载安装 下载 安装 交叉编译链临时有效 交叉编译链永久有效 三 交叉编译的使用 对比gcc与armgcc PC端交叉编译发送到树莓派运行 四 带WiringPi库的交叉编译如何处理 复制树莓派上的W
  • 解决pytorch中执行图像不显示报错的问题

    num epochs 10 d2l train ch3 net train iter test iter loss num epochs trainer 在图像识别之前改变matplotlib的版本 pip3 uninstall matpl
  • oppo笔试印象

    选择 20道考察了计算机组成中 最先存储 最优存储 最小桶排序 平衡二叉树成功比较次数 检索方法r tree b tree数组 哈希 计算机网络 传输层 第0层 操作系统死锁等 笔试第一题 忘记了 笔试第二题 找规律 第一层循环宏观上遍历6
  • 跟我一起写 Makefile(七)

    跟我一起写 Makefile 七 本文来自于CSDN 陈皓博主 网址http blog csdn net haoel article details 2892 详细内容请参考其经典文章 跟我一起写makefile 陈皓
  • Unity使用c#开发HoloLens2项目(十八)(使用MRTK后点击 Holographic Remoting For Play Mode无反应或Remote Host Port是多少)

    文章目录 成品展示 前言 问题 在unity中Play项目无反应 点击瞬间跳出 1 选择MRTK并进入Holographic Remoting For Play Mode 2 进入远程编辑界面 3 检查IP及端口状态 4 参考GitHub内
  • jquery修改display属性

    jquery修改display属性
  • Spring AOP 详解

    Spring AOP 详解 一 什么是 Spring AOP 二 为何要用 AOP 三 Spring AOP 3 1 AOP 组成 3 1 1 切面 Aspect 3 1 2 连接点 Join Point 3 1 3 切点 Pointcut
  • 初学者使用MyBatis开发步骤详解

    MyBatis开发步骤 1 建表 create table t users id int primary key auto increment name varchar 50 password varchar 50 sex varchar
  • 请谈谈你对Hadoop的理解

    一 请谈谈你对Hadoop的理解 1 Hadoop是什么 What is Hadoop Hadoop是Apache软件基金会的一个开源项目 是一个分布式处理海量数据的软件框架 它为开发者提供了一个分布式系统的基础架构 用户可以在不了解分布式