首页 > 其他分享 >【大数据技术基础 | 实验三】HDFS实验:部署HDFS

【大数据技术基础 | 实验三】HDFS实验:部署HDFS

时间:2024-10-17 12:49:06浏览次数:10  
标签:HDFS 文件 部署 hadoop 实验 user master

在这里插入图片描述

文章目录


一、实验目的

  1. 理解HDFS存在的原因;
  2. 理解HDFS体系架构;
  3. 理解master/slave架构;
  4. 理解为何配置文件里只需指定主服务、无需指定从服务;
  5. 理解为何需要客户端节点;
  6. 学会逐一启动HDFS和统一启动HDFS;
  7. 学会在HDFS中上传文件。

二、实验要求

要求实验结束时,已构建出以下HDFS集群:

  1. master上部署主服务NameNode;
  2. slave1、2上部署从服务DataNode;
  3. master上部署HDFS客户端。

待集群搭建好后,还需在master上进行下述操作:

  1. 在HDFS里新建目录;
  2. 将master上某文件上传至HDFS里刚才新建的目录。

三、实验原理

(一)分布式文件系统

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂。

(二)HDFS

HDFS(Hadoop Distributed File System)为大数据平台其它所有组件提供了基本的存储功能。它具有高容错、高可靠、可扩展、高吞吐率等特征,为大数据存储和处理提供了强大的底层存储架构。

在这里插入图片描述
HDFS是一个主/从(master/slave)体系结构,从最终用户的角度来看,它就像传统的文件系统,可通过目录路径对文件执行CRUD操作。由于其分布式存储的性质,HDFS集群拥有一个NameNode和一些DataNodes,NameNode管理文件系统的元数据,DataNode存储实际的数据。

HDFS开放文件系统的命名空间以便用户以文件形式存储数据,秉承“一次写入、多次读取”的原则。客户端通过NameNode和DataNodes的交互访问文件系统,联系NameNode以获取文件的元数据,而真正的文件I/O操作是直接和DataNode进行交互的。

(三)HDFS基本命令

HDFS基本命令格式如下:

hadoop fs -cmd args
hdfs dfs -cmd args

其中,cmd为具体的操作,args为参数。

部分HDFS命令示例如下:

hadoop fs -mkdir /user/trunk    #建立目录/user/trunk
hadoop fs -ls /user    #查看/user目录下的目录和文件
hadoop fs -lsr /user    #递归查看/user目录下的目录和文件
hadoop fs -put test.txt /user/trunk    #上传test.txt文件至/user/trunk
hadoop fs -get /user/trunk/test.txt    #获取/user/trunk/test.txt文件
hadoop fs -cat /user/trunk/test.txt    #查看/user/trunk/test.txt文件内容
hadoop fs -tail /user/trunk/test.txt    #查看/user/trunk/test.txt文件的最后1000行
hadoop fs -rm /user/trunk/test.txt    #删除/user/trunk/test.txt文件
hadoop fs -help ls    #查看ls命令的帮助文档
hdfs dfs    # 新的命令形式

(四)HDFS适用场景

HDFS提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序,以下是一些常用的应用场景:

  • 数据密集型并行计算:数据量极大,但是计算相对简单的并行处理,如大规模Web信息搜索;
  • 计算密集型并行计算:数据量相对不是很大,但是计算较为复杂的并行计算,如3D建模与渲染、气象预报和科学计算;
  • 数据密集与计算密集混合型的并行计算,如3D电影的渲染。

HDFS在使用过程中有以下限制:

  • HDFS不适合大量小文件的存储,因NameNode将文件系统的元数据存放在内存中,因此存储的文件数目受限于NameNode的内存大小;
  • HDFS适用于高吞吐量,而不适合低时间延迟的访问;
  • 流式读取的方式,不适合多用户写入一个文件(一个文件同时只能被一个客户端写),以及任意位置写入(不支持随机写);
  • HDFS更加适合写入一次,读取多次的应用场景。

四、实验环境

  • 云创大数据实验平台:
    在这里插入图片描述

  • Java 版本:jdk1.7.0_79

  • Hadoop 版本:hadoop-2.7.1

五、实验内容和步骤

