HDFS 的使用和管理

2023-05-16

HDFS 的使用和管理

文章目录

    • HDFS 的使用和管理
        • 实验环境
        • 实验内容
        • 实验步骤
          • 1. 启动hadoop的hdfs相关进程
          • 2. 用jps查看HDFS是否启动
          • 3. 验证HDFS运行状态
          • 4. ls 命令
          • 5. put 命令
          • 6. moveFromLocal 命令
          • 7. get 命令
          • 8. rm 命令
          • 9. mkdir 命令
          • 10. cp 命令
          • 11. mv 命令
          • 12. count 命令
          • 13. du 命令
          • 14. setrep 命令
          • 15. stat 命令
          • 16. balancer 命令
          • 17. dfsadmin 命令
          • 18. 其他 命令
            • 18.1 cat 命令
            • 18.2 appendToFile 命令
            • 18.3 chown 命令
            • 18.2 appendToFile 命令
            • 18.3 chown 命令

实验环境

Linux Centos 6

实验内容

前提条件:

1)Hadoop 3.0.0 的单点部署完成

2)Java 运行环境部署完成

上述前提条件,我们已经为你准备就绪了。

实验步骤

1. 启动hadoop的hdfs相关进程

cd /opt/hadoop/sbin/

./start-dfs.sh

2. 用jps查看HDFS是否启动

jps

image-20210326122736762

我们可以看到相关进程,都已经启动。

3. 验证HDFS运行状态

先在HDFS上创建一个目录, 看是否能够成功

hadoop fs -mkdir /myhadoop1

如果成功,查询hdfs文件系统根目录,将看到 /myhadoop1 目录。

hadoop fs -ls /

image-20210326123127674

4. ls 命令

列出hdfs文件系统根目录下的目录和文件。

hadoop fs -ls /

列出hdfs文件系统所有的目录和文件。

hadoop fs -ls -R /

image-20210326124327389

5. put 命令

1)拷贝文件:hadoop fs -put < local file > < hdfs file >

其中< hdfs file >的父目录一定要存在,否则命令不会执行, 比如:

hadoop fs -put /opt/hadoop/README.txt /

2)拷贝目录:hadoop fs -put < local dir > < hdfs dir >

其中< hdfs dir >的父目录一定要存在,否则命令不会执行, 比如:

3)查询是否拷贝成功:

hadoop fs -ls /

image-20210326125840807

如果拷贝文件和目录成功,你将会看到 /logs 和 /REAME.txt

6. moveFromLocal 命令
  1. 拷贝文件或目录:

hadoop fs -moveFromLocal < local src > < hdfs dst >

与put相类似,命令执行后源文件 local src 被删除

hadoop fs -moveFromLocal /opt/hadoop/NOTICE.txt /myhadoop1

hadoop fs -moveFromLocal /opt/hadoop/logs /myhadoop1

2)查询是否拷贝成功:

hadoop fs -ls /myhadoop1

如果拷贝文件和目录成功,你将会看到 /logs 和 /NOTICE.txt

image-20210326130117258

7. get 命令
  1. 拷贝文件或目录到本地:

hadoop fs -get < hdfs file or dir > < local file or dir>

local file不能和 hdfs file名字不能相同,否则会提示文件已存在,没有重名的文件会复制到本地

hadoop fs -get /myhadoop1/NOTICE.txt /opt/hadoop/

hadoop fs -get /myhadoop1/logs /opt/hadoop/

拷贝多个文件或目录到本地时,本地要为文件夹路径

注意:如果用户不是root, local 路径要为用户文件夹下的路径,否则会出现权限问题

2)查询是否拷贝得到本地成功:

cd /opt/hadoop

ls -l

image-20210326130225990

如果拷贝文件和目录成功,你将会看到 logs 和 NOTICE.txt

8. rm 命令
  1. 删除一个或多个文件

hadoop fs -rm < hdfs file > …

hadoop fs -rm /README.txt

  1. 删除一个或多个目录

hadoop fs -rm -r < hdfs dir > …

hadoop fs -rm -r /logs

3)查询是否删除成功:

hadoop fs -ls /

如果删除文件和目录成功,你将不会看到 /logs 和 /NOTICE.txt

9. mkdir 命令
  1. 创建一个新目录:

hadoop fs -mkdir < hdfs path >

只能一级一级的建目录,父目录不存在则这个命令会报错

