返回顶部
首页 > 资讯 > 精选 >Hadoop相关概念有哪些
  • 952
分享到

Hadoop相关概念有哪些

2023-06-03 03:06:27 952人浏览 八月长安
摘要

这篇文章主要讲解了“hadoop相关概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop相关概念有哪些”吧!一、大数据的基本概念1.1、什么是大数据  大数据指的就是要处理的

这篇文章主要讲解了“hadoop相关概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop相关概念有哪些”吧!

一、大数据的基本概念

1.1、什么是大数据

  大数据指的就是要处理的数据是TB级别以上的数据。大数据是以TB级别起步的。在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如:

  Hadoop相关概念有哪些Hadoop相关概念有哪些

  文件占用的存储空间代表的就是该文件的大小,在计算机当中,文件的大小可以采用以下单位来表示,各个单位之间的转换关系如下:

  Hadoop相关概念有哪些

  平时我们在我们自己的电脑上面常见的就是Byte、KB、MB、GB这几种,那么究竟什么是大数据呢,大数据的起步是以TB级别开始的,1TB=1024GB,而我们处理的数据可能会到达PB级别,1PB=1024TB,那可想而知,数据量是多么庞大,所以大数据指的就是要处理的数据是TB级别以上的数据。而对于这些TB级别以上的数据,一般情况下,一台计算机的硬盘存储空间是无法存储那么大的数据,我们现在的普通电脑一般都是一块硬盘,而硬盘容量一般都是500GB左右,有的是1TB,假设现在有1PB的数据要存储,我们给每一台计算机配置10块硬盘,每一块硬盘都是1T的存储容量,那么也得要使用100多台电脑才能够存储得下1PB的数据。所以说,当我们的数据规模达到一定的程度的时候,我们以往的一些问题的解决办法在这种场景下已经变得不适用了。

1.2、大数据的特征

  Hadoop相关概念有哪些

  大数据,顾名思义,第一个特征就是数据量大,需要非常大的存储空间进行存储,而如果要处理这些海量的数据,那么计算量可想而知,所以计算量非常庞大。而这些数据的来源往往也是多样化的,数据的格式也是多样化的,在我们平时的应用系统开发中,我们要处理的数据来源大多数是存储在数据库中的数据又或者是存储在文件当中,而在大数据时代,我们一个系统要处理的数据来源是多种多样的,这些数据的来源可能是来自数据库,也可能是来自一些监控采集数据,或者是一些科研数据,而数据的格式可能有普通文本,图片、视频、音频、结构化的,非结构化的等等,反正什么样的数据都有。在大数据时代,数据的增长速度是非常快的,例如我们每天打电话,发短信,我们打出去的电话和发出去的短信在移动和联通公司都会有相应的记录,而这样的数据每天都会产生几亿条,数据量的增长速度可想而知,因此要求处理数据的应用系统的处理速度也要快,当我们想展示一些数据给用户看时,如果应用系统的处理速度不够快,那么给用户的体验是非常差的。另外,在大数据领域,我们从海里数据中能够提取到的相对有价值的数据也是非常有限的,我们处理几十个T的数据,从这些数据当中能够提取出来的有价值的信息也是非常少的,大数据分析要想得到一些有价值的结果,那么要求数据要比较全。比如,我们想分析一个用户的购物习惯,她平时喜欢在京东和天猫、淘宝这些电子商务网站上面进行购物,我们分析她在京东商城上面的购物行为时,我们不光要分析她最近一次的购买行为,还要分析她很长一段时间内的历史购买行为,以及在其他电商网站的购买行为,如果我们真的想一体地分析用户的生活习惯,那么不光是要分析她的购物行为,还要分析她的社交行为,比如在一些社交网站上面平时和哪些人联系最多,平时喜欢讨论一些什么话题,从事的职业,年龄,性别等,拿到的数据越全,我们分析的结果就会越准确,所以大数据不光是要求数据量要大,更重要要的是数据要全面,要多维度的,这样我们提取到的数据才是比较有价值,比较准确的。大数据处理领域在价值这一块是稀疏型的,从海量数据当中能够提取到的有价值的数据是非常稀少的。

1.3、存在有大数据的行业

  放眼观世界,现在各行各业每天都会产生大量的数据,21世纪是一个互联网时代,一个信息化的时代,我们这一代人都不可避免地在一些IT系统当中留下我们的脚印,存在有大数据的典型的行业有以下几个行业:

  Hadoop相关概念有哪些

  互联网企业是最早收集大数据的行业,最典型的代表就是Google和百度,这两个公司是做搜索引擎的,数量都非常庞大,每天都要去把互联网上的各种各样的网页信息抓取下来存储到本地,然后进行分析,处理,当用户想通过搜索引擎搜索一些他们关心的信息时,Google和百度就从海量的数据当中提取出相对于对用户而言是有用的信息,然后将提取到的结果反馈给用户,据说Google存储的数据量已经到达了上百个PB,这个数据量是非常惊人的。类似于Fackbook这样的SNS(社交网站)因为用户量比较多,用户每天在网站上面分享一些文章,图片,视频,音频等信息,因此每天产生的数据量也是非常庞大的。

