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

在这里插入图片描述

文章目录

    • 一、实验目的
    • 二、实验要求
    • 三、实验原理
      • (一)分布式文件系统
      • (二)HDFS
      • (三)HDFS基本命令
      • (四)HDFS适用场景
    • 四、实验环境
    • 五、实验内容和步骤
      • (一)在master服务器上确定存在hadoop安装目录
      • (二)配置集群服务器之间SSH免密登录
      • (三)修改HDFS配置文件
      • (四)启动HDFS
      • (五)通过查看进程的方式验证HDFS启动成功
      • (六)使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优阅达携手 Theobald 亮相新加坡科技周,助力企业 SAP 数据集成与应用

针对不同用户需求量身定制解决方案&#xff0c;帮助企业轻松应对从数据提取到分析、从开发到流程管理的 SAP 数据挑战。 上周&#xff0c;2024 新加坡科技周在滨海湾金沙会议展览中心圆满落幕。在为期两天的活动中&#xff0c;七大专题展览同时进行&#xff0c;超过 2,000 家…

【解决】webstrom uniapp rpx格式化空格 报错飘红

解决办法 1、安装 wechat mini program support 插件 2. 设置 wechat mini program 里小程序支持选为启用 3. 重新格式化显示正常&#xff0c;也不飘红了 注意要style开启scss支持lang"scss"&#xff0c;否则也会飘红报错 <style lang"scss"><…

『Mysql集群』Mysql高可用集群之读写分离(二)

前言 主从复制: 解决了Mysql的单点故障问题以及提高MySQL的整体服务性能. 读写分离: 解决的是数据库的读性能问题,分担主库的压力&#xff0c;提高系统的可用性和稳定性。 分库分表: 数据库分表可以解决单表海量数据的查询性能问题&#xff0c;分库可以解决单台数据库的并发…

mysql数据迁移到elasticsearch以及elasticsearch的使用

目录 根据数据不断调整架构安装elasticsearch 版本8.12.2kibana安装ik分词分词的拓展以及停用 springboot实战pom.xmlapplication.yml相关配置框架集成-SpringData-集成测试-文档操作 相关代码调整 随着物联网平台的不断发展&#xff0c;平台要求接入的模块会越来越多&#xff…

Qt 实现动态时钟

1.实现效果 2.widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace

hackmyvm-Hundred靶机

主机发现 sudo arp-scan -l 以sudo权限执行arp-scan -l 扫描并列出本地存在的机器&#xff0c;发现靶机ip为192.168.91.153 nmap扫描 端口发现 21/tcp open ftp 22/tcp open ssh 80/tcp open http web信息收集 我们先尝试一下ftp端口的匿名登录 FTP:是文件传输协议的端…

JAVA 中的克隆对象

克隆对象就是复制一个一模一样的对象&#xff0c;但是复制出来的对象和原对象不是同一个对象&#xff0c;是两个对象&#xff0c;只不过复制过来的对象和原对象除了内存地址之外&#xff0c;其它的属性一模一样。 在超类 Object 中有一个 clone() 方法&#xff1a; protected…

循序渐进丨MogDB 中 gs_dump 数据库导出工具源码概览

背景 gs_dump 是 MogDB 中一个功能丰富灵活的数据库导出工具&#xff0c;在数据库的维护、迁移和开发中经常使用。该工具允许用户根据需要导出整个数据库或者数据库中的特定对象&#xff0c;如模式&#xff08;schema&#xff09;、表&#xff08;tables&#xff09;、视图&am…

grafana version 11.1.0 设置Y轴刻度为1

grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0&#xff0c;确保只显示整数

Java基础12-特殊文件和日志技术

十二、特殊文件和日志技术 1、特殊文件 properties&#xff1a;用来存储键值对数据。 xml&#xff1a;用来存储有关系的数据。 1.1 properties文件 特点&#xff1a;存储键值对&#xff0c;键不能重复&#xff0c;文件后缀一般是.properties结尾的。 properties&#xff1a;是…

