Hadoop概述

大数据处理技术

对大数据技术的基本概念进行简单介绍,包括分布式计算、服务器集群和 Google 的 3 个大数据技术。

分布式计算

对于如何处理大数据,计算机科学界有两大方向。
第一个方向是集中式计算,就是通过不断增加处理器的数量来增强单个计算机的计算能力,从而提高处理数据的速度。
第二个方向是分布式计算,就是把一组计算机通过网络相互连接组成分散系统,然后将需要处理的大量数据分散成多个部分,交由分散系统内的计算机组同时计算,最后将这些计算结果合并,得到最终的结果。

尽管分散系统内的单个计算机的计算能力不强,但是由于每个计算机只计算一部分数据,而且是多台计算机同时计算,所以就分散系统而言,处理数据的速度会远高于单个计算机。
过去,分布式计算理论比较复杂,技术实现比较困难,因此在处理大数据方面,集中式计算一直是主流解决方案。
IBM 的大型机就是集中式计算的典型硬件,很多银行和政府机构都用它处理大数据。不过,对于当时的互联网公司来说,IBM 的大型机的价格过于昂贵。因此,互联网公司把研究方向放在了可以使用在廉价计算机上的分布式计算上。

服务器集群

服务器集群是一种提升服务器整体计算能力的解决方案。它是由互相连接在一起的服务器群组成的一个并行式或分布式系统。
由于服务器集群中的服务器运行同一个计算任务,因此,从外部看,这群服务器表现为一台虚拟的服务器,对外提供统一的服务。
尽管单台服务器的运算能力有限,但是将成百上千的服务器组成服务器集群后,整个系统就具备了强大的运算能力,可以支持大数据分析的运算负荷。
Google、Amazon 阿里巴巴的计算中心里的服务器集群都达到了 5000 台服务器的规模。

大数据的技术基础

2003/2004年间,Google 发表了 MapReduce、GFS(Google File System)和 BigTable三篇技术论文,提出了一套全新的分布式计算理论。
MapReduce 是分布式计算框架
GFS 是分布式文件系统
BigTable 是基于 GFS 的数据存储系统
这 3 大组件组成了 Google 的分布式计算模型
Google 的分布式计算模型相比于传统的分布式计算模型有 3 大优势:
• 简化了传统的分布式计算理论,降低了技术实现的难度,可以进行实际的应用。
• 可以应用在廉价的计算设备上,只需增加计算设备的数量就可以提升整体的计算能力,应用成本十分低廉。
• 被应用在 Google 的计算中心,取得了很好的效果,有了实际应用的证明。

后来各家互联网公司开始利用Google的分布式计算模型搭建自己的分布式计算系统,Google 的这3篇论文也就成为大数据时代的技术核心。
Google采用分布式计算理论也是为了利用廉价的资源使其发挥出更大的效用。
Google 的成功使人们开始效仿,从而产生了开源系统 Hadoop。

Hadoop 系统简介

Hadoop 是一种分析和处理大数据的软件平台,是一个用 Java 语言实现的 Apache 的开源软件框架,在大量计算机组成的集群中实现了对海量数据的分布式计算。
Hadoop 采用 MapReduce 分布式计算框架,根据 GFS 原理开发了 HDFS(分布式文件系统),并根据 BigTable 原理开发了 HBase 数据存储系统。
Hadoop 和 Google 内部使用的分布式计算系统原理相同,其开源特性使其成为分布式计算系统的事实上的国际标准。
Yahoo、Facebook、Amazon,以及国内的百度、阿里巴巴等众多互联网公司都以 Hadoop 为基础搭建了自己的分布式计算系统。
Hadoop 是一个基础框架,允许用简单的编程模型在计算机集群上对大型数据集进行分布式处理。
它的设计规模从单一服务器到数千台机器,每个服务器都能提供本地计算和存储功能,框架本身提供的是计算机集群高可用的服务,不依靠硬件来提供高可用性。
用户可以在不了解分布式底层细节的情况下,轻松地在 Hadoop 上开发和运行处理海量数据的应用程序。
低成本、高可靠、高扩展、高有效、高容错等特性让 hadoop 成为最流行的大数据分析系统。
Hadoop标志
在这里插入图片描述
Hadoop之父 Doug Cutting
在这里插入图片描述

Doug Cutting 看到他儿子在牙牙学语时,抱着黄色小象,亲昵的叫 hadoop,他灵光一闪,就把这技术命名为 Hadoop,而且还用了黄色小象作为标示 Logo
不过,事实上的小象瘦瘦长长,不像 Logo 上呈现的那么圆胖。“我儿子现在 17 岁了,所以就把小象给我了,有活动时就带着小象出席,没活动时,小象就丢在家里放袜子的抽屉里。”

Hadoop 生态圈

