大数据技术基础实验三:HDFS实验——部署HDFS

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据技术基础实验三,学习如何在虚拟机群部署HDFS并设置一键启动。

一、前言

前面通过大数据技术基础实验的学习,我们学会了如何使用Xshell连接学校虚拟机并且学会如何配置各虚拟机之间的SSH免密登录,然后还练习了有关Linux的一些基础命令。

本期内容,我们将学习大数据组件其中一个组件——HDFS的环境搭建,这是后面进行各种实验操作的基础。

然后本期实验我们将使用MobaXterm软件进行终端远程连接操作,大部分的都使用的是Xshell操作,这次我们试一下新软件进行操作,你可以直接点击上方软件名称跳转到它的官网下载,在这里我就不对它进行介绍了,顺便说一句,官网下载的是英文版,如果有需要中文版的朋友留下你们的邮箱,我可以发给你们。

image-20220913205227355.png

这里我已经连接好了学校的三台虚拟机,接下来我们开始实验吧!

二、实验要求

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

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

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

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

三、实验原理

1、什么是HDFS?

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

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

2、HDFS的体系结构

HDFS体系结构.jpg

HDFS采用了典型的Master/Slave系统架构一个HDFS集群通常包含一个NameNode节点和若干个DataNodes节点,一个文件被分成了一个或多个数据块,并存储在一组DataNode上,DataNode节点可分布在不同的机架。NameNode执行文件系统的名字空间打开、关闭、重命名文件或目录等操作,同时负责管理数据块到具体DataNode节点的映射。在NameNode的统一调度下,DataNode复制处理文件系统客户端的读写请求,完成数据库的创建、删除和复制。

3、HDFS基本命令

HDFS基本命令格式:hadoop fs -cmd args,其中,cmd为具体的操作,args为参数。

部分HDFS命令示例如下:

hadoop fs -mkdir /user/trunk          #建立目录/user/trunkhadoop fs -ls /user                  #查看/user目录下的目录和文件hadoop fs -lsr /user                 #递归查看/user目录下的目录和文件hadoop fs -put test.txt /user/trunk      #上传test.txt文件至/user/trunkhadoop 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 -helpls#查看ls命令的帮助文档

四、实验步骤

1、完成集群各服务器之间的ssh免密登录配置

第一个步骤我就不再演示了,不会的朋友可以移步到我之前的博客,里面有详细的配置步骤,链接我就放在下面了:

大数据技术基础实验一:配置SSH免密登录

我放一下截图:

image-20220913213105560.png

image-20220913213121955.png

image-20220913213129725.png

2、在master服务器上确定存在hadoop安装目录

在master服务器终端输入命令:

ls /usr/cstor/hadoop

image-20220913213437740.png

3、修改HDFS配置文件

(1)设置JDK安装目录

输入命令:

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

打开hadoop-env.sh文件并进行编辑修改,添加JDK的安装路径。

image-20220913214036156.png

(2)指定HDFS主节点

输入命令:

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

打开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

image-20220913214611036.png

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

在master机上执行下列命令,将配置好的hadoop拷贝到其他服务器上。