自定义注解和组件扫描在Spring Boot中动态注册Bean(一)

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 在Spring Boot中&#xff0c;自定义注解和组件扫描是两种强大的机制&#xff0c;它们允许开发者以声明性的方式动态注册Bean。这种方式不仅提高了代码的可读性和可维护性&#xff0c;还使得Spring Boot应用的…

UPDATE 更新数据

1.更新某一列字段的值 以 teacher 表为例&#xff0c;需要把前 3 条数据的 age 更新为 33&#xff0c;命令如下: UPDATE teacher SET age18,id_number44444444440604099X WHERE id 30;执行结果如下图 : 这里是对 age 字段列的前三条值进行数据的更新&#xff0c;注意更新…

网络安全有关法律法规

1. 前言 在当今数字化高速发展的时代&#xff0c;网络安全已成为关乎国家、企业和个人的重要议题。为了应对日益复杂的网络安全挑战&#xff0c;一系列网络安全法律法规应运而生&#xff0c;它们如同坚实的盾牌&#xff0c;守护着我们的数字世界。现在是2024年10月&#xff0c…

EM算法学习

1.EM算法的介绍 可以发现&#xff1a;计算出θA和θB的值的前提是知道A、B币种的抛掷情况。 所以我们需要使用EM算法&#xff1a;求出每轮选择硬币种类的概率 2.EM算法执行过程&#xff1a; 第一步&#xff1a;首先初始化设置一组PA和PB证明的值。然后通过最大似然估计得到每…

MOE论文详解(3)-Switch Transformers

Switch Transformers也是google在2022年发表的一篇论文, 该论文简化了MoE的路由算法, 减少了计算量和通信量; 第一次支持bfloat16精度进行训练. 基于T5-Base和T5-Large设计的模型在相同的算力下训练速度提升了7x倍; 同时发布了1.6万亿(1.6 trillion)参数的MoE模型&#xff0c;相…

Linux系统:Ubuntu上安装Chrome浏览器

Ubuntu系统版本&#xff1a;23.04 在Ubuntu系统上安装Google Chrome浏览器&#xff0c;可以通过以下步骤进行&#xff1a; 终端输入以下命令&#xff0c;先更新软件源&#xff1a; sudo apt update 或 sudo apt upgrade终端输入以下命令&#xff0c;下载最新的Google Chrome .…

多机编队—(3)Fast_planner无人机模型替换为Turtlebot3模型实现无地图的轨迹规划

文章目录 前言一、模型替换二、Riz可视化三、坐标变换四、轨迹规划最后 前言 前段时间已经成功将Fast_planner配置到ubuntu机器人中&#xff0c;这段时间将Fast_planner中的无人机模型替换为了Turtlebot3_waffle模型&#xff0c;机器人识别到环境中的三维障碍物信息&#xff0…

5 首页框架及路由配置

1 添加首页LayoutVue.vue组件&#xff0c;登录成功之后跳转到该组件 <script setup> import {Management,Promotion,UserFilled,User,Crop,EditPen,SwitchButton,CaretBottom } from element-plus/icons-vue import avatar from /assets/default.png// 导入ref import {…

GitLab 老旧版本如何升级?

极狐GitLab 正式对外推出 GitLab 专业升级服务 https://dl.gitlab.cn/cm33bsfv&#xff01; 专业的技术人员为您的 GitLab 老旧版本实例进行专业升级&#xff01;服务详情可以在官网查看详细解读&#xff01; 那些因为老旧版本而被攻击的例子 话不多说&#xff0c;直接上图&a…

RTMP、FFmpeg安装测试

RTMP、FFmpeg安装测试 1.使用 Docker 部署 RTMP 服务1.拉取带有 RTMP 模块的 NGINX 镜像&#xff1a;2.运行容器 2. 防火墙放行3.windows安装ffmpeg1. [下载链接](https://ffmpeg.org//download.html)2.解压3.环境变量配置 4.常用的 FFmpeg 推流和拉流命令1.推流命令1. 推流到 …