Hadoop 是一个由 Apache 基金会开发的大数据分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,轻松地在 Hadoop 上开发和运行处理大规模数据的分布式程序,充分利用集群的威力高速运算和存储。
Hadoop 是一个数据管理系统,作为数据分析的核心,汇集了结构化和非结构化的数据,这些数据分布在传统的企业数据栈的每一层。
Hadoop 也是一个大规模并行处理框架,拥有超级计算能力,定位于推动企业级应用的执行。
Hadoop 又是一个开源社区,主要为解决大数据的问题提供工具和软件。
虽然 Hadoop 提供了很多功能,但仍然应该把它归类为由多个组件组成的 Hadoop 生态圈,这些组件包括数据存储、数据集成、数据处理和其他进行数据分析的专门工具。
Hadoop 的生态系统,主要由 HDFS、MapReduce,HBase,Zookeeper,Pig,Hive 等核心组件构成;另外还包括 Sqoop、Flume 等框架,用来与其他企业系统融合。
同时,Hadoop 生态系统也在不断增长,它新增了 Mdhout、Ambari 等内容,以提供更新功能。
在这里插入图片描述

Hadoop 生态圈包括以下主要组件
1)HDFS(Hadoop分布式文件系统)
HDFS是一种数据分布式保存机制,数据被保存在计算机集群上。数据写入一次,读取多次。HDFS 为HBase等工具提供了基础。

2)MapReduce(分布式计算框架)
MapReduce是一种分布式计算模型,用以进行大数据量的计算,是一种离线计算框架。
MapReduce的计算过程,就是将大数据集分解为成若干个小数据集,
每个(或若干个)小数据集分别由集群中的一个结点(一般就是一台主机)进行处理并生成中间结果,然后将每个结点的中间结果进行合并,形成最终结果。

3)HBASE(分布式列存数据库)
HBase是一个建立在HDFS之上,面向列的NoSQL数据库,用于快速读/写大量数据;
HBase使用Zookeeper进行管理,确保所有组件都正常运行。

4)Sqoop(数据ETL/同步工具)
Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之间传输数据。

5)Flume(分布式日志收集系统)
Flume是一个分布式、可靠、高可用的海量日志聚合的系统,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。
6)Storm(流式计算、实时计算)
Storm是一个免费开源、分布式、高容错的实时计算系统。
Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。
Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。

7)Zookeeper(分布式协作服务)
Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。
作用:
解决分布式环境下的数据管理问题如:统一命名,状态同步,集群管理,配置同步等。

8)Pig(ad-hoc脚本)
Pig定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。
其编译器将Pig Latin 翻译成MapReduce 程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

9)Hive(数据仓库)
Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。
HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce的开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

10)Spark(内存计算模型)
Spark提供了一个更快、更通用的数据处理平台。和MapReduce相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。

11)Oozie(工作流调度器)
Oozie可以把多个MapReduce作业组合到一个逻辑工作单元中,从而完成更大型的任务。

12)Mahout(数据挖掘算法库)
Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。

13)YARN(分布式资源管理器)
YARN是下一代MapReduce,即MR2,是在第一代MapReduce基础上演变而来的,
主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。
其核心思想:
将MR1中JobTracker的资源管理和作业调用两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。
1)ResourceManager:负责整个集群的资源管理和调度
2)ApplicationMaster:负责应用程序相关事务,比如任务调度、任务监控和容错等

14)Tez(DAG计算模型)
一个运行在YARN之上支持DAG(有向无环图)作业的计算框架。
Tez的目的就是帮助Hadoop处理这些MapReduce处理不了的用例场景,如机器学习。

Hadoop核心组件
用于解决两个核心问题:存储 和 计算
核心组件
1)Hadoop Common:一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)。
2)Hadoop Distributed FileSystem(分布式文件存储系统)
存数据 hadoop这个电脑的硬盘 --> hadoop集群当中充当存储数据角色的所有电脑的硬盘组成
3)Hadoop MapReduce(分布式计算框架)
分布式计算,计算数据的。 hadoop平台中最原始最简单的应用程序,分布式计算 数据不动 计算动
4)Hadoop YARN(分布式资源管理器)
mapreduce任务在yarn上跑,由yarn来管理资源,管理hadoop的CPU和内存

使用这些技术我们可以针对大数据进行操作,包括数据清洗,数据分析,数据展示等…

ETL:
英文Extract-Transform-Load的缩写
用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。
ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

Hadoop版本演进

在这里插入图片描述

