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

文章目录

  • 大数据技术基础实验三:HDFS实验——部署HDFS
    • 一、前言
    • 二、实验要求
    • 三、实验原理
      • 1、什么是HDFS?
      • 2、HDFS的体系结构
      • 3、HDFS基本命令
    • 四、实验步骤
      • 1、完成集群各服务器之间的ssh免密登录配置
      • 2、在master服务器上确定存在hadoop安装目录
      • 3、修改HDFS配置文件
      • 4、启动HDFS
      • 5、通过查看进程的方式验证HDFS启动成功
      • 6、 使用master上传文件
    • 五、最后我想说

一、前言

前面通过大数据技术基础实验的学习,我们学会了如何使用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. 大数据技术基础实验十三:Kafka实验——订阅推送示例

    大数据技术基础实验十三:Kafka实验--订阅推送示例 文章目录 大数据技术基础实验十三:Kafka实验--订阅推送示例 一.前言 二.实验目的 三.实验要求 四.实验原理 1.Kafka简介 2.K ...

  2. 大数据技术基础综合项目——牛客网招聘岗位统计分析

    大数据技术基础综合项目--牛客网招聘岗位统计分析 文章目录 大数据技术基础综合项目--牛客网招聘岗位统计分析 零.实验环境说明 一.数据集来源及说明 二.数据预处理阶段 2.1 删除空行的数据 2.2 ...

  3. 大数据技术基础_【基础】大数据技术栈介绍

    大数据技术的体系庞大且复杂,基础的技术包含数据的采集.数据预处理.分布式存储.NoSQL数据库.数据仓库.机器学习.并行计算.可视化等各种技术范畴和不同的技术层面. 首先给出一个通用化的大数据处理框架 ...

  4. 大数据技术基础(一)

    每个软件工程师都应该懂大数据技术 软件编程技术出现已经半个多世纪了,核心价值就是把现实世界的业务操作搬到计算机上,通过计算机软件和网络进行业务和数据处理. 我们常见的软件系统,不管是电子商务还是库存管 ...

  5. 大数据技术基础笔记1 大数据概述

    文章目录 1.1 大数据时代 1.2 大数据概念 1.3 大数据的影响 1.4 大数据的应用 1.5 大数据关键技术 1.6 大数据计算模式 1.7 大数据产业 1.8 大数据与云计算.物联网的关系 ...

  6. 大数据产品开发流程规范_大数据技术思想入门(三):分布式文件存储的流程

    如果你不喜欢阅读文字的话,可以选择滑到最后看 视频讲解 哟~~~ 进程和 RPC 在上一篇文章中,我们讲解了要解决好大数据集的存储问题,需要引入一个主从结构的集群,其中,主服务器用于存储元数据,从服务 ...

  7. 大数据技术基础笔记3 分布式文件系统HDFS

    文章目录 3.1 分布式文件系统 3.2 HDFS简介 3.3 HDFS相关概念 3.4 HDFS体系结构 3.5 HDFS存储原理 3.6 HDFS数据读写过程 3.7 HDFS编程实践 3.1 分 ...

  8. Python大数据分析(二):大数据技术基础

    文章目录 (一)Linux系统和大数据 (二)Hadoop (1)Hadoop包含哪些模块? (2)Hadoop的生态成员 (3)哪些人在使用Hadoop? (三)Spark (1)Scala (2) ...

  9. 大数据技术基础_网易大数据体系之时序数据技术

    分享嘉宾:范欣欣 网易大数据技术专家 编辑整理:王吉东 内容来源:AI科学前沿大会 出品社区:DataFun 注:欢迎转载,转载请注明出处. 本次分享内容: 时序数据平台主要业务场景 时序数据平台体系 ...

最新文章

  1. webbench网络压力测试源码
  2. bom头解释方法和去掉方法
  3. Java ---- 序列化
  4. 关于后缀自动机的总结
  5. python3源码精要(1)-C源代码取得与基本特征
  6. meta http-equiv=X-UA-Compatible content=IE=7 /意思是将IE8用IE7进行渲染,使网页在IE8下正常...
  7. C 的CList,CPtrList,CObList,CStringList 用法之CPtrList
  8. 健康饮食五谷杂粮系列PPT模板
  9. 邻接矩阵实现图的深度优先搜索(1)
  10. matplotlib plt.subplot
  11. spring mvc学习(40):restful的crud实现增加方式
  12. Java笔记-使用RabbitMQ的Java接口实现Publish/Subscribe(订阅模式)
  13. Opencv--从CalibrateCamera到SolvePnp(一)
  14. ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件
  15. Vue-Cli4笔记
  16. FCC 基础JavaScript 练习6
  17. 【Django】实现文件下载
  18. 拍乐云基于AV1的实时视频系统技术实践 | 2021 LiveVideoStackCon 演讲回顾
  19. windows下IOS证书制作,IOS证书在线制作
  20. 基于蒙特卡诺的风场景模型出力(Matlab代码实现)

热门文章

  1. ORA-01555 caused by SQL statement below SQL ID: 9ggx5zvjkgd1t
  2. “海大与我“ Scrum Meeting(第十一周会议记录)
  3. DataTable 插件 Uncaught TypeError: Cannot read property ‘top‘ of undefined
  4. 做自媒体视频剪辑10大技巧分享
  5. 第三周--AEM汇编语言编程入门
  6. 【android】音乐播放器之UI设计的点点滴滴
  7. 矩形面积和矩形周长并的模板——来自notonlysuccess
  8. 寄生虫程序php版价格_php动态寄生虫程序(附带asp.php劫持),
  9. 《高等工程数学》试题卷二(第二部分,每个题型3道例题,AI出题)
  10. 今天牛顿忌日:他留下了什么手稿 | 直播预告