【大数据·hadoop】在hdfs上运行shell基本常用命令

一、准备工作

1.1格式化并启动Hadoop服务

参见Hadoop在ubuntu虚拟机上的伪分布式部署|保姆级教程的4.7节

在这里插入图片描述

二、HDFS常用命令

接着,就愉快地在刚刚的命令行里敲命令啦

1.显示hdfs目录结构

hadoop fs -ls -R /
  • hadoop fs: 这是Hadoop文件系统命令行的一部分,用于与HDFS进行交互。
  • -ls: 类似于UNIX/Linux中的 ls 命令,用于列出目录内容。
  • -R: 这个参数使得 ls 命令递归地列出所有目录和子目录的内容。没有这个参数,ls 命令只会列出指定目录的直接内容。
  • /: 指定要列出内容的目录路径。在这个命令中,它是根目录。
    在这里插入图片描述

🌸Tips:这里的Hadoop的目录结构,是指hdfs文件系统的目录结构,而非hadoop这个软件所在的目录结构

根据运行结果我们可以得到以下信息:

1. 目录和权限:

  • /tmp: 这是一个临时目录,权限设置为 drwxrwx---,表明目录的拥有者(hadoop)和其所在的组(supergroup)具有读、写、执行权限,而其他用户没有任何权限。
  • /tmp/hadoop-yarn: 这是存放与Hadoop YARN(资源管理器)相关的临时数据的目录,权限同上。
  • /tmp/hadoop-yarn/staging: 用于存放YARN作业的准备阶段数据的目录,权限同上。
  • /tmp/hadoop-yarn/staging/history: 存放YARN作业历史信息的目录,权限同上。
  • /tmp/hadoop-yarn/staging/history/done: 存放已完成的YARN作业历史信息的目录,权限同上。
  • /tmp/hadoop-yarn/staging/history/done_intermediate: 存放正在处理中的YARN作业历史信息的目录,权限设置为 drwxrwxrwt。这里的 t 权限(粘滞位)表明只有文件的拥有者、目录的拥有者或超级用户才能删除或重命名目录中的文件。

2. 所有者和组:

  • 所有列出的目录均由用户 hadoop 拥有,并且属于 supergroup 组。
  • 在Hadoop生态系统中,supergroup 是一个默认的用户组,通常与HDFS的超级用户(即 Hadoop 的管理员账户,类似于 Unix 系统中的 root 用户)关联。超级用户和属于 supergroup 组的用户通常有着对HDFS上所有文件和目录的全权限,这包括读取、写入和执行权限。
    3. 大小:
  • 所有目录的大小均为 0,这是因为在大多数文件系统中,目录不占用可见的存储空间,或者说目录的大小表示的是目录结构本身的大小,而不是其中包含的文件大小。

2.在hdfs指定目录内创建新目录

hadoop fs -mkdir /yaoyao

在这里插入图片描述

3.删除hdfs上指定文件夹(包含子目录等)

hadoop fs -rm -r /yaoyao

在这里插入图片描述

4.在hdfs上创建文件和编辑❌

其实我一开始就完全把HDFS当作像windowslinux那样的文件操作系统了,其实忽略了hdfs的本质:它是一个分布式文件存储系统,专为大文件的存储和处理设计,而非像windows和Linux那样常规的对本地文件进行操作(创建和编辑),因此一般不直接在hdfs上进行文件的创建和编辑。

它的设计理念是:一次写入,多次读取(保证数据的一致性):HDFS不支持文件的随机写入或修改。一旦文件在HDFS上创建和写入,我们不能修改文件的某一部分内容。我们只能追加数据或重写整个文件。

这里的“写入”就是将本地文件写入系统,而非用户自己在Hdfs上创建文件

5.文件写入:将本地数据写入hdfs⭐

文件写入的原理图如下,但是我们写shell命令时,这些原理是由hdfs底层实现的了,我们只需要敲命令就好
在这里插入图片描述

5.1:本地文件准备

我们现在本地系统上创建一个文件,待会把它写入hdfs系统中:

  • 先在用户目录下创建一个hadoop_file的文件夹,待会用来存储要写入到hdfs中的文件
    在这里插入图片描述

  • 在终端打开这个文件夹,创建文件hello.txt

    touch hello.txt
    

    在这里插入图片描述

  • 使用vim编辑器:

    vim hello.txt
    

    启动后按i进入插入模式,可以开始输入文本。完成后,按Esc退出插入模式,输入:wq保存并退出vim。
    在这里插入图片描述

5.2:将本地文件上传到hdfs

有两种命令实现:

  1. -copyFromLocal
hadoop fs -copyFromLocal [本地地址] [hadoop目录]
  1. -put
hadoop fs -put [本地地址] [hadoop目录]

