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美元。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端请求没问题,后端正常运行,但查不出数据

写代码时写得快了些,Orders.的订单状态写错了CONFIRMED 改成COMPLETED

python自动化操作docx

使用Python自动化处理Word文档 在日常工作中,我们经常需要处理大量的Word文档,这时自动化脚本就显得尤为重要。本文将介绍如何使用Python中的python-docx库来创建和修改Word文档。 安装python-docx库 在开始之前,确保你已经安装了python-d…

手搓数组栈(C语言)

stack.h #pragma once#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <stdbool.h> // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top; // 栈顶int capacity; // 容量 }Stack; //…

ping命令操作记录

1&#xff0c;ping 主机可查看主机是否在线 2&#xff0c;ping -a参数&#xff0c;解析主机的名称 3&#xff0c;ping -r 跟踪打印路由信息 ping命令的作用&#xff1a;确认目标主机是否存活&#xff0c;确定网络是否畅通 ping的原理&#xff1a;ping发送ICMP&#xff08;互联…

数据库(MySQL)—— 数据类型

数据库&#xff08;MySQL&#xff09;—— 数据类型 MySQL中的数据类型数值类型字符串类型时间戳类型 一个实例 我们今天来看MySQL中的数据类型&#xff1a; MySQL中的数据类型 MySQL中的数据类型有很多&#xff0c;主要分为三类&#xff1a;数值类型、字符串类型、日期时间类…

SpringBoot实现图片上传(个人头像的修改)

SpringBootlayui实现个人信息头像的更改 该文章适合对SpringBoot&#xff0c;Thymeleaf&#xff0c;layui入门的小伙伴 废话不多说&#xff0c;直接上干货 Springbootlayui实现头像更换 前端公共部分代码 HTML页面代码 <div class"layui-card-header" style&quo…

远程桌面的端口配置与优化

在现代企业环境中&#xff0c;远程桌面连接已成为日常工作中不可或缺的一部分。然而&#xff0c;随着网络攻击的增加&#xff0c;确保远程桌面连接的安全性变得尤为重要。其中一个关键的安全因素是端口配置。 一、远程桌面默认端口 远程桌面协议&#xff08;RDP&#xff09;默…

【可视化3D卷积计算过程】

目录 1. 可视化过程2. 代码验证 前言&#xff1a;开始处理视频数据&#xff0c;遇到了陌生又熟悉的3D卷积&#xff0c;但对其计算过程有点疑惑&#xff0c;网上也没找到什么可视化动画&#xff0c;所以研究明白并做个记录&#xff0c;方便日后复习。有点简化&#xff0c;但认真…

uni-app - 使用地图功能打包安卓apk的完美流程以及重要的注意事项(带您一次打包成功)

在移动应用开发中&#xff0c;地图功能是一个非常常见且实用的功能&#xff0c;可以帮助用户快速定位并浏览周边信息。而在uni-app开发中&#xff0c;使用地图功能也是一项必备技能。本文将介绍uni-app使用地图功能打包安卓apk的注意事项&#xff0c;帮助开发者顺利完成地图功能…

Linux中ssh登录协议

目录 一.ssh基础 1.ssh协议介绍 2.ssh协议的优点 3.ssh文件位置 二.ssh原理 1.公钥传输原理&#xff08;首次连接&#xff09; 2.ssh加密通讯原理 &#xff08;1&#xff09;对称加密 &#xff08;2&#xff09;非对称加密 3.远程登录 三.服务端的配置 常用的配置项…

QT程序通过GPIB-USB-HS转接线控制数字万用表

1、硬件准备 1.1、数字万用表 型号 &#xff1a;Agilent 34401A 前面图示&#xff1a; 后面图示&#xff1a;有GPIB接口 1.2、GPIB-USB-HS转接线 2、GPIB协议基础了解 2.1、引脚 8条数据线&#xff1a;DIO1 ~ DIO8 5条管理线&#xff1a;IFC、ATN、REN、EOI、SRQ 3条交握线…

“星光不问赶路人,时光不负有心人”

五一假期来临之际&#xff0c;开放签电子签章团队祝大家劳动节快乐&#xff01;愿这个五一小长假带给你轻松愉悦的心情&#xff0c;工作之余享受生活的美好。愿你的每一分努力都有回报&#xff0c;每一个梦想都逐渐实现。休息是为了走更长远的路&#xff0c;愿你假期归来&#…