当前位置: 首页 > news >正文

【大数据·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
    

    在这里插入图片描述

相关文章:

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

一、准备工作 1.1格式化并启动Hadoop服务 参见Hadoop在ubuntu虚拟机上的伪分布式部署|保姆级教程的4.7节 二、HDFS常用命令 接着,就愉快地在刚刚的命令行里敲命令啦 1.显示hdfs目录结构 hadoop fs -ls -R /hadoop fs: 这是Hadoop文件系统命令行的一部分&#x…...

TCP/IP 协议基础:构建互联网基石

目录 前言 一.网络通信协议 TCP/IP 1.网络通信协议 3.TCP/IP 协议 3.管理的组织和机构 4.RFC 二.OSI 参考模型 1.层次结构 2.通信机制 3.PDU 4.各层的功能 三.TCP/IP 协议簇 1.TCP/IP 与 OSI 的对应关系 2.TCP/IP 各层 3.TCP/IP 封装与分用 4.重要概念 5.分…...

Android OpenMAX(三)高通OMX组件实现基础

上一节了解了OMX组件实现的基础内容,这一节我们以高通OMX实现为例,简单看看如何实现一个OMX组件。本节代码参考自: omx_core_cmp.cpp qc_omx_component.h omx_vdec.h omx_vdec.cpp Tips:本篇文章旨在简单了解如何实现一个OMX组件,细节的内容不会仔细解读,代码阅读跳跃幅度…...

【比邻智选】MF871U模组

🚀搭载国产芯,严苛测试,稳定可靠 🛠️R16特性加持,5G LAN,纳秒级精度 🌐超低成本,丰富协议,连接无界限...