当前 Hadoop 有两大版本:Hadoop 1.0 和 Hadoop 2.0。
Hadoop 1.0 被称为第一代 Hadoop,由 HDFS 和 MapReduce 组成。
HDFS 由一个 NameNode 和多个 DataNode 组成,MapReduce 由一个 JobTracker 和多个 TaskTracker 组成。
Hadoop 1.0 对应的 Hadoop 版本为0.20.x、0.21.x、 0.22.x 和 Hadoop 1.x。
其中,0.20.x 是比较稳定的版本,它最后演化为 1.x,变成稳定版本。0.21.x 和 0.22.x 则增加了 NameNode HA 等新特性。

在这里插入图片描述

Hadoop 2.0 被称为第二代 Hadoop,是为克服 Hadoop 1.0 中 HDFS 和 MapReduce 存在的各种问题而提出的,对应的 Hadoop 版本为 0.23.x 和 2.x。
针对 Hadoop 1.0 中 NameNode HA 不支持自动切换且切换时间过长的风险,Hadoop2.0 提出了基于共享存储的 HA 方式,该方式支持失败自动切换切回。
针对 Hadoop 1.0 中 单NameNode 制约 HDFS 扩展性的问题,Hadoop 2.0 提出了 HDFS Federation 机制,它允许多个 NameNode 各自分管不同的命名空间,进而实现数据访问隔离和集群横向扩展。
针对 Hadoop 1.0 中 MapReduce 在扩展性和多框架支持方面的不足,Hadoop 2.0 提出了全新的资源管理框架 YARN,它将 JobTracker 中的资源管理和作业控制功能分开,分别由组件 ResourceManager 和 ApplicationMaster 实现。
其中,ResourceManager 负责所有应用程序的资源分配,而 ApplicationMaster 仅负责管理一个应用程序。
相比于 Hadoop 1.0,Hadoop 2.0 框架具有更好的扩展性、可用性、可靠性、向后兼容性和更高的资源利用率
Hadoop 2.0 还能支持除 MapReduce 计算框架以外的更多的计算框架,Hadoop2.0 是目前业界主流使用的 Hadoop 版本。

1.3.3 Hadoop 发行版本
Apache
• 企业实际使用并不多。最原始(基础)版本。这是学习hadoop的基础。我们就是用的最原始的这个版本
cloudera --> CDH版
• 对hadoop的升级、打包开发了很多框架;flume、hue、impala都是这个公司开发
• 2008年成立的 Cloudera 是最早将 Hadoop 商用的公司,为合作伙伴提供 Hadoop 的商用解决方案.主要是包括支持、咨询服务、培训
• 2009年Hadoop的创始人 Doug Cutting也加盟 Cloudera公司,Cloudera 产品主要 为 CDH、Cloudera Manager、Cloudera Support
• CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性、安全性、稳定性上有所增强。
• Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即 是对Hadoop的技术支持。
• Cloudera 的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
Hortonworks --> HDP+Ambari
• 2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建
• 公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop 80%的代码。
• 雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。
• Hortonworks 的主打产品是Hortonworks Data Platform (HDP),也同样是100%开 源的产品,HDP除常见的项目外还包含了Ambari,一款开源的安装和管理系统
• HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook 开源的Hive中
• Hortonworks的Stinger开创性地极大地优化了Hive项目。Hortonworks为入门提供了一个非常好的易于使用的沙盒。
• Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Windows Server和Windows Azure在内的Microsoft Windows平台上本地运行。
• 定价以集群为基础,每10个节点每年为12500美元。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/584734.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源项目介绍-01:AAMED-master 圆和椭圆检测

前言: AAMED: Arc Adjacency Matrix based Fast Ellipse Detection :基于弧邻接矩阵的快速椭圆检测 1 下载 GitHub - Li-Zhaoxi/AAMED: Arc Adjacency Matrix based Fast Ellipse Detection 开源项目,支持windows 和 Linux的,然后,有C++,Python,Matlab的几个版本。 Git…

SQL底层执行过程

MySQL 的查询流程 客户端请求连接器 负责与客户端的通信,是半双工模式(半双工(Half Duplex)数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。),验证请求用户的账户和密码是否正确,③如果用户的账户和密码验…

模型量化与量化在LLM中的应用 | 得物技术

一、模型推理优化 随着模型在各种场景中的落地实践,模型的推理加速早已成为AI工程化的重要内容。而近年基于Transformer架构的大模型继而成为主流,在各项任务中取得SoTA成绩,它们在训练和推理中的昂贵成本使得其在合理的成本下的部署实践显得…

Git 如何修改已经推送的错误提交信息(有图有真相)

解决方案一:修改最新的提交信息 首先,我们来考虑最简单的情况:如果你在最近一次提交时输入了错误的提交信息,并且还没有进行下一次提交,那么你可以使用如下命令来修改最新的提交信息: $ git commit --ame…

VSCode SSH连接远程主机失败,显示Server status check failed - waiting and retrying