在这里插入图片描述
这里对于本地地址一定要清楚linux的目录结构:
在这里插入图片描述
home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

我在当前用户(用户名为hadoophome目录下创建了hadoop_file文件夹,那么我们文件的路径应该为:

/home/hadoop/hadoop_file/hello.txt

6.查看指定目录下内容

hadoop fs -ls [hdfs的文件目录]

在这里插入图片描述

7.打开查看某个已存在文件

hadoop fs -cat [file_path]

在这里插入图片描述

8.在hdfs指定目录下新建一个空文件

hadoop fs -touchz [hdfs的文件路径+文件名]

在这里插入图片描述

9.将hdfs上某个文件重命名

hadoop fs -mv /yaoyao/test.txt /yaoyao/test02.txt

在这里插入图片描述

10.将hdfs上的文件down到本地⭐

  1. -get

    hadoop fs -get [hdfs目录] [本地目录] 
    

    在这里插入图片描述

  2. -copyToLocal

    hadoop fs -copyToLocal [hdfs目录] [本地目录] 
    

11.其他常用命令

  1. -count:显示hdfs目录下的子目录数、文件数、占用字节数、所有文件和目录名,-q 选项显示目录和空间的配额信息。实例代码如下所示:

    hadoop fs -count /yaoyao
    

    命令输出格式为:

    DIR_COUNT FILE_COUNT CONTENT_SIZE PATH_NAME
    

    在这里插入图片描述
    DIR_COUNT - 2:/yaoyao路径下有2个子目录。
    FILE_COUNT - 3:/yaoyao路径下有3个文件。
    CONTENT_SIZE - 50:这3个文件的总字节数为50字节。
    PATH_NAME - /yaoyao:这是你指定的HDFS路径。

  2. -df:查看 HDFS 中目录空间的使用情况,使用 -df 选项查看Hadoop文件系统(HDFS)的磁盘空间使用情况,而 -h 选项让输出以易读的格式(例如GB、KB)显示。实例代码如下所示:

    hadoop fs -df -h /yaoyao
    

    在这里插入图片描述
    Filesystem:显示文件系统的名称。这里是 hdfs://localhost:9000,表示这是运行在本地主机上,默认端口为9000的HDFS实例。
    Size:显示文件系统的总大小。这里是 38.6 G,表示HDFS的总空间为38.6吉字节(GB)。
    Used:显示已经使用的空间大小。这里是 52 K,表示已经有52千字节(KB)的空间被使用。
    Available:显示还可用的空间大小。这里是 22.4 G,表示还有22.4吉字节(GB)的空间可用。
    Use%:显示已使用的空间百分比。这里是 0%,由于展示的精度问题,实际已使用空间非零(52 KB),但相对于总空间来说非常小,所以使用百分比显示为0%。

  3. -tail:显示一个文件的末尾数据,通常是显示文件最后的 1KB 的数据。-f 选项可以监听文件的变化,当有内容追加到文件中时,-f 选项能够实时显示追加的内容。实例代码如下所示:

    hadoop fs -tail /yaoyao/hello.txt
    

    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode刷题】136.只出现一次的数字(Ⅰ)

【LeetCode刷题】136.只出现一次的数字(Ⅰ) 1. 题目:2.思路分析:思路1:一眼异或! 1. 题目: 2.思路分析: 思路1:一眼异或! 看到题目,如果有一定基…

第十六篇:数据库性能优化:从基础到高级的全面指南

数据库性能优化:从基础到高级的全面指南 1. 引言 在数字化的浪潮中,数据库作为信息系统的核心组件,其性能的优劣直接关系到企业的运营效率和市场竞争力。数据库性能优化不仅是一项技术挑战,更是一项战略任务。它要求我们深入理解…

“等保测评实施策略:保障企业信息安全合规“

等保测评,即网络安全等级保护测评,是企业保障信息安全合规的重要实施策略。以下是企业实施等保测评的一些关键策略: 理解等保测评的重要性: 等保测评有助于企业识别和评价信息系统的安全性能,提供改进建议,…

iOS--底层学习--GCD的简单认识

iOS--底层学习--GCD的简单认识 前言什么是GCDGCD的优点GCD中的任务和队列任务队列 GCD的使用队列的创建和获取任务的创建队列嵌套任务和队列中的一些要点 GCD线程间的通信从后台线程切换到主线程通过队列传递数据使用Dispatch Group进行线程间协调 GCD的方法dispatch_barrier_a…

苹果macOS无法给App麦克风授权解决办法

好久没有在电脑上录制课程了,有些东西还是录下来记忆深刻,却意外发现MAC系统升级后无法授权给第三方的App使用摄像头和麦克风,而录屏软件是需要开启麦克风和摄像头才能录制屏幕上的操作和声音,官方提示在第三方APP若有使用摄像头和…

Qt开发问题总结(1)

1、在使用QGraphicsView/Scene时需要将内存导出到pdf,有view.render和scene.render两种方式,在使用view.render时,注意item的cacheMode要设为QGraphicsItem::NoCache,否则pdf可能在多页的情况下文件很大、导出耗时。原因是次数每一…

15-ps命令

常用选项 aux axjf a:显示一个终端所有的进程u:显示进程的归属用户及内存使用情况x:显示没有关联控制终端j:显示进程归属的进程组idf:以ASCII码的形式显示出进程的层次关系 ps aux其中| more是只显示一部分内容&…

Jenkins 备份恢复插件 ThinBackup

系统环境: Jenkins 版本:2.213 一、简介 在部署完 Jenkins 后首先要准备的就是数据备份问题,尤其是在生产环境下的 Jenkins,如果数据丢失很可能导致项目上线和开发时间受到影响,所以备份数据很重要。还好,…

西门子博途WINCC精致触摸屏配方实用一例

我们现场有一台设备,是用来锯切钢坯的,里面有几个重要的参数,一开始投产的时候厂家没有做配方功能,需要操作人员每次换钢坯就需要手动计算然后输入,后来有时间我就做了个这个定尺管理的功能,方便了操作人员…

五丰黎红针对主厨开展精准营销,“星厨俱乐部”平台助力调味品快速动销。

以“质量”为核心,以“绿色发展”为引领,致力于打造中国味道的调味品企业五丰黎红,长期以来不断改革生产设备及创新工艺,已发展成为国家农(林)业产业化龙头企业、省卓越绩效模式先进企业、省服务业企业50强…

由于安全设置错误,远程桌面连接失败怎么办?

问题:远程桌面安全设置错误? “我是一名IT经理,需要经常使用远程桌面连接到办公室的电脑。近期,我在使用远程桌面时,远程桌面提示‘由于安全设置错误,客户端无法连接到远程计算机。’我不清楚是什么原因所…

中国目前比较有影响力的人物颜廷利:物质与无知通音

既然是在中国优秀传统文化之根-汉语当中,汉字‘物质’二字跟‘无知’通音,因此,面对当前金钱肆虐、物欲横流的现实生活,当人类众生把‘物质’(无知)生活看的太真、太重时,那么,这就很…

手撸XXL-JOB(一)——定时任务的执行

SpringBoot执行定时任务 对于定时任务的执行,SpringBoot提供了三种创建方式: 1)基于注解(Scheduled) 2)基于接口(SchedulingConfigurer) 3)基于注解设定多线程定时任务 基于Scheduled注解 首…

