Hadoop 平台实践与环境大数据分析及 Web 云盘系统开发
一、目的
通过本课程学习,使学生系统的学习当前广泛使用的大数据Hadoop平台及其主要组件的作用及使用。本课程总共分3个实验,分别是:Hadoop伪分布式部署、环境大数据、基于Hadoop的Web版云盘。实验设计难易安排合理,贴合实际应用场景,帮助学生在学习理论知识的同时,强化学生对Hadoop主要组件的认知,提高学生的实践能力,掌握相关的数据分析技术,为其他相关课程的学习提供必要的帮助并初步具备利用Hadoop技术进行数据处理与分析的能力。
二、内容
2.1 Hadoop介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它允许用户在不了解分布式底层细节的情况下,开发分布式程序,并充分利用集群的威力进行高速运算和存储。以下是对Hadoop的详细介绍:
一、Hadoop的起源与发展
Hadoop起源于Apache Nutch项目,该项目始于2002年,是Apache Lucene的子项目之一。2004年,Google发表了关于MapReduce的论文后,Doug Cutting等人受到启发,开始尝试实现MapReduce计算框架,并将其与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法。2006年2月,NDFS和MapReduce从Nutch中分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,Hadoop已成为Apache的顶级项目,包含众多子项目,并被广泛应用到众多互联网公司。
二、Hadoop的核心组件
Hadoop主要由三个核心组件构成:HDFS(Hadoop Distributed File System)、MapReduce和YARN(Yet Another Resource Negotiator)。
HDFS:分布式文件系统,用于存储文件,通过目录树来定位文件。具有高容错性和高吞吐量的特点,适合部署在低廉的硬件上,并提供高吞吐量来访问应用程序的数据,适合处理超大数据集的应用程序。
NameNode:存储文件元数据,如文件名、目录结构、文件属性(生成时间、副本数、文件权限)以及每个文件的数据块列表和数据库映射信息等。
DataNode:在本地文件系统存储文件块数据以及块数据的校验和,并执行数据块的读写操作。
Secondary NameNode:定期备份NameNode的元数据,并在紧急情况下辅助恢复NameNode。
MapReduce:分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce将计算过程分为两个阶段:Map和Reduce。Map阶段将输入数据拆分成独立的块,并交由不同的Map任务并行处理;Reduce阶段则对Map的结果进行汇总。
YARN:资源调度平台,负责为运算程序提供服务器运算资源。它管理集群内的硬件资源,如内存、CPU等,并在多个程序同时申请计算资源时提供分配和调度的规则(算法)。YARN不仅支持MapReduce程序,还理论上支持各种计算程序,如Spark、Flink等。
ResourceManager:核心管理服务,负责资源的管理和分配。
NodeManager:管理单个节点上的资源。
ApplicationMaster:负责内部任务的资源申请和分配,以及任务的监控和容错。
Container:容器,封装了任务运行所需要的资源。
三、Hadoop的特点与优势
高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。它假设计算元素和存储会失败,因此维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。通过并发数据,Hadoop可以在节点之间动态并行的移动数据。
高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本:Hadoop是开源的,与一体机、商用数据仓库等数据集市相比,项目的软件成本会大大降低。Hadoop集群允许通过部署普通廉价的集群组成集群来处理大数据。
四、Hadoop的应用场景
Hadoop广泛应用于大数据处理领域,包括但不限于以下几个方面:
数据仓库:Hadoop可以作为数据仓库的基础架构,存储和管理海量数据。
数据挖掘:利用Hadoop的分布式计算能力,可以进行大规模的数据挖掘和分析。
日志分析:Hadoop适合处理大规模的日志数据,如Web日志、系统日志等,帮助企业进行故障排查和性能优化。
机器学习:Hadoop可以支持大规模的机器学习任务,如分类、聚类、回归等。
五、Hadoop的生态系统
Hadoop的生态系统非常庞大,包含了众多与之相关的技术和工具。这些技术和工具与Hadoop相互配合,共同构成了一个完整的大数据处理平台。常见的Hadoop生态系统组件包括:
Hive:基于Hadoop的数据仓库工具,提供了类似SQL的查询语言(HiveQL),方便用户进行数据查询和分析。
HBase:基于Hadoop的分布式、面向列的存储系统,适合处理实时读写和随机访问的场景。
ZooKeeper:为分布式应用提供一致性服务的开源组件,用于维护配置信息、命名、提供分布式同步和组服务等。
Pig:一个用于分析大规模数据集的脚本和查询语言,简化了复杂的数据处理任务。
Sqoop:用于在Hadoop和关系型数据库之间传输数据的工具。
综上所述,Hadoop是一个功能强大、灵活且可扩展的分布式系统基础架构,广泛应用于大数据处理领域。通过不断学习和实践Hadoop及相关技术,我们可以更好地应对大数据时代的挑战和机遇。
2.2 实验步骤
2.2.1 Hadoop伪分布式部署
1. Hadoop介绍
Apache Hadoop是一个允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理的框架。Hadoop能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。
Hadoop生态系统包括HDFS(Hadoop分布式文件系统)、MapReduce、HBase、Zookeeper、Pig、Hive和Sqoop等组件。其中,HDFS是Hadoop生态圈的基本组成部分,MapReduce是Hadoop的主要执行框架。
2. Hadoop伪分布式安装
本次实训采用了Hadoop 2.7.3版本,在Ubuntu 16系统上进行伪分布式部署。伪分布式模式在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、Secondary NameNode等5个进程,模拟分布式运行的各个节点。
安装步骤如下:在/app下创建hadoop目录,下载并解压hadoop安装包。
![]() |
2-2-1
![]() |
2-2-2
设置IP地址与机器名的映射,设置信息:配置主机名对应的IP地址(如在ubuntu用户下,需要使用sudo命令)sudo vim /etc/hosts
设置:<IP地址> <主机名> 例如:10.2.94.8 4d50238365ba hadoop
![]() |
2-2-3
使用ping命令验证设置是否成功
设置操作系统环境
本实验环境已经安装java
![]() |
2-2-4
无密码验证配置
- 开启ssh服务
sudo /etc/init.d/ssh restart