vscode ssh连接远程主机突然连接不上了,终端中显示:Server status check failed - waiting and retrying 但是我用Xshell都可以连接成功,所以不是远程主机的问题,问题出在本地vscode; 现象一: 不停地输入…

CPU架构

一、CPU组成 CPU内部由ALU(算术逻辑单元)、CU(控制器)、寄存器(PC、IR、PSW、DR、通用寄存器等)、中断系统组成,外部通过总线与控制总线、数据总线、地址总线进行相连,对数据和程序…

【保姆级讲解如何安装与配置Xcode】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

第十二章 案例二:配置Trunk,实现相同VLAN的跨交换机通信

1、实验环境 公司的员工人数已达到 100 人,其网络设备如图12.13所示,现在的网络环境导致广播较多网速慢,并且也不安全,公司希望按照部门划分网络,并且能够保证一定的网络安全性 图12.13 实验案例二拓扑图 其网络规划…

环境安装:python环境迁移(无网和有网)

前言 环境部署或迁移是一项简单而又考验应对能力的一项工作,需要考虑到网络环境的情况,无网环境下需要采取离线方式进行操作,有网环境则可以直接通过在线安装完成。 在进行Python环境迁移时,需要注意保持环境的一致性,…

Notion是什么,Notion软件下载,Notion官方网站在哪里?国内用户Notion怎么订阅升级会员?

Notion是什么 Notion,一款强大的多功能工具,可用于组织笔记、任务、项目、数据库和文档等。 Notion软件下载 这个到Notion官方网站下载就可以了。 怎么订阅Notion会员 注册好了Notion的账号,来到首页,点击设置,左边…

LED显示屏黑屏的常见原因及解决办法

LED显示屏在使用过程中偶尔会出现黑屏现象,可能由多种原因引起。以下是LED显示屏出现黑屏的主要情况及相应的解决办法: 1. 上电的瞬间就是黑的 原因:可能是因为上电过程中出现了一些异常情况,导致屏幕无法正常显示。 解决办法&…

如何保证Redis双写一致性?

目录 数据不一致问题 数据库和缓存不一致解决方案 1. 先更新缓存,再更新数据 该方案数据不一致的原因 2. 先更新数据库,再更新缓存 3. 先删除缓存,再更新数据库 延时双删 4. 先更新数据库,再删除缓存 该方案数据不一致的…

新手如何用Postman做接口自动化测试?

1、什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来,本质是用代码去测试另一段代码,属于一种软件开发工作,已…

洗地机哪个牌子质量最好?四款年度口碑品牌盘点

在当今家庭生活中,洗地机技术的飞速发展给我们的日常带来了极大的便利。洗地机作为智能家居领域的佼佼者,其实用性和智能化程度受到越来越多消费者的欢迎。许多人在选洗地机时会纠结一个问题:洗地机哪个牌子质量最好? 洗地机怎么…

# 谷歌 Chrome 浏览器无法安装插件的解决方法

谷歌 Chrome 浏览器无法安装插件的解决方法 运用开发模式安装 安装步骤: 1、 将 XX.crx 插件的扩展名改成 .zip 或者 .rar 并解压到文件夹 XX 目录。 1)如:下载的 前端框架 vue.js 插件 nhdogjmejiglipccpnnnanhbledajbpd-6.6.1-Crx4Chro…

【AGX】Ubuntu20.04 + ROS_ noetic+ 大疆Mid360激光 雷达评测

大家好,我是虎哥,最近组装机器人,使用到了大疆孵化的圳市览沃科技有限公司(简称Livox览沃科技)推出的觅道系列全新混合固态激光雷达Mid-360,顺便试试效果,也记录一下使用入门过程。 "觅道M…

自然语言处理 (NLP) 和文本分析

自然语言处理 (NLP) 和文本分析:NLP 在很多领域都有着广泛的应用,如智能助手、语言翻译、舆情分析等。热门问题包括情感分析、命名实体识别、文本生成等。 让我们一起来详细举例子的分析讲解一下自然语言处理(NLP)和文本分析的应用…

基于java+springboot+vue实现的新闻资讯系统(文末源码+Lw)216

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,文章信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

String2⃣️-string类对象的修改操作

目录 string类对象的修改操作 1.push back ;append;operator 2.assign;insert 3.erase;replace 4.rfind 5.substr 6.c_str 补充 1.reverse(逆置 反转) 2.Sort string类对象的修改操作 1.push back …

【算法刷题 | 贪心算法07】4.29(用最少数量的箭引爆气球、无重叠区间)

文章目录 12.用最少数量的箭引爆气球12.1题目12.2解法:贪心12.2.1贪心思路12.2.2代码实现 13.无重叠区间13.1题目13.2解法:贪心13.2.1贪心思路13.2.2代码实现 12.用最少数量的箭引爆气球 12.1题目 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面…