二、大数据技术要解决的技术难题

2.1、海量数据如何存储?

  海量数据的存储问题也不是今天才有的,很早以前就出现了,一些行业或者部门因为历史的积累,数据量也达到了一定的级别,当一台电脑无法存储这么庞大的数据时,采用的解决方案是使用NFS(网络文件系统)将数据分开存储,NFS系统的架构如下图所示:

  Hadoop相关概念有哪些

  NFS这种解决方案就是同时架设多台文件服务器,如下图所示:

  Hadoop相关概念有哪些

  然后在文件服务器上面设置共享目录,例如图中显示的【D:\software、E:\aa\bb、F:\dd\cc、E:\images】

  Hadoop相关概念有哪些

  这样我们就可以把文件分类存放到各个文件服务器上面的共享目录当中,一台电脑的存储空间不够用,那么我们就将数据分散到多台电脑进行存储,而这些文件服务器上面的共享目录对于用户来说是透明的,用户会以为自己存放数据的【Software、Tools、film、music】这些目录都是属于【Itdc.com.local】这台文件服务器里面的【public】目录下的子目录,在NFS系统中,【Itdc.com.local】这台文件服务器只是起到一个中转站作用,将用户需要存放的海量数据分类存放到各个文件系统当中,这就解决了大数据的存储问题了。当用户需要访问分散在各个文件服务器中的文件资源时,它只需要访问【Itdc.com.local】这台文件服务器就可以了。

  NFS虽然是解决了海量数据的存储问题,但是在大数据背景下,这种存储方案是不适用的,大数据不光是要解决数据存储问题,更重要的是海量数据的分析,而NFS在海量数据分析方面不能够充分利用多台计算机同时进行分析。

2.2、海量数据如何计算

  一个实际的需求场景——日志分析

  对日志中每一个用户的流量进行汇总就和,如下图所示:

  Hadoop相关概念有哪些

  对于这样的一个日志文件,如果只有这么几行数据,我们一般会采用这样的处理方式:
    1、读取一行日志
    2、抽取手机号和流量字段
    3、累加到HashMap
    4、遍历输出结果

  那么问题来了,如果数据量变得很大呢,比如一个日志文件里面有几个GB数据,

  1. 如果仍然一行一行去读,那么就会因为磁盘的io瓶颈导致效率太低,速度太慢。

  2. 如果一次性加载到内存,那么就会因为单台计算机的内存空间有限而导致内存溢出。

  3. 如果将中间结果全部缓存到HashMap中,那么也会因为单台计算机的内存空间有限而导致内存溢出。

  4. 可以选择采用多线程处理,但是依然无法改变资源瓶颈的现实,因为一台计算器的CPU资源,内存资源,磁盘IO瓶颈是定,创建再多的线程也无法改变这个现实。

  所以当一个日志文件里面存储了几个GB数据,那么这种情况下就不能采用这种传统的处理方式了。可以看到,在大数据背景下,我们一个简单的业务场景,比如这里的统计用户流量,在数据量变得很大的时候,原来不是问题的一些东西现在都成了问题。那么这些问题该如何解决呢?

解决思路一

  纵向扩展,也就是升级硬件,提高单机性能(增加内存,增强CPU、用更高性能的磁盘(如固态硬盘)),比如可以购买IBM的高端服务器。

  Hadoop相关概念有哪些

  优点:

    1、简单易行
  缺点:

    1、单台计算机的扩展空间有限,CPU、内存、磁盘再怎么扩展也是有限的,无法无限扩展。

    2、成本高(高端服务器非常昂贵,几百万甚至上千万一台,一般的小公司承受不起这样高昂的成本)

解决思路二

  横向扩展,用多台节点分布式集群处理 (通过增加节点数量提高处理能力,这里说的节点指的就是一台计算机)

  Hadoop相关概念有哪些

  核心思想:任务分摊,通过协作来实现单节点无法实现的任务。

  优点:

    1、成本相对低(可采用普通机器)

    2、易于线性扩展

  缺点:

    系统复杂度增加,我们要将我们的WEB应用部署到每一个节点上面,而多个节点协同工作时就要考虑以下几个问题
      1、如何调度资源
      2、任务如何监控
      3、中间结果如何调度
      4、系统如何容错
      5、如何实现众多节点间的协调

    分布式计算的复杂性就体现在这样的5个问题里面。

三、Hadoop相关概念介绍

 3.1、大数据行业的标准——Hadoop

  Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运行处理基础框架
  Hadoop擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储与离线处理。

  Hadoop就是一门用来处理大数据的技术,就是用来解决上述提到的分布式计算里面的5个技术难题的。

3.2、Hadoop的Logo图片

  Hadoop相关概念有哪些

3.3、Hadoop的由来

  Hadoop相关概念有哪些

3.4、Hadoop的核心组件