[2020122145 root@master ~]# cat ~/data/2/machinesslave1
slave2
slave3
client
[2020122145 root@master ~]# for  x  in  `cat  ~/data/2/machines` ; do  echo  $x ; scp  -r  /usr/cstor/hadoop/etc  $x:/usr/cstor/hadoop  ; done;slave1
Warning: Permanently added 'slave1' (ECDSA) to the list of known hosts.
capacity-scheduler.xml                               100% 44364.6MB/s   00:00
configuration.xsl                                    100% 1335277.1KB/s   00:00
container-executor.cfg                               100%  318500.2KB/s   00:00
hadoop-env.cmd                                       100% 36704.6MB/s   00:00
hadoop-metrics.properties                            100% 24901.1MB/s   00:00
hadoop-metrics2.properties                           100% 25984.7MB/s   00:00
hadoop-policy.xml                                    100% 968310.6MB/s   00:00
hdfs-site.xml                                        100%  7751.7MB/s   00:00
httpfs-env.sh                                        100% 14492.6MB/s   00:00
httpfs-log4j.properties                              100% 16573.2MB/s   00:00
httpfs-signature.secret                              100%   2147.0KB/s   00:00
httpfs-site.xml                                      100%  6201.4MB/s   00:00
kms-acls.xml                                         100% 35185.8MB/s   00:00
kms-env.sh                                           100% 15273.0MB/s   00:00
kms-log4j.properties                                 100% 16313.2MB/s   00:00
kms-site.xml                                         100% 55117.7MB/s   00:00
log4j.properties                                     100%   11KB  13.9MB/s   00:00
mapred-env.cmd                                       100%  9511.8MB/s   00:00
mapred-env.sh                                        100% 13832.8MB/s   00:00
mapred-queues.xml.template                           100% 41136.9MB/s   00:00
mapred-site.xml.template                             100%  7581.4MB/s   00:00
slaves                                               100%   1023.1KB/s   00:00
ssl-client.xml.example                               100% 23164.5MB/s   00:00
ssl-server.xml.example                               100% 22684.4MB/s   00:00
yarn-env.cmd                                         100% 22503.9MB/s   00:00
yarn-env.sh                                          100% 45677.6MB/s   00:00
yarn-site.xml                                        100%  6901.5MB/s   00:00
hadoop-env.sh                                        100% 42357.2MB/s   00:00
core-site.xml                                        100%  9551.6MB/s   00:00
slave2
Warning: Permanently added 'slave2' (ECDSA) to the list of known hosts.
capacity-scheduler.xml                               100% 44365.9MB/s   00:00
configuration.xsl                                    100% 1335408.2KB/s   00:00
container-executor.cfg                               100%  318872.8KB/s   00:00
hadoop-env.cmd                                       100% 36706.1MB/s   00:00
hadoop-metrics.properties                            100% 24901.0MB/s   00:00
hadoop-metrics2.properties                           100% 25986.1MB/s   00:00
hadoop-policy.xml                                    100% 968313.8MB/s   00:00
hdfs-site.xml                                        100%  7752.0MB/s   00:00
httpfs-env.sh                                        100% 14493.6MB/s   00:00
httpfs-log4j.properties                              100% 16574.2MB/s   00:00
httpfs-signature.secret                              100%   2158.4KB/s   00:00
httpfs-site.xml                                      100%  6201.7MB/s   00:00
kms-acls.xml                                         100% 35187.8MB/s   00:00
kms-env.sh                                           100% 15273.8MB/s   00:00
kms-log4j.properties                                 100% 16314.2MB/s   00:00
kms-site.xml                                         100% 551110.8MB/s   00:00
log4j.properties                                     100%   11KB  16.5MB/s   00:00
mapred-env.cmd                                       100%  9512.5MB/s   00:00
mapred-env.sh                                        100% 13833.6MB/s   00:00
mapred-queues.xml.template                           100% 41138.6MB/s   00:00
mapred-site.xml.template                             100%  7582.1MB/s   00:00
slaves                                               100%   1029.7KB/s   00:00
ssl-client.xml.example                               100% 23165.6MB/s   00:00
ssl-server.xml.example                               100% 22685.6MB/s   00:00
yarn-env.cmd                                         100% 22505.5MB/s   00:00
yarn-env.sh                                          100% 45679.1MB/s   00:00
yarn-site.xml                                        100%  6901.9MB/s   00:00
hadoop-env.sh                                        100% 42357.1MB/s   00:00
core-site.xml                                        100%  9551.7MB/s   00:00
slave3
ssh: Could not resolve hostname slave3: Name or service not known
lost connection
client
ssh: Could not resolve hostname client: Name or service not known
lost connection
[2020122145 root@master ~]#