hadoop fs -mkdir -p < hdfs dir > …

所创建的目录如果父目录不存在就创建该父目录

hadoop fs -mkdir /myhadoop1/test

hadoop fs -mkdir -p /myhadoop2/test

2)查询目录:

hadoop fs -ls /

hadoop fs -ls /myhadoop1

hadoop fs -ls /myhadoop2

image-20210326130527696

如果创建目录成功,你将会看到 /myhadoop1/test 和 /myhadoop2/test

10. cp 命令

完成HDFS 上文件或目录的拷贝

hadoop fs -cp < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件还存在

hadoop fs -cp < hdfs file or dir >… < hdfs dir >

目标文件夹要存在,否则命令不能执行

1)拷贝一个本地文件到 HDFS 的根目录下

hadoop fs -put /opt/hadoop/LICENSE.txt /

成功后,即可以查询到此文件

hadoop fs -ls /

2)然后将此文件拷贝到 /myhadoop1 下

hadoop fs -cp /LICENSE.txt /myhadoop1

3)查询 /myhadoop1 目录:

hadoop fs -ls /myhadoop1

image-20210328120303473

如果拷贝成功,你将会看到 LICENSE.txt 文件

11. mv 命令

完成HDFS 上文件或目录的移动

hadoop fs -mv < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件不存在

hadoop fs -mv < hdfs file or dir >… < hdfs dir >

源路径有多个时,目标路径必须为目录,且必须存在

注意:跨文件系统的移动(local到hdfs或者反过来)都是不允许的

  1. 移动一个 HDFS 文件

hadoop fs -mv /myhadoop1/LICENSE.txt /myhadoop2

  1. 查询 /myhadoop2 目录

hadoop fs -ls /myhadoop2

如果拷贝成功,你将会看到 /myhadoop2/LICENSE.txt 文件

image-20210328120539882

12. count 命令

统计hdfs对应路径下的目录个数,文件个数,文件总计大小

hadoop fs -count < hdfs path >

hadoop fs -count /myhadoop1/logs

显示为目录个数,文件个数,文件总计大小,输入路径, 如下:

1 8 128199 /myhadoop1/logs

image-20210328120715221

image-20210328122017712

13. du 命令

hadoop fs -du < hdsf path>

显示hdfs对应路径下每个文件夹和文件的大小

hadoop fs -du -s < hdsf path>

显示hdfs对应路径下所有文件总和的大小

hadoop fs -du -h < hdsf path>

显示hdfs对应路径下每个文件夹和文件的大小,文件的大小用方便阅读的形式表示,例如用64M代替67108864

hadoop fs -du /myhadoop2

hadoop fs -du -s /myhadoop2

hadoop fs -du -h /myhadoop2

hadoop fs -du -s -h /myhadoop2

image-20210328122230795

第一列标示该目录下总文件大小

第二列标示该目录下所有文件在集群上的总存储大小和你的副本数相关,我的副本数是3 ,所以第二列的是第一列的三倍 (第二列内容=文件大小*副本数)

第三列标示你查询的目录

image-20210328124349144

14. setrep 命令

hadoop fs -setrep -R 3 < hdfs path >

改变一个文件在hdfs中的副本个数,上述命令中数字3为所设置的副本个数

-R选项可以对一个人目录下的所有目录+文件递归执行改变副本个数的操作

hadoop fs -setrep -R 3 /myhadoop1

image-20210328122422486

15. stat 命令

hdoop fs -stat [format] < hdfs path >

返回对应路径的状态信息

[format]可选参数有:

%b(文件大小)

%o(Block大小)

%n(文件名)

%r(副本个数)

%y(最后一次修改日期和时间)

hadoop fs -stat %b /myhadoop2/LICENSE.txt

显示为文件大小, 如下:

image-20210328122533216

16. balancer 命令

hdfs balancer

如果管理员发现某些DataNode保存数据过多,某些DataNode保存数据相对较少,可以使用上述命令手动启动内部的均衡过程

hadoop balancer

hdfs balancer

17. dfsadmin 命令

hdfs dfsadmin -help

管理员可以通过dfsadmin管理HDFS,用法可以通过上述命令查看

hdfs dfsadmin -help

hdfs dfsadmin -report

显示文件系统的基本数据

hdfs dfsadmin -report

image-20210328123146369

hdfs dfsadmin -safemode < enter | leave | get | wait >

