基本信息
文件名称:Hadoop大数据组件教程.docx
文件大小:743.15 KB
总页数:23 页
更新时间:2025-05-29
总字数:约1.73万字
文档摘要

Hadoop教程

Hadoop是一个开源的分布式计算和存储框架,由Apache基金会开发和维护。

Hadoop为庞大的计算机集群提供可靠的、可伸缩的应用层计算和存储支持,它允许使用简单的编程模型跨计算机群集分布式处理大型数据集,并且支持在单台计算机到几千台计算机之间进行扩展。

Hadoop使用Java开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统(HadoopDFS,HDFS)和MapReduce。

Hadoop历史

2003年和2004年,Google公司先后发表了两篇著名的论文GFS和MapReduce。

这两篇论文和2006年发表的BigTable成为了现在著名的Google三大论文。

DougCutting在受到了这些理论的影响后开始了Hadoop的开发。

Hadoop包含了两大核心组件。在Google的论文中,GFS是一个在庞大的计算机集群中运行的分布式文件系统,在Hadoop中HDFS实现了它的功能。MapReduce是一个分布式计算的方式,Hadoop用同名称的MapReduce框架实现了它的功能。我们会在之后的MapReduce章节中详细介绍它。从2008年开始,Hadoop作为Apache顶级项目存在。它与它的众多子项目广泛应用于包括Yahoo、阿里巴巴、腾讯等大型网络服务企业,并被IBM、Intel、Microsoft等平台公司列为支持对象。

Hadoop的作用

Hadoop的作用非常简单,就是在多计算机集群环境中营造一个统一而稳定的存储和计算环境,并能为其他分布式应用服务提供平台支持。

也就是说,Hadoop在某种程度上将多台计算机组织成了一台计算机(做同一件事),那么HDFS就相当于这台计算机的硬盘,而MapReduce就是这台计算机的CPU控制器。

1、Hadoop运行环境

由于Hadoop是为集群设计的软件,所以我们在学习它的使用时难免会遇到在多台计算机上配置Hadoop的情况,这对于学习者来说会制造诸多障碍,主要有两个:

昂贵的计算机集群。多计算机构成的集群环境需要昂贵的硬件.

难以部署和维护。在众多计算机上部署相同的软件环境是一个大量的工作,而且非常不灵活,难以在环境更改后重新部署。

为了解决这些问题,我们有一个非常成熟的方式?Docker。

Docker是一个容器管理系统,它可以向虚拟机一样运行多个虚拟机(容器),并构成一个集群。因为虚拟机会完整的虚拟出一个计算机来,所以会消耗大量的硬件资源且效率低下,而Docker仅提供一个独立的、可复制的运行环境,实际上容器中所有进程依然在主机上的内核中被执行,因此它的效率几乎和主机上的进程一样(接近100%)。

本教程将会以Docker为底层环境来描述Hadoop的使用,如果你不会使用Docker并且不了解更好的方式,

Docker部署

进入Docker命令行之后,拉取一个Linux镜像作为Hadoop运行的环境,这里推荐使用CentOS镜像(Debian和其它镜像暂时会出现一些问题)。

dockerpullcentos:8

然后通过?dockerimages?命令可以查看到当前本地的镜像:

现在,我们创建一个容器:

dockerrun-dcentos:8/usr/sbin/init

通过?dockerps?可以查看运行中的容器:

我们可以令容器打印出HelloWorld:

到这里说明Docker已经安装并部署成功。

创建容器

Hadoop支持在单个设备上运行,主要有两种模式:单机模式和伪集群模式。

本章讲述Hadoop的安装与单机模式。

配置Java与SSH环境

现在创建一个容器,名为java_ssh_proto,用于配置一个包含Java和SSH的环境:

dockerrun-d--name=java_ssh_proto--privilegedcentos:8/usr/sbin/init

然后进入容器:

dockerexec-itjava_ssh_protobash

配置镜像:

sed-es|^mirrorlist=|#mirrorlist=|g\

-es|^#baseurl=XXXn/centos|g\

-i.bak\

/etc/yum.repos.d/CentOS-Stream-AppStream.repo\

/etc/yum.repos.d/CentOS-Stream-BaseOS.repo