草庐IT

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

-北天- 2023-04-20 原文

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

文章目录

一、前言

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

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

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

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

二、实验要求

实验结束时,已构建出以下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采用了典型的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/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命令的帮助文档

四、实验步骤

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

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

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

我放一下截图:

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

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

ls /usr/cstor/hadoop

3、修改HDFS配置文件

(1)设置JDK安装目录

输入命令:

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

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

(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

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

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

[2020122145 root@master ~]# cat ~/data/2/machines
slave1
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% 4436     4.6MB/s   00:00
configuration.xsl                                    100% 1335   277.1KB/s   00:00
container-executor.cfg                               100%  318   500.2KB/s   00:00
hadoop-env.cmd                                       100% 3670     4.6MB/s   00:00
hadoop-metrics.properties                            100% 2490     1.1MB/s   00:00
hadoop-metrics2.properties                           100% 2598     4.7MB/s   00:00
hadoop-policy.xml                                    100% 9683    10.6MB/s   00:00
hdfs-site.xml                                        100%  775     1.7MB/s   00:00
httpfs-env.sh                                        100% 1449     2.6MB/s   00:00
httpfs-log4j.properties                              100% 1657     3.2MB/s   00:00
httpfs-signature.secret                              100%   21    47.0KB/s   00:00
httpfs-site.xml                                      100%  620     1.4MB/s   00:00
kms-acls.xml                                         100% 3518     5.8MB/s   00:00
kms-env.sh                                           100% 1527     3.0MB/s   00:00
kms-log4j.properties                                 100% 1631     3.2MB/s   00:00
kms-site.xml                                         100% 5511     7.7MB/s   00:00
log4j.properties                                     100%   11KB  13.9MB/s   00:00
mapred-env.cmd                                       100%  951     1.8MB/s   00:00
mapred-env.sh                                        100% 1383     2.8MB/s   00:00
mapred-queues.xml.template                           100% 4113     6.9MB/s   00:00
mapred-site.xml.template                             100%  758     1.4MB/s   00:00
slaves                                               100%   10    23.1KB/s   00:00
ssl-client.xml.example                               100% 2316     4.5MB/s   00:00
ssl-server.xml.example                               100% 2268     4.4MB/s   00:00
yarn-env.cmd                                         100% 2250     3.9MB/s   00:00
yarn-env.sh                                          100% 4567     7.6MB/s   00:00
yarn-site.xml                                        100%  690     1.5MB/s   00:00
hadoop-env.sh                                        100% 4235     7.2MB/s   00:00
core-site.xml                                        100%  955     1.6MB/s   00:00
slave2
Warning: Permanently added 'slave2' (ECDSA) to the list of known hosts.
capacity-scheduler.xml                               100% 4436     5.9MB/s   00:00
configuration.xsl                                    100% 1335   408.2KB/s   00:00
container-executor.cfg                               100%  318   872.8KB/s   00:00
hadoop-env.cmd                                       100% 3670     6.1MB/s   00:00
hadoop-metrics.properties                            100% 2490     1.0MB/s   00:00
hadoop-metrics2.properties                           100% 2598     6.1MB/s   00:00
hadoop-policy.xml                                    100% 9683    13.8MB/s   00:00
hdfs-site.xml                                        100%  775     2.0MB/s   00:00
httpfs-env.sh                                        100% 1449     3.6MB/s   00:00
httpfs-log4j.properties                              100% 1657     4.2MB/s   00:00
httpfs-signature.secret                              100%   21    58.4KB/s   00:00
httpfs-site.xml                                      100%  620     1.7MB/s   00:00
kms-acls.xml                                         100% 3518     7.8MB/s   00:00
kms-env.sh                                           100% 1527     3.8MB/s   00:00
kms-log4j.properties                                 100% 1631     4.2MB/s   00:00
kms-site.xml                                         100% 5511    10.8MB/s   00:00
log4j.properties                                     100%   11KB  16.5MB/s   00:00
mapred-env.cmd                                       100%  951     2.5MB/s   00:00
mapred-env.sh                                        100% 1383     3.6MB/s   00:00
mapred-queues.xml.template                           100% 4113     8.6MB/s   00:00
mapred-site.xml.template                             100%  758     2.1MB/s   00:00
slaves                                               100%   10    29.7KB/s   00:00
ssl-client.xml.example                               100% 2316     5.6MB/s   00:00
ssl-server.xml.example                               100% 2268     5.6MB/s   00:00
yarn-env.cmd                                         100% 2250     5.5MB/s   00:00
yarn-env.sh                                          100% 4567     9.1MB/s   00:00
yarn-site.xml                                        100%  690     1.9MB/s   00:00
hadoop-env.sh                                        100% 4235     7.1MB/s   00:00
core-site.xml                                        100%  955     1.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 ~]#

4、启动HDFS

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

hdfs namenode -format

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

输入命令:

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

进入slavers文件修改成如下:

(3)统一启动HDFS

输入命令:

cd /usr/cstor/hadoop

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

sbin/start-dfs.sh

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

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

jps	

jps是查看java进程的命令。

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

6、 使用master上传文件

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

输入如下命令:

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

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

hadoop fs -ls /

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

五、最后我想说

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

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

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

有关大数据技术基础实验三:HDFS实验——部署HDFS的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  3. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  4. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  5. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  6. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  9. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  10. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

随机推荐