enter:进入安全模式;

leave:离开安全模式;

get:获知是否开启安全模式;

wait:等待离开安全模式

hdfs dfsadmin -safemode enter

image-20210328123230322

18. 其他 命令

image-20210328124810316

18.1 cat 命令

查看hdfs中的文本文件内容

 hadoop fs -cat /demo.txt
 hadoop fs -tail -f /demo.txt

hadoop fs -tail -f 根据文件描述符进行追踪,当文件改名或被删除,追踪停止

image-20210328125119748

18.2 appendToFile 命令

追加内容到已存在的文件

hadoop fs -appendToFile /本地文件 /hdfs中的文件

image-20210328125642993

18.3 chown 命令

修改文件的权限

hadoop fs -chown user:group /shenhao
hadoop fs -chmod 777 /shenhao
  • chown定义谁拥有文件。
  • chmod定义谁可以做什么。

fs -tail -f 根据文件描述符进行追踪,当文件改名或被删除,追踪停止

[外链图片转存中…(img-186eaG1S-1617441300663)]

18.2 appendToFile 命令

追加内容到已存在的文件

hadoop fs -appendToFile /本地文件 /hdfs中的文件

[外链图片转存中…(img-LpJYWEc5-1617441300666)]

18.3 chown 命令

修改文件的权限

hadoop fs -chown user:group /shenhao
hadoop fs -chmod 777 /shenhao
  • chown定义谁拥有文件。
  • chmod定义谁可以做什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDFS 的使用和管理 的相关文章

  • 使用JAVA将文件从HDFS复制到本地文件系统

    我正在尝试将文件从 HDFS 复制到本地文件系统进行预处理 下面的代码应该根据文档工作 尽管它没有给出任何错误消息并且映射缩减作业运行顺利 但我在本地硬盘驱动器上看不到任何输出 您认为问题出在哪里 谢谢 try Path phdfs inp
  • Spark on 纱线概念理解

    我试图了解 Spark 如何在 YARN 集群 客户端上运行 我心里有以下问题 是否需要在yarn集群的所有节点上都安装spark 我认为应该是因为集群中的工作节点执行任务并且应该能够解码由驱动程序发送到集群的 Spark 应用程序中的代码
  • 是否可以将数据导入Hive表而不复制数据

    我将日志文件以文本形式存储在 HDFS 中 当我将日志文件加载到 Hive 表中时 所有文件都会被复制 我可以避免所有文本数据存储两次吗 编辑 我通过以下命令加载它 LOAD DATA INPATH user logs mylogfile
  • Hadoop 框架中使用的属性的完整列表

    我正在对 Hadoop 框架进行一些研究 我想问一下框架中可以使用的属性 例如 io sort mb io sort record percent etc 我可以参考这个框架的整个属性列表吗 非常希望有人能帮助我 另外 我想问一下 io s
  • 全新安装时的 HDFS 空间使用情况

    我刚刚安装了 HDFS 并启动了该服务 并且已使用空间已经超过800MB 它代表什么 hdfs dfs df h Filesystem Size Used Available Use hdfs quickstart cloudera 802
  • 解析数百万个小 XML 文件

    我有 1000 万个小 XML 文件 300KB 500KB 我在 Mapreduce 中使用 Mahaout 的 XML 输入格式来读取数据 并使用 SAX 解析器进行解析 但处理速度非常慢 使用输入文件的压缩 lzo 有助于提高性能吗
  • 无法使用本地 hadoop 连接 azure blob 存储

    在尝试连接时本地hadoop与AZURE BLOB存储 即使用作为 HDFS 的 Blob 存储 和 Hadoop 版本 2 7 1 它抛出异常 这里我已经通过设置属性成功形成了本地集群
  • 从 hdfs 读取 ocr 文件后令人难以置信地触发数据帧

    我在 Ambari 上使用 Spark 2 1 1 和 hadoop 2 6 时遇到问题 我首先在本地计算机上测试了我的代码 单节点 本地文件 一切都按预期工作 from pyspark sql import SparkSession sp
  • 如何更有效地从spark重命名hdfs中的文件?

    我有 450K JSON 我想根据某些规则在 hdfs 中重命名它们 为了简单起见 我只添加一个后缀 finished给他们每个人 A 成功地做到了这一点 代码如下 import org apache hadoop fs val hdfs
  • 无法创建目录 /home/hadoop/hadoopinfra/hdfs/namenode/current

    我收到错误 Cannot create directory home hadoop hadoopinfra hdfs namenode current 尝试在我的本地 Mac 上安装 hadoop 时 这可能是什么原因 仅供参考 我将我的
  • 如何更改 Spark 程序的 HDFS 复制因子?

    我需要将 Spark 程序的 HDFS 复制因子从 3 更改为 1 在搜索时 我想出了 spark hadoop dfs replication 属性 但是通过查看https spark apache org docs latest con
  • 如何为 HDFS 递归列出子目录?

    我在 HDFS 中递归创建了一组目录 如何列出所有目录 对于普通的 UNIX 文件系统 我可以使用以下命令来做到这一点 find path type d print 但我想为 HDFS 得到类似的东西 递归列出目录内容hadoop dfs
  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO
  • 运行 Sqoop 导入和导出时如何找到最佳映射器数量?

    我正在使用 Sqoop 版本 1 4 2 和 Oracle 数据库 运行 Sqoop 命令时 例如这样 sqoop import fs
  • 使用 Java API 在 Hadoop 中移动文件?

    我想使用 Java API 在 HDFS 中移动文件 我想不出办法做到这一点 FileSystem 类似乎只想允许在本地文件系统之间移动 但我想将它们保留在 HDFS 中并将它们移动到那里 我错过了一些基本的东西吗 我能想到的唯一方法是从输
  • 如何使用 python 从 Azure Data Lake Gen 2 读取文件

    我有一个文件位于 Azure Data Lake gen 2 文件系统中 我想读取文件的内容并进行一些低级更改 即从记录中的一些字段中删除一些字符 更明确地说 有些字段的最后一个字符也为反斜杠 由于该值包含在文本限定符 中 因此字段值会转义
  • 以编程方式读取 Hadoop Mapreduce 程序的输出

    这可能是一个基本问题 但我在谷歌上找不到答案 我有一个映射缩减作业 它在其输出目录中创建多个输出文件 我的 Java 应用程序在远程 hadoop 集群上执行此作业 作业完成后 需要使用以下命令以编程方式读取输出org apache had
  • Hive:为现有文件夹结构添加分区

    我在 HDFS 中有一个文件夹结构 如下所示 但是 实际上没有使用以下命令在表上创建分区ALTER TABLE ADD PARTITION命令 即使文件夹结构的设置就像表有分区一样 如何自动将所有分区添加到Hive表中 Hive 1 0 外
  • 如何配置Hive仓库路径?

    我修改了这部分