部署HDFS主要步骤如下:

  1. 配置Hadoop的安装环境;
  2. 配置Hadoop的配置文件;
  3. 启动HDFS服务;
  4. 验证HDFS服务可用。

(一)在master服务器上确定存在hadoop安装目录

ls /usr/cstor/hadoop

在这里插入图片描述

(二)配置集群服务器之间SSH免密登录

使用ssh工具登录到每一台服务器,执行命令ssh 主机名,确认每台集群服务器均可SSH免密登录。若无法SSH免密登录,请参照如下进行配置。详细配置步骤参考:【大数据技术基础 | 实验一】配置SSH免密登录

(三)修改HDFS配置文件

1. 设置JDK安装目录

实验平台环境的JDK和Hadoop已经安装好了,输入命令:

vim /usr/cstor/hadoop/etc/hadoop/hadoop-env.sh

编辑文件/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh,找到如下一行:

export JAVA_HOME=${JAVA_HOME}

将这行内容修改为:

export JAVA_HOME=/usr/local/jdk1.7.0_79/

在这里插入图片描述

这里的/usr/local/jdk1.7.0_79/就是JDK安装位置,如果不同,请根据实际情况更改。

2. 指定HDFS主节点

输入命令:

vim /usr/cstor/hadoop/etc/hadoop/core-site.xml

编辑文件/usr/cstor/hadoop/etc/hadoop/core-site.xml,将如下内容嵌入此文件里最后两行的标签之间:

<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/cstor/hadoop/cloud</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>

在这里插入图片描述

3. 拷贝集群配置至其它服务器

在master机上执行下列命令,将配置好的hadoop拷贝至slaveX。

cat ~/data/2/machines
for x in `cat ~/data/2/machines` ; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ; done;

在这里插入图片描述

(四)启动HDFS

在master服务器上格式化主节点:

hdfs namenode -format

在这里插入图片描述

配置slaves文件,将localhost修改为slave1~2:

vi /usr/cstor/hadoop/etc/hadoop/slaves

在这里插入图片描述

统一启动HDFS:

cd /usr/cstor/hadoop
sbin/start-dfs.sh

在这里插入图片描述

(五)通过查看进程的方式验证HDFS启动成功

分别在master、slave1~2三台机器上执行如下命令,查看HDFS服务是否已启动。

jps

若启动成功,在master上会看到类似的如下信息:

在这里插入图片描述

而在slave1、slave2上会看到类似的如下信息:

在这里插入图片描述 在这里插入图片描述

(六)使用master上传文件

从master服务器向HDFS上传文件:

hadoop fs -put ~/data/2/machines /

执行命令查看文件是否上传成功:

hadoop fs -ls /

在这里插入图片描述

可以看出,我们上传成功了。

六、实验结果

在本地(需开启 OpenVPN)浏览器中输入master服务器IP地址和端口号:http://10.30.108.17:50070/,即可看到Hadoop的WebUI。此页面包含了Hadoop集群主节点、从节点等各类统计信息。

在这里插入图片描述

七、实验心得

  在进行HDFS部署实验后,我收获了许多宝贵的经验。通过实验,首先加深了对HDFS体系结构和分布式文件系统的理解。实验中我们搭建了一个简单的HDFS集群,包括在master节点上部署NameNode服务,在两个slave节点上部署DataNode服务,并在master上部署HDFS客户端。这使我理解了master/slave架构的实际操作以及各节点如何协同工作。

  实验中,我学会了配置Hadoop环境和文件,了解了如何进行SSH免密登录以便多个节点之间顺畅通信。同时,通过格式化NameNode并启动HDFS集群,我亲自验证了集群的工作状态。在上传文件到HDFS并查看文件上传结果的过程中,我进一步熟悉了HDFS的基本命令操作(如创建目录、上传文件等)。

  整个实验过程让我深刻体会到HDFS高吞吐量、可扩展性和容错性等特点如何支持大数据存储和处理。此外,我也注意到HDFS在处理小文件和低延迟访问方面的局限性,这为未来在实际应用中的优化提供了方向。

  总之,这次实验不仅让我加深了对HDFS原理的理解,还让我掌握了如何部署和操作HDFS系统,为将来处理大规模数据奠定了基础。