Unity 单例模式

Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。 下面我将列出几种常见的实现方式: 1. 经典的单例模式 public class SingletonExample : MonoBehaviour {private static SingletonExample instance;public static SingletonEx…...

Oracle-一次TX行锁堵塞事件

问题背景: 接用户问题报障,应用服务出现大量会话堆积现象,数据库锁堵塞严重,需要协助进行问题定位和排除。 问题分析: 登录到数据库服务器上,首先查看一下数据库当前的等待事件情况,通过gv$ses…...

Gtid方式搭建主从复制+MHA高可用集群

GTID是什么 GTID(全局事务标识符),它用于唯一标识一个事务。每个GTID由三个部分组成: 服务器唯一标识符事务序列号全局事务标识符使用gtid可以简化主从复制的配置和管理,减少由于复制链路终端、主从数据不一致等问题带来的风险如何开启GTID: 在/etc/my.cnf文件中添加如下…...

基于matlab GUI的Alpha shapes边缘提取

1、程序介绍 本程序是基于matlab语言,使用alpha shapes算法实现点云边缘提取。算法具体原理参考博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客。该程序包括3个按钮:加载点云、边缘点提取、保存。其中&#xff0…...

[Android]常见的包管理方式

在Android开发中,包管理主要是通过构建和依赖管理工具来处理。下面列举了几种最常见和主流的包管理方式: 一、Gradle Gradle 是 Android 官方推荐的构建工具,几乎成为了 Android 开发的标准。它支持自定义构建逻辑、依赖管理、多项目构建等…...

每日10亿数据的日志分析系统OOM

背景 一个每日10亿数据的日志清洗系统,主要工作就是从消息队列中消费各种各样的日志,然后对日志进行清洗,例如:用户敏感信息(姓名、手机号、身份证)进行脱敏处理,然后把清理完的数据交付给其他系统使用。 我们项目中,…...

智能驱动,精准管理:打造高效干部管理系统

干部管理系统是现代组织管理中不可或缺的工具,它通过信息技术的应用,提高了干部管理的效率和准确性。干部管理系统的主要功能包括: 1. 信息管理:系统可以存储和管理干部的个人信息,包括基本资料、工作经历、教育背景、…...

轮式机器人简介

迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…...

已知哈夫曼节点个数,求哈夫曼字符编码数

哈夫曼编码(Huffman Coding)是一种用于无损数据压缩的嫡编码(权编码)算法。 在哈夫曼树中,每个叶子节点都代表一个字符,而节点的权重通常代表字符的频率。在哈夫曼编码中,每个字符都会被赋予一个二进制编码。为了获得这些编码,我…...

Kubernetes Cluster IP,Node IP,Pod IP间通信原理解析

目录 1、Cluster IP2、Node IP3、NodePort4、Pod IP5、LoadBalancer6、三种IP间通信6.1、Pod IP 与 Pod IP 通信6.2、Pod IP 与 Cluster IP 通信6.3、Node IP 与 Pod IP 通信6.4、Node IP 与 Cluster IP 7、YAML 示例7.1、ClusterIP Service7.2、LoadBalancer Service 1、Clust…...

随机链表的深拷贝

1.题目 解题思路一:暴力求解,先创建新链表,然后把旧链表中的val和next指针给复制到新链表中,根据旧链表中的random指针所指向的旧链表中的val值找到所对应的节点,记录该节点的位置,就像数组一样&#xff0c…...

328_C++_HTTP_HTTP协议传输data数据,为什么要进行base64编解码操作?

http传输data数据的时候,为什么必须进行base64转码后才能有效发送,接收方也必须base64转码后才能有效接受? HTTP  HTTP传输数据时,使用Base64编码并不是必须的,但它确实在某些情况下非常有用。以下是为什么在某些情况…...

【二叉树】Leetcode N 叉树的层序遍历

题目讲解 429. N 叉树的层序遍历 算法讲解 在做层序遍历的时候由于它的每一个结点是有val vector child组成,所以在做层序遍历的时候需要考虑它每一层结点的个数,那我们就可以使用一个queue保存每一层的结点;那么我们在做第一层的时候&am…...

Spring AI

目录 一、Spring AI 1、Spring AI简介 1.1、四次工业革命发展和变革 1.2、什么是人工智能? 1.3、人工智能的发展历程 1.4、什么是大模型? 1.5、如何训练大模型? 一、Spring AI 1、Spring AI简介 Spring AI Java接入人工智能大模型 1.1、四次工业革命发展和变革 人类…...

fiori SAP ui5 动态改变控件颜色

使用CustomData动态改变控件颜色 有时候我们需要改变控件颜色,对于高度封装的控件,显然改变控件CSS是比较困难的,幸好SAP UI5预设了一个customData的属性,每个控件都能使用她。 如下代码是判断汇率是否有改变,如果改…...

RabbitMQ php amqp

Linux debian 安装 Windows php amqp 扩展 PECL :: Package :: amqp 将 php_amqp.dll 复制到 php 的 ext 目录下 将 rabbitmq.4.dll 复制到 c:\windows\system32 目录下 php.ini extensionamqp...

lite-avatar形象库入门:如何查找、预览并下载心仪的数字人形象

lite-avatar形象库入门:如何查找、预览并下载心仪的数字人形象 1. 数字人形象库简介 在数字人项目开发中,一个合适的虚拟形象往往能让用户体验大幅提升。lite-avatar形象库正是为解决这一需求而生的专业资源库。 这个基于HumanAIGC-Engineering/LiteA…...

3月17枚举

package com.fangfa.day05.Enum;public class EnurmerDemo1 {public static void main(String[] args) {//为什么其他类里可以类名.对象名 因为这个对象名被static修饰了//若不修饰不行System.out.println(Season.SPRING);} } class Season{/*** Description* author Mao Ree…...

python-flask-djangol框架的关爱空巢老人和孩子留守儿童管理系统的设计和实现

目录需求分析与规划技术选型核心模块设计数据安全与权限开发与测试计划社区与可持续性项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与规划 明确系统核心功能模块:空巢老人健康监测、留守儿童学习与心理辅…...

深度残差收缩网络(pytorch)框架+时序信号转格拉姆角场二维图; 将时序信号转换为二维图

深度残差收缩网络(pytorch)框架时序信号转格拉姆角场二维图; 将时序信号转换为二维图,使用深度残差收缩网络进行特征提取;训练后保存训练文件便于二次使用。 代码清晰,模型、训练、数据读取分类明显&#x…...

Qwen3.5-4B-Claude-Opus保姆级教程:Web界面响应延迟归因与优化路径

Qwen3.5-4B-Claude-Opus保姆级教程:Web界面响应延迟归因与优化路径 1. 模型与部署环境概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是基于Qwen3.5-4B的推理蒸馏模型,特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该…...

如何用PPTist快速创建专业演示文稿:免费在线PPT制作完全指南

如何用PPTist快速创建专业演示文稿:免费在线PPT制作完全指南 【免费下载链接】PPTist 基于 Vue3.x TypeScript 的在线演示文稿(幻灯片)应用,还原了大部分 Office PowerPoint 常用功能,实现在线PPT的编辑、演示。支持导…...

Excel双坐标折线图保姆级教程:用散点图搞定多组数据对比(附详细步骤图)

Excel双坐标折线图进阶指南:用散点图实现精准数据可视化 在数据分析的日常工作中,我们经常遇到需要同时展示两组量纲差异巨大的数据——比如销售额(百万级)和增长率(百分比)。传统的双坐标折线图虽然能解决…...

OpenAI Agent SDK实战:5分钟搞定MCP协议接入(附完整代码)

OpenAI Agent SDK与MCP协议深度整合实战指南 在当今AI技术快速迭代的背景下,工具链的标准化与互操作性成为开发者面临的核心挑战之一。OpenAI推出的Agent SDK与MCP协议组合,为构建可扩展的智能体系统提供了工业级解决方案。本文将带您从零开始&#xff0…...

C++ 内存分配器工作原理

C内存分配器工作原理探秘 在C中,动态内存管理是程序性能优化的关键环节,而内存分配器则是幕后英雄。它负责在堆上高效分配和释放内存,直接影响程序的运行效率和资源利用率。无论是标准库中的std::allocator,还是自定义的高性能分…...

OpCore-Simplify智能构建:OpenCore EFI自动化生成的效率提升实践

OpCore-Simplify智能构建:OpenCore EFI自动化生成的效率提升实践 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 用户场景:黑苹…...