3.4.1、海量存储——hdfs(Hadoop分布式文件系统,Hadoop Distributed File System)
  • 分布式易扩展

  • 廉价易得

  • 高吞吐量

  • 高可靠性

3.4.2、分布式并行计算——资源调度(Yarn)+编程模型(mapReduce)
  • 大容量高并发

  • 封装分布式实现细节

  • 大大提高分析效率

3.5、Hadoop的学习路线

  1. linux系统基本操作能力

  2. java开发语言

  3. Hadoop核心组件

  4. MapReduce或spark等编程模型

  5. ZooKeeper-Sqoop-Flume等工具组件

  6. NoSQL技术,HBase

  7. 数据分析挖掘、机器学习、Mahout

3.6、学习Hadoop技术的书籍推荐

  1、Hadoop权威指南第三版
  2、Hadoop技术内幕

  3、Hadoop实战

感谢各位的阅读,以上就是“Hadoop相关概念有哪些”的内容了,经过本文的学习后,相信大家对Hadoop相关概念有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Hadoop相关概念有哪些

本文链接: https://lsjlt.com/news/232434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hadoop相关概念有哪些
    这篇文章主要讲解了“Hadoop相关概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop相关概念有哪些”吧!一、大数据的基本概念1.1、什么是大数据  大数据指的就是要处理的...
    99+
    2023-06-03
  • Windows安全相关的概念有哪些
    Windows安全相关的概念有以下几个: 访问控制:访问控制是指限制用户或进程对系统资源的访问。Windows系统通过用户帐户和...
    99+
    2023-10-23
    Windows
  • 数据库备份的相关概念有哪些
    本篇内容介绍了“数据库备份的相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、备份的类型备份...
    99+
    2024-04-02
  • 数据库备份容灾相关概念有哪些
    本篇内容介绍了“数据库备份容灾相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!物理备份:是将实...
    99+
    2024-04-02
  • oracle相关概念
    SQL 语句:结构化查询语言: Structured  Query Languageoracle数据库有三级结构:   关系模式,称为“基本表”   存储模...
    99+
    2024-04-02
  • 数据库相关概念
    数据库事务:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要...
    99+
    2024-04-02
  • python 类相关概念理解
    目录什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性)类变量和类属性的分类类调用实例方法类的封装(enclosure),继承和多态迭代,迭代器(iterator)...
    99+
    2024-04-02
  • hadoop的RM与NM相关参数有哪些
    本篇内容介绍了“hadoop的RM与NM相关参数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 参数均需要在yarn-sit...
    99+
    2023-06-03
  • NIO的概念有哪些
    这篇文章主要介绍了NIO的概念有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇NIO的概念有哪些文章都会有所收获,下面我们一起来看看吧。缓冲区(Buffers) 新的 Buffer 类是常规 Java 类和...
    99+
    2023-06-17
  • Java基本概念有哪些
    这篇文章给大家分享的是有关Java基本概念有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java基本概念JDK包含了不少Java开发相关命令。如,javac、java、javap、javaw、javadoc...
    99+
    2023-06-20
  • HDFS基本概念有哪些
    小编给大家分享一下HDFS基本概念有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1.1 HDFS的介绍  源自于Google的GFS论文 发表于2003...
    99+
    2023-06-02
  • SNMP相关基本概念是什么
    本篇文章给大家分享的是有关SNMP相关基本概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、网络管理的概念狭义的网络管理仅仅指网络的通信量管理,而广义的网络管理指网络...
    99+
    2023-06-03
  • HTML基本的概念有哪些
    这篇文章主要介绍“HTML基本的概念有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML基本的概念有哪些”文章能帮助大家解决问题。   1、什么是HTML...
    99+
    2024-04-02
  • JVM调优概念都有哪些
    今天给大家介绍一下JVM调优概念都有哪些。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本...
    99+
    2023-06-17
  • Java变量的概念有哪些
    本篇内容主要讲解“Java变量的概念有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java变量的概念有哪些”吧!实例变量实例变量又被称为Instance variables。不使用 sta...
    99+
    2023-06-16
  • Jspxcms的基本概念有哪些
    这篇文章主要介绍“Jspxcms的基本概念有哪些”,在日常操作中,相信很多人在Jspxcms的基本概念有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jspxcms的基本概念有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • J2SE的基本概念有哪些
    这篇文章主要讲解了“J2SE的基本概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“J2SE的基本概念有哪些”吧!Java概述:  目前Java主要应用于中间件的开发(middlewa...
    99+
    2023-06-03
  • Java多态的概念有哪些
    这篇“Java多态的概念有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java多态的概念有哪些”文章吧。1.多态的概念...
    99+
    2023-06-30
  • Hadoop YARN配置中RM与NM相关参数有哪些
    Hadoop YARN配置中RM与NM相关参数有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。注意,配置这些参数前,应充分理解这几个参...
    99+
    2024-04-02
  • 【JAVA】有关包的概念
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 Java包是用于组织和管理Java类的方式。它们提供了一种命名空间,以避免名称冲突,并使程序的组织更加有效和...
    99+
    2023-10-19
    java python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作