:以上文中的数据文件及相关资源下载地址:
链接:https://pan.quark.cn/s/02bd1bf66222
提取码:Cpit

标签:HDFS,文件,部署,hadoop,实验,user,master
From: https://blog.csdn.net/Morse_Chen/article/details/142929098

相关文章

  • openGauss数据库部署实践(华为云开发者云实验)
    前言数据库课程上了解到openGuass数据库,做完云实验发现实验指导手册有些地方不够细致或者已经与实际的操作步骤有所偏差,遂写一篇博客为其他同学学习提供参考。什么是openGuass?openGauss是一款开源关系型数据库管理系统,由华为公司结合多年数据库经验打造,以高性能、高可用性和高......
  • jsp东哈驾校管理系统的设计与实现dy35m(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学员,教练,报名登记,退学登记,练车预约,考试预约,报考信息,报考反馈,成绩信息开题报告内容一、项目背景随着汽车保有量的不断增加,驾驶培训行业迎来了巨大的发......
  • jsp订餐管理系统的设计与实现3v4h1--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,厢房信息,厢房预约,菜品分类,特色美食,员工信息,营业统计开题报告内容一、项目背景随着餐饮行业的数字化转型,订餐管理系统成为提升餐厅运营效率、优化顾......
  • 网上纪念馆(源码+文档+部署+讲解)
    网上纪念馆是成品商业化项目,系统可基于源码二开。系统概述是一款为个人和家族提供线上祭祀、纪念服务的平台,涵盖了纪念馆创建、供奉记录、祭品管理、背景音乐设置等功能,让用户随时随地缅怀先人。详细功能介绍:纪念馆管理:支持创建不同类型的纪念馆(名人纪念馆、普通纪念馆......
  • jsp动物园管理系统的设计与实现zoejc程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表饲养员,后勤人员,动物类型,动物信息,食谱定制,物资信息,物资入库,排班申请,排班申请2,工资信息开题报告内容一、研究背景与意义随着城市化进程的加快和公众对......
  • 电子病历系统(源码+文档+部署+讲解)
    电子病历系统是成品商业化项目,系统可基于源码二开。系统概述系统功能总结患者中心病历模版工作台:提供可自定义的病历模版,方便医生快速生成病历。预约管理:患者可在线预约就诊,系统自动生成预约记录。诊所管理:患者可查询就诊记录、查看诊所信息等。回访管理:系统可对......
  • 售票系统(源码+文档+部署+讲解)
    售票系统是成品商业化项目,系统可基于源码二开。系统概述票务管理系统是一款为游乐园量身定制的综合性管理平台,涵盖了从门票销售、检票管理到财务统计等全流程的业务,旨在提高运营效率,提升游客体验。详细功能介绍:票务管理:支持单票、套票销售,提供手工出票、检票管理等功......
  • 【华三】灵活QinQ配置实验
    【华三】灵活QinQ配置实验QinQ概述QinQ的作用与优点QinQ的报文格式QinQ分类基本QinQ灵活QinQQinQ三个功能VLAN透传功能BPDU透明传输VLANMapping基本QinQ实验实验需求实验拓扑PE设备配置步骤PE1P1PE2CE1CE2PC测试PC1pingPC3PC2pingPC4抓包(P1)QinQ概述QinQ(8......
  • IIS配置——关于WebApi部署在IIS长时间不连接后第一次连接响应慢的问题
    0.服务器信息WindowsServer2019StandardIIS:Version:10.0第一次请求响应慢的原因:默认情况下,应用程序池在不活动情况下(无请求操作),一段时间后,将被IIS自动回收掉。1.修改IIS的下述配置应该程序池-->右键,高级设置-->进程模型,闲置超时(分钟)-->默认是20,设置为0......
  • Redis集群部署(redis主从+哨兵)
    根据项目需要,三台机器搭建一个为redis主从+哨兵的集群,10.10.10.1(举例用的虚拟IP,下同)为主节点,10.10.10.2和10.10.10.3为从节点。1、redis部署准备工作编辑/etc/hosts文件,添加要搭建的三台机器ip跟机器名称)使用hostname查出机器名称。)在三台机器中,加入Redis集群的机器IP及机器......