image-20220913215602920.png

4、启动HDFS

(1)首先在master服务器上格式化主节点,输入命令:

hdfs namenode -format

image-20220913220209089.png

(2)然后配置slaves文件,将localhost修改为slave1和slave2。

输入命令:

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

进入slavers文件修改成如下:

image-20220913220511006.png

(3)统一启动HDFS

输入命令:

cd /usr/cstor/hadoop

进去hadoop文件然后执行如下命令启动HDFS:

sbin/start-dfs.sh

image-20220913220945286.png

5、通过查看进程的方式验证HDFS启动成功

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

jps

jps是查看java进程的命令。

image-20220913221219130.png


image-20220913221236942.png

image-20220913221300370.png

如果三台虚拟机分别出现上面结果就说明HDFS服务启动成功了。

6、 使用master上传文件

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

输入如下命令:

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

然后我们执行命令查看文件是否上传成功:

hadoop fs -ls /

image-20220913222454339.png

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

五、最后我想说

到这里,我们已经完成了本次实验了,希望大家都能顺利地成功完成本次实验目标并从中学到很多知识。

学校提供的大数据实验平台上面有很多实验,我们的课程肯定不会全部都做完只会做其中的一部分,我后续也会尽可能抽出时间把所有有关大数据的实验都做一遍。

谢谢阅读,期待得到你们的支持!

目录
相关文章
|
15天前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
69 4
|
2月前
|
存储 分布式计算 Hadoop
Hadoop框架解析:大数据处理的核心技术
组件是对数据和方法的封装,从用户角度看是实现特定功能的独立黑盒子,能够有效完成任务。组件,也常被称作封装体,是对数据和方法的简洁封装形式。从用户的角度来看,它就像是一个实现了特定功能的黑盒子,具备输入和输出接口,能够独立完成某些任务。
|
3月前
|
资源调度 安全 Java
Java 大数据在智能教育在线实验室设备管理与实验资源优化配置中的应用实践
本文探讨Java大数据技术在智能教育在线实验室设备管理与资源优化中的应用。通过统一接入异构设备、构建四层实时处理管道及安全防护双体系,显著提升设备利用率与实验效率。某“双一流”高校实践显示,设备利用率从41%升至89%,等待时间缩短78%。该方案降低管理成本,为教育数字化转型提供技术支持。
84 1
|
20天前
|
SQL 分布式计算 大数据
我与ODPS的十年技术共生之路
ODPS十年相伴,从初识的分布式计算到共生进化,突破架构边界,推动数据价值深挖。其湖仓一体、隐私计算与Serverless能力,助力企业降本增效,赋能政务与商业场景,成为数字化转型的“数字神经系统”。
|
2月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
2月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
2月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
4月前
|
人工智能 分布式计算 大数据
MCP、MaxFrame与大数据技术全景解析
本文介绍了 MCP 协议、MaxFrame 分布式计算框架以及大数据基础设施建设的相关内容。MCP(Model Context Protocol)是一种开源协议,旨在解决 AI 大模型与外部数据源及工具的集成问题,被比喻为大模型的“USB 接口”,通过统一交互方式降低开发复杂度。其核心架构包括 Client、Server、Tool 和 Schema 四个关键概念,并在百炼平台中得到实践应用。MaxFrame 是基于 Python 的高性能分布式计算引擎,支持多模态数据处理与 AI 集成,结合 MaxCompute 提供端到端的数据处理能力。
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
Java 大视界 -- Java 大数据在智慧文旅虚拟场景构建与沉浸式体验增强中的技术支撑(168)
本文围绕 Java 大数据在智慧文旅领域的应用展开,系统阐述了数据采集、3D 建模、游客行为分析等核心技术的原理与实现,结合实际案例,全方位展示了 Java 大数据在推动智慧文旅发展中的显著价值。