2-2-5
生成密钥对

2-2-6
切换到~/.ssh目录并加入授权

2-2-7
验证ssh连接
ssh localhost(hadoop)无需密码登录

2-2-8
将安装目录
hadoop-2.7.3.改名为hadoop

2-2-9
在hadoop安装目录下创建子目录

2-2-10
设置环境变量,配置hadoop-env.sh、core-site.xml、hdfs-site.xml和mapred-site.xml等文件。
使用source命令编译

2-2-11
![]() |
2-2-12
具体配置内容如下:
core-site.xml:配置Hadoop文件系统的临时目录和NameNode的URI。
hdfs-site.xml:配置NameNode的URI及NameNode和DataNode的存放位置,设置文件块的数据备份个数。

2-2-13

2-2-14

2-2-15

2-2-16
格式化NameNode,启动Hadoop,使用jps检验各后台进程是否成功启动。
2-2-17
3. 测试与验证
运行一个wordcount实例来进一步熟悉Hadoop。当前目录下创建文件并上传文件到HDFS的、adir目录下,内容如下
2-2-18
利用自带jar包实现wordcount功能

2-2-19

2-2-20
2.3环境大数据Hadoop的运行环境需要大数据的支持。在大数据环境下,Hadoop能够处理PB级别的数据,并提供高吞吐量的数据访问和处理能力。本次实训使用的Ubuntu 16系统提供了稳定而高效的操作环境,而Hadoop 2.7.3版本则具备强大的数据处理能力。 在大数据环境下,Hadoop的优势主要体现在以下几个方面: 分布式存储:Hadoop利用HDFS将数据分布在多个节点上,实现了数据的冗余存储和高可用性。 并行处理:Hadoop的MapReduce框架能够将大数据处理任务分解为多个小任务,在多个节点上并行执行,提高了处理效率。 高扩展性:Hadoop能够轻松地从单台服务器扩展到数千台服务器,满足了大数据处理对计算资源和存储资源的需求。 学会进行递归MapReduce,实验要求,要求实验结束时,每位学生均已在服务器上运,行从北京2016年1月到6月这半年间的历史天,气和空气质量数据文件中分析出的环境统计结,果,包含月平均气温、空气质量分布情况等,实验原理,近年来,由于雾霾问题的持续发酵,越来越多,的人开始关注城市相关的环境数据,包括空气,质量数据、天气数据等等。,如果每小时记录一次城市的天气实况和空气质,量实况信息,则每个城市每天都会产生24条环,境数据,全国所有2500多个城市如果均如此,进行记录,那每天产生的数据量将达到6万多,条,每年则会产生2190万条记录,已经可以,称得上环境大数据,对于这些原始监测数据,我们可以根据时间的,维度来进行统计,从而得出与该城市相关的日,度及月度平均气温、空气质量优良及污染天数,等等,从而为研究空气污染物扩散条件提供有,力的数据支持。,本实验中选取了北京2016年1月到6月这半年,间的每小时天气和空气质量数据(未取到数据,的字段填充“N/A"),利用MapReduce来统计月度平均气温和半年内空气质量为优、良、轻度污染、重度 染、和严重污染的天数
打开terminal,在家目录下,下载并查看环境数据文件beijing.txt
将数据文件上传到HDFS 编写月平均气温统计程序
2-3-4
2-3-5 在Eclipse上新建MapReduce项目,命名为TmpStat,在src目录下新建文件 TmpStat.java,并键入代码。
2-3-6
2-3-7 使用Eclipse软件将AqiStatDaily项目导出成Jar文件,指定主类为AqiStatDaily, 命名为aqistatdaily.jar,并保存在家目录下。
2-3-9
2-3-10
2-3-11 查看各空气质量天数统计结果 在家目录下执行aqistat.jar,指定输出目录为/aqioutput,reducer数量为1。
2-3-12 新建Mapreduce项目,使用Eclipse软件将AqiStat项目导出成Jar文件,指定主类 为AqiStatDaily,命名为aqistatDaily.jar,并保存至家目录下。
2-3-13
2-3-14 查看统计结果文件
2-3-15 结果文件被分成了3个部分,依次查看可看到每天的空气质量统计结果数据 将每日空气质量统计结果保存到aqidaily.txt
2-3-16
2-3-17
2-3-18 家目录执行aqistat.jar指定输出目录为/aqioutput,reducer数量为1
2-3-19 2.4基于Hadoop的Web版的云盘本次实训基于Hadoop构建了一个Web版的云盘系统。该系统利用Hadoop的分布式存储和并行处理能力,实现了文件的上传、下载、删除和查看等功能。 实训步骤如下: 在Hadoop集群上搭建Web服务器,并配置Tomcat等应用服务器。 开发Web前端页面,实现文件的上传、下载、删除和查看等功能。 开发后端处理程序,将文件存储在HDFS上,并处理文件的访问请求。 配置Hadoop的相关参数,确保云盘系统的稳定运行。 打开桌面terminal,在家目录下,下载项目,并解压缩
2-4-1
2-4-2 检查是否再次启动hadoop
2-4-3 打开idea导入项目clouddisk
2-4-4 选择clouddisk项目的pom.xml加载
2-4-5 修改application.properties文件下的ip为localhost: 8020
2-4-6 修改hadoop用户为ubuntu,共五处。
2-4-7 右键运行
2-4-8 看到如下截图访问页面localhost:9090
2-4-9
|
||||||||||||

2-2-20
更多推荐












































所有评论(0)