c#多态性的应用

设计一个电脑游戏,游戏中有猪、牛、兔子、青蛙、鸭子等动物,这些动 物都继承于Vertebrata 类(脊椎动物类),Vertebrata类有一个抽象方法Display(),每个动 物都从Vertebrata 类那里继承并重写了Display()方法…

Naive RAG 、Advanced RAG 和 Modular RAG 简介

简介: RAG(Retrieval-Augmented Generation)系统是一种结合了检索(Retrieval)和生成(Generation)的机制,用于提高大型语言模型(LLMs)在特定任务上的表现。随…

【Vue】Vue指令与生命周期以及组件化编码

目录 常用内置指令v-text与v-htmlv-text : 更新元素的 textContentv-html : 更新元素的 innerHTML注意:v-html有安全性问题!!!! v-once与v-prev-oncev-pre ref与v-cloakrefv-cloak 自定义指令案例定义语法配置对象中常…

Visual Studio Community : The prerelease has expired

最近使用旧版的离线安装包安装社区版Visual Studio2022(Visual Studio Community 2022),安装完成后显示:The prerelease has expired。使用自己的微软账号登录还是一样的情况,只能强制退出。经过摸索后发现了一个解决方…

选择法(数值排序)(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明排序函数sort; void sort(int a[], int n);int main() {//初始化变量值&#xff1b;int i, a[10];//填充数组&#xff1b;printf("请输入10个整数\n&…

OSI 网络互联参考模型的思考与总结

前言&#xff1a; 最近一个项目用到了SmartLink配网&#xff0c; 涉及到了UDP的广播和组播&#xff0c;所以就想着回顾总结了下ISO参考模型的相关知识。 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连。 一般都叫OSI参考模型&#xff0c;…

【Linux】自动化编译工具——make/makefile(超细图例详解!!)

目录 一、前言 二、make / Makefile背景介绍 &#x1f95d;Makefile是干什么的&#xff1f; &#x1f347;make又是什么&#xff1f; 三、demo实现【见见猪跑&#x1f416;】 四、依赖关系与依赖方法 1、概念理清 2、感性理解【父与子&#x1f468;】 3、深层理解【程序…