首页 > 其他分享 >hadoop系基础概念扫盲

hadoop系基础概念扫盲

时间:2022-12-20 11:06:36浏览次数:65  
标签:HDFS 概念 一个 Hadoop Hive hadoop 扫盲 MapReduce


hadoop版本:
hadoop1.0, hadoop2.0
Hadoop 1.0由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成。HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。
Hadoop 2.0则包含一个支持NameNode横向扩展的HDFS,一个资源管理系统YARN和一个运行在YARN上的离线计算框架MapReduce。相比于Hadoop 1.0,Hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。


hadoop发行版:
Apache Hadoop、Cloudera Hadoop(CDH)、Hortonworks Hadoop(yahoo)、Inter Hadoop、IBM Hadoop、华为等
Apache Hadoop 开源免费、环境都得自己搭、没有技术支持
CDH商业【有试用版】、基础套件都包含,搭建更方便


hadoop生态关键词:
HDFS、MapReduce、HBase、Hive、Pig、Zookeeper、Ambari、Hcatalog、Mahout、Avro、Sqoop、Flume、Oozie、Thrift .....,Storm、Spark


hadoop的基础:
原生的hadoop1.0开始其主要组成部分由HDFS、MapReduce两部分组成。一个用来分布式的存储文件或目标内容;一个用来进行分布式计算的框架。其它相关生态产品都是基于这2个来进行的上层组织或工作。


HBase:
有了HDFS等于是我们有了一个好多硬盘组成的一个超大的文件磁盘,这个意思就是你有一个可扩展的、无限大的超级磁盘;它的存储和读取方式对使用者是透明的,对于上层用户来说可以把它是一个特别大的本地磁盘即可;你可以进行目录建立、文件存放、数据写入、数据读取等等操作。


既然是一个大磁盘,那么当然就可以在其上做一些应用开发了,因为其目前主要用于文件存储,那么第一个应用想当然的就是数据库产品了。所以HBase就出来了,它就是一个基于hadoop的分布式非关系型数据库应用。【由微软一个子公司依照google发表的bigTable论文进行开发的应用】,主观上你可以简单的理解为一个NoSQL数据库即可。


Hive:
同样也是基于hadoop的一个应用,主要用于批量处理存放在HDFS之上的大文件内容。其主要特点是提供一个类SQL的内容查询接口,用户可以很容易的掌握其基本使用;其次它在进行文件处理或查询时使用了MapReduce的计算功能【除了不需要使用的功能】。


简单来讲Hive就是用来一个处理文件内容并把符合要求的内容过滤出来的一个应用。其工作方式是每次请求操作都会遍历所有的文件内容来进行相关条件的筛选和处理,最后返回处理的结果。其主要应用场景是用作数据仓库,即存放了大量内容的一个固定文件;所以你不能对其进行随机查询【都是遍历操作】、内容修改等操作。


facebook贡献的项目


Pig:
其主要功能和Hive类似,只是在使用上有些许差别;它的驱动语言是一个批处理的脚本语言,即通常你需要多个操作步骤才能完成一个数据的分析和提取。它同样也会用到HDFS和MapReduce功能。


简单理解Pig就是没有进化好的Hive。


Hcatalog:
到现在为止能够在HDFS上进行计算和数据处理的方式有MapReduce、Hive、Pig,但是这3个方式处理后得到的输出内容的格式并不是互相兼容的。所以如何能把它们的内容处理上兼容和结合起来呢?


Hcatalog的出现就是为了解决这个问题的,所以它是对上述3种基础数据处理形式的一个上层的表级别的抽象,即让MapReduce、Hive、Pig的处理都是按照Hcatalog表的形式处理和输出,达到最终3种不同处理程序之间的数据结构兼容。


Hcatalog的基础数据存放是基于Hive的格式,此外将来还会对HBase进行兼容支持。


Mahout:
提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。包括聚类、分类、推荐过滤、频繁子项挖掘


Avro:
一个数据序列化的系统;设计用于支持大批量数据交换的应用。它的主要特点有:支持二进制序列化方式,可以便捷,快速地处理大量数据;HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具。


Sqoop:
用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。sqoop可以理解为sql + hadoop的缩写


Flume:
一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。


Oozie:
一个工作流引擎服务器,用于配置、管理和运行Hadoop Map/Reduce和Pig 任务工作流。通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造工作流内容。


Thrift:
一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务.


Storm:
一个分布式的、容错的实时计算系统;为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。


可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。 


Spark:
一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

标签:HDFS,概念,一个,Hadoop,Hive,hadoop,扫盲,MapReduce
From: https://blog.51cto.com/u_15918230/5954443

相关文章

  • Hadoop生态圈-Knox网关的应用案例
    一.Knox网关简介据Knox官网所述(http://knox.apache.org/):ApacheKnoxGateway是用于与ApacheHadoop部署的RESTAPI和UI交互的应用程序网关。KnoxGateway为与ApacheHado......
  • SAP Gateway 里的 REST 概念
    SAPGateway有助于轻松配置和使用SAPBusinessSuite系统的业务逻辑和内容,用于移动和Web应用程序。它降低了访问SAP数据所需的复杂性和技能组合,从而消除了部署障碍......
  • Angular 模块封装概念常见的错误理解
    Angular以类似于ES模块的方式引入了模块封装的概念。它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。例如,如果我尝试使用下面......
  • 数据结构与算法概念
    目录引入概念第一次尝试算法的提出算法的概念算法的五大特性第二次尝试算法效率衡量执行时间反应算法效率单靠时间值绝对可信吗?时间复杂度与“大O记法”如何理解“大O记法......
  • ETCD相关介绍--整体概念及原理方面
    etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。简单:基于HTTP+JSON的API让你用curl就可以轻松使用。安全:可选SSL客户认证机......
  • 面向对象程序设计(OOP)的基本概念
    面向对象程序设计(OOP)的基本概念1.  面向对象程序设计 是以对象为基础以事件驱动对对象对事件进行处理的程序设计技术一个应用程序设计可以分为相互关联的多个对象,并......
  • AWS的区域和可用区概念解释
     AWS的每个区域一般由多个可用区(AZ)组成,而一个可用区一般是由多个数据中心组成。AWS引入可用区设计主要是为了提升用户应用程序的高可用性。因为可用区与可用区之间在设计上......
  • Hadoop--HDFS
    Hadoop3.1.2算法复杂度​ ]孙发复杂度分为时间复杂度和空间复杂度时间复杂度执行算需要计算工作量而空间复杂度是指执行这个算法所需要的内存空间;时间和空间都是......
  • 概念、场景技术方案选择的理解
    计算机-概念理解小技巧举例1:分布式、集群概念的理解(1)结合计算机发展历史时代背景+命名理解计算机发展时代背景:大数据时代,海量数据的存储、计算遇到瓶颈问题。命......
  • 多线程(概念)
    一概述是指从软件或者硬件上实现 多个线程 并发执行的技术具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。当数据量非常庞大的时候,为了提......