随机推荐

  • Linux(Ubuntu)系统如何安装Python

    Linux 系统是为编程而生的 xff0c 因此绝大多数的 Linux 发行版 xff08 Ubuntu CentOS 等 xff09 都默认自带了 Python 有的 Linux 发行版甚至还会自带两个版本的 Python xff0c 例
  • 如何用python实现多线程爬虫

    当单线程python爬虫已经不能满足企业需求时 xff0c 很多程序员会进行改代码或者增加服务器数量 xff0c 这样虽说也能达到效果 xff0c 但是对于人力物力也是一笔不小的消耗 如果是技术牛点的 xff0c 正常都会自己重新改写多线程
  • ## Hive分析疫情数据

    拿到的数据部分如下 xff1a 4月27日 黑龙江 境外输入 不详 0 45 0 黑龙江卫健委 https m thepaper cn newsDetail forward 7160075 4月27日 内蒙古 境外输入 不详 0 8 0 央
  • python --根据windows窗口名称、进程pid打开窗口(pygetwindow详解)

    pygetwindow详解 简介 pygetwindow是一个Python库 xff0c 用于获取 操作和管理当前打开的窗口 它提供了一些常用的窗口操作方法 xff0c 包括获取窗口句柄 xff0c 获取窗口位置和大小 xff0c 移动和调
  • Redhat Linux advance Server V2.1无法进入桌面(转)

    Redhat Linux advance Server V2 xff11 无法进入桌面 转 64 more 64 在本地调试安装了个Redhat Linux advance Server V2 1 xff0c 一共有5张光盘 xff0c 我
  • Mac上类似于xshell的远程工具:finalshell 和 royal tsx

    FinalShell 国产 国产 国产 自己研发的 是一体化的的服务器 网络管理软件 不仅是ssh客户端 还是功能强大的开发 运维工具 充分满足开发 运维需求 特色功能 免费海外服务器远程桌面加速 ssh加速 本地化命令输入框 支持自动补全
  • css查找元素注意事项

    一 CSS ID 选择器查找元素 1 注意 xff1a 如果元素的ID不唯一 xff0c 或者是动态的 或者name以及linktext属性值也不唯一 我们就需要考虑用Xpath来查找元素了 xff0c 然后再对元素执行操作 不管用什么方式
  • OS2.3.7:多生产者,多消费者问题

    文章目录 0 问题描述1 问题分析2 实现3 总结 0 问题描述 桌子上有一只盘子 xff0c 每次只能向其中放入一个水果 爸爸专向盘子中放苹果 xff0c 妈妈专向盘子中放橘子 xff0c 儿子专等着吃盘子中的橘子 xff0c 女儿专等着
  • java 方法名类名命名规范

    一 命名规范 1 项目名全部小写 2 包名全部小写 3 类名首字母大写 xff0c 如果类名由多个单词组成 xff0c 每个单词的首字母都要大写 大驼峰 xff0c 如 xff1a public class MyFirstClass 4 变
  • Qt arm环境安装

    一 相关工作准备 Qt opensource 和 Qt everywhere 下载 链接 版本为5 9 8 arm linux gcc下载 链接 版本为4 8 3 tslib 下载 链接 版本为1 21 ps 可以不安装Qt opensou
  • STM32驱动ST7789V2 tft屏幕

    一 简介 本次教程使用的是1 54寸240 240像素的tft屏幕 xff0c 其接口协议为SPI协议 在使用的过程中仅需要四根数据即可驱动点亮屏幕 然后硬件使用的是STM32F103C8T6核心板 xff0c 用的是SPI2 一般购买屏幕
  • linux设置复杂度策略、登录超时处理功能

    1 在字符终端下 xff0c 实现某一用户连续错误登陆N次后 xff0c 就锁定该用户X分钟 pam tally2 执行 vi etc pam d login 在 PAM 1 0 下新起一行 xff0c 加入 auth required p
  • 飞控陀螺仪,磁力计,加速计,四元数姿态结算

    MPU6050主要包含陀螺仪和加速度计 陀螺仪主要测量角速度 xff0c 即可以测出某一时间段物体转过的角度 加速度计测量的是物体的加速度 xff0c 重力加速度即物体受重力作用的情况下具有的加速度 xff0c 物体静止时 xff0c 加速
  • 智慧物业管理系统(Springboot)

    开发工具 xff1a IDEA xff0c jdk1 8 数据库 xff1a mysql5 7 前台框架 xff1a layui 后端技术 xff1a springboot 项目描述 xff1a 1 前台住户登录 2 智慧物业管理后台 2
  • 北京大学2020公开课 AVL-Python实现代码

    class TreeNode def init self key val left 61 None right 61 None parent 61 None self key 61 key self payload 61 val self
  • Docker-2020详细教程<配合千锋Java学习营>

    Docker 2020详细教程 lt 配合千锋Java学习营 gt 2020 Docker最新超详细版教程通俗易懂 一 Docker介绍 1 下载Dcoker依的赖环境 想安装Docker xff0c 需要先将依赖的环境全部下载下来 xff
  • 使用阿里云部署Flask网页

    使用阿里云部署Flask网页 前端网页部署 阿里云apache CentOS 配置好Apache后 xff0c 将一整个html css js文件全部copy进 var www html目录下 之后就可以通过访问IP地址访问到你的index
  • MapReduce的个人理解

    MapReduce的个人理解 文章目录 MapReduce模型简介Map和Reduce函数这里给出一个简单实例 MapReduce的工作流程工作流程概述MapReduce的各个执行阶段 Shuffle过程详解Shuffle过程简介Map端的
  • Hadoop配置

    Hadoop配置 文章目录 Linux shell配置环境变量使环境变量生效Hadoop 集群安装配置到两台阿里云linux主机上Hadoop集群模式安装实验环境实验内容1 安装jdk2 下面来修改环境变量3 安装hadoop4 下面来修改
  • HDFS 的使用和管理

    HDFS 的使用和管理 文章目录 HDFS 的使用和管理实验环境实验内容实验步骤1 启动hadoop的hdfs相关进程2 用jps查看HDFS是否启动3 验证HDFS运行状态4 ls 命令5 put 命令6 moveFromLocal 命令