「大数据-2.2」使用命令操作HDFS文件系统

news2024/11/30 6:43:06

目录

一、HDFS文件系统基本信息

1. HDFS的路径表达形式

2.HDFS和Linux的根目录的区分

二、 使用命令操作HDFS文件系统

0.  Hadoop的两套命令体系

1. 创建文件夹

2. 查看指定目录下内容

3. 上传文件到HDFS指定目录下 

4. 查看HDFS文件内容 

5. 下载HDFS文件

6. 拷贝HDFS文件 

7. 追加数据到HDFS文件中

8. HDFS数据移动操作 

9. HDFS数据删除操作 

拓.  开启HDFS文件系统回收站

10. HDFS的其它命令 

三、 HDFS WEB操作HDFS文件系统

1. HDFS WEB浏览HDFS文件系统

2. HDFS WEB操作HDFS文件系统

2.1 默认以匿名用户进入HDFS WEB

2.2 配置core-site.xml文件以特权用户进入HDFS WEB

2.3 使用HDFS WEB对HDFS文件系统进行基本操作


一、HDFS文件系统基本信息

1. HDFS的路径表达形式

HDFS作为分布式存储的文件系统,有其对数据的路径表达方式。

HDFS同Linux系统一样,均是以/作为根目录的组织形式。

2.HDFS和Linux的根目录的区分

2.1 HDFS和Linux的根目录都是/ 那该如何区分两者的根目录呢?
使用协议头
file:// 和 hdfs://namenode:port 来区分。

  • Linux :file:///
  • HDFS:hdfs://namenode:port/ namenode:主节点 port:端口号

示例:

  • Linux根目录下的test.txt文件路径 :file:///test.txt
  • HDFS根目录下的test.txt文件路径:hdfs://node1:8020/test.txt

2.2 协议头file:/// 或 hdfs://node1:8020/可以省略
        一般情况下,命令中需要提供Linux路径的参数,会自动识别为file:// ,需要提供HDFS路径的参数,会自动识别为hdfs://
        除非命令的文档中明确需要写或不写会有BUG,否则一般不用写协议头,在下面的命令讲解中我会详细说明。


二、 使用命令操作HDFS文件系统

0.  Hadoop的两套命令体系

对于HDFS文件系统的操作,Hadoop有2套命令体系:

  • hadoop命令(老版本用法),用法:hadoop fs [generic options]
  • hdfs命令(新版本用法),用法:hdfs dfs [generic options]

两者在文件系统操作上,用法完全一致 用哪个都可以
某些特殊操作需要选择hadoop命令或hdfs命令 讲到的时候具体分析

1. 创建文件夹

命令:
hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...     

示例:
hadoop fs -mkdir -p /bigdata1/test1
hdfs dfs -mkdir -p /bigdata2/test2

说明:
如果不带协议头默认是在hdfs的根目录中创建目录
path 为待创建的目录     
-p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。

2. 查看指定目录下内容

命令:
hadoop fs -ls [-h] [-R] [<path> ...] 
hdfs dfs -ls [-h] [-R] [<path> ...] 	

示例:
hadoop fs -ls -h -R /bigdata1 
hdfs dfs -ls -h -R /bigdata12
说明:
path 指定目录路径
-h 显示文件大小,带单位
-R 递归查看指定目录及其子目录

3. 上传文件到HDFS指定目录下 

上传命令的作用是从Linux文件系统上传文件到HDFS文件系统下。

命令:
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>

示例:
hadoop fs -put /data/test.txt /
hdfs dfs -put -f /data/test.txt /

说明:
-f 覆盖目标文件(如果已存在同名文件,只能用-f选项强行覆盖,不然无法上传)
-p 保留访问和修改时间、所有权和权限。
localsrc 本地文件系统路径(Linux路径)
dst 目标文件系统路径(HDFS路径)

4. 查看HDFS文件内容 

命令:
hadoop fs -cat <dst> ... 
hdfs dfs -cat <dst> ...

示例:
hdfs dfs -cat /test.txt

说明:
dst HDFS文件系统路径
读取大文件可以使用管道符配合more
hadoop fs -cat <dst> | more
hdfs dfs -cat <dst> | more

示例:
hadoop fs -cat /test.txt | more
hdfs dfs -cat /test.txt | more

说明:
dst HDFS文件系统路径
| Linux下的管道符
more Linux下的翻页指令
| 和 more配合使用,即可实现翻页查看大文件,不会直接一股脑往后面跳

5. 下载HDFS文件

命令:
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>

示例:
hadoop fs -get ./test.txt .
hdfs dfs -get ./test.txt .

说明:
下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(如果已存在同名文件,只能用-f选项强行覆盖,不然无法下载)
-p 保留访问和修改时间,所有权和权限。

下载命令的作用是从HDFS文件系统下载文件到Linux文件系统下。

6. 拷贝HDFS文件 

命令:
hadoop fs -cp [-f] <src> ... <dst> 
hdfs dfs -cp [-f] <src> ... <dst>

示例:
hadoop fs -cp /test.txt /bigdata1/test1/

说明:
-f 覆盖目标文件(已存在下)
src HDFS文件系统路径(HDFS路径)
dst 目标HDFS文件系统路径(HDFS路径)
该命令用于HDFS文件系统中文件拷贝,从Linux到HDFS这叫上传

7. 追加数据到HDFS文件中

命令:
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>

示例:
hadoop fs -appendToFile

说明:
该命令用于将给定本地文件的内容追加到给定HDFS文件末尾。 
dst如果文件不存在,将创建该文件。 
对于HDFS中的文件,我们只能追加和删除,无法随意修改。
如果<localSrc>为-,则输入为从标准输入中读取。

8. HDFS数据移动操作 

命令:
hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>

示例:
hadoop fs -mv /test.txt /test
hdfs dfs -mv /test.txt /test

说明:	
该命令可以移动HDFS文件到指HDFS定文件夹下
也可以使用该命令对文件进行重命名

9. HDFS数据删除操作 

命令:
hadoop fs -rm -r [-skipTrash] URI [URI ...]
hdfs dfs -rm -r [-skipTrash] URI [URI ...]	

示例:
hadoop fs -rm -r bigdata

说明:
带-r就是删除文件夹
删除指定路径的文件或文件夹
-skipTrash 跳过回收站,直接删除(如果没有设置回收站,不用这个选项也是直接删除)

拓.  开启HDFS文件系统回收站

HDFS文件系统是支持回收站的,不过回收站功能默认关闭,如果要开启需要在core-site.xml内配置:

1. 使用vim打开core-site.xml文件:
vim /export/server/hadoop/etc/hadoop/core-site.xml

2. 按i进入插入模式

3. 在<configuration></configuration>中间加入以下内容:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
 
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>

4. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!和回车保存文件并退出。

说明:
1.
<name>fs.trash.interval</name>
<value>1440</value>
是在设置回收站保留时间,这里设置的是保留1440分钟,也就是一天。
2.
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
是在设置回收站检查时间,检查回收站要删除的文件,这里设置的是120分钟。
3.无需重启集群,在哪个机器配置的,保存配置后,在哪个机器执行命令就生效。
4.回收站默认位置在:/user/用户名(hadoop)/.Trash

10. HDFS的其它命令 

        HDFS还有其他许多命令,博主在这里只介绍几个日常中常用的基本命令,如果对这块感兴趣的话,可以看这个:命令官方指导文档


三、 HDFS WEB操作HDFS文件系统

1. HDFS WEB浏览HDFS文件系统

除了使用命令操作HDFS文件系统外,在HDFS的WEB UI上也可以查看HDFS文件系统的内容。

1. 在浏览器输入http://node1:9870/进入HDFS WEB

2. 选择导航栏Utilities下的Browse the file system

2. HDFS WEB操作HDFS文件系统

2.1 默认以匿名用户进入HDFS WEB

        我们进入HDFS WEB是以匿名用户(dr.who)进入,只有只读权限,默认是没有权限操作HDFS文件系统的。


2.2 配置core-site.xml文件以特权用户进入HDFS WEB

        想要操作的话需要以特权用户在浏览器中进行操作,需要配置core-site.xml文件并重启集群。

步骤:

1. 使用vim打开core-site.xml文件:
vim /export/server/hadoop/etc/hadoop/core-site.xml

2. 按i进入插入模式

3. 在<configuration></configuration>中间加入以下内容:
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop</value>
  </property>

4. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!和回车保存文件并退出。

说明:
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
默认以hadoop用户登录HDFS WEB,hadoop在之前已经被授权为了最高级别用户。

2.3 使用HDFS WEB对HDFS文件系统进行基本操作

现在我们能使用HDFS WEB对HDFS文件系统进行基本操作了。


博主写这个,这是想告诉大家我们可以这样做。但是,不推荐这样做!
因为以匿名用户(dr.who)进入HDFS WEBUI,只有只读权限就够了,我们用HDFS WEBUI能简单浏览即可,如果给与高权限,会有很大的安全问题,如容易造成数据泄露或丢失。


------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

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

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

相关文章

快速幂算法-python

看了大神讲解&#xff0c;理论在这里&#xff1a;快速幂算法&#xff08;全网最详细地带你从零开始一步一步优化&#xff09;-CSDN博客 例题&#xff1a;求整数 base 的 整数 power 次方&#xff0c;对整数 num_mod 取幂。 python 代码如下&#xff1a; import timedef norm…

经历网 微信二维码 制作方法

1、谷歌浏览器&#xff0c;打开要制作微信二维码的 网站页面 2、点击页面空白处&#xff08;此步为了使鼠标激活页面&#xff0c;可省&#xff09;&#xff0c;点击鼠标右键&#xff0c;弹窗 点选 为此页面创建二维码&#xff0c;点击下载到自己指定的地方。完成。 下载下来的…

小黑子的java项目开发理解

小黑子的理解 一、基于Maven模板构建的三种常见Java项目——基于maven二、通常的java目录结构utils层 工具包model层&#xff08;pojo层&#xff09;exceptions层 报错包dao层&#xff08;mapper层&#xff09;[impl包—查询数据库]service层 定义接口 [impl—实现事务]control…

Docker-Windows安装使用

1.下载docker https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 2.配置虚拟化环境 通过控制面板“设置”启用 Hyper-V 角色 右键单击 Windows 按钮并选择“应用和功能”。选择相关设置下右侧的“程序和功能”。选择“打开或关闭 Windows 功能”。选择“Hyper-…

Ubuntu性能分析-ftrace 底层驱动

1、框架介绍 ftrace内核驱动可以分为几部分:ftrace framework,RingBuffer,debugfs,Tracepoint,各种Tracer。 ftrace框架是整个ftrace功能的纽带,包括对内和的修改,Tracer的注册,RingBuffer的控制等等。 RingBuffer是静态动态ftrace的载体。 debugfs则提供了用户空间…

【李沐深度学习笔记】Softmax回归

课程地址和说明 Softmax回归p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 Softmax回归 虽然它名字叫作回归&#xff0c;但是它其实是分类问题 本节课的基础 想要学会本节课得需要一点基础&#xff0c…

day9.30

消息队列实现进程之间通信方式代码&#xff0c;现象 #include<myhead.h>//消息结构体 typedef struct {long msgtype; char data[1024]; }Msg_ds;#define SIZE sizeof(Msg_ds)-sizeof(long) int main(int argc, const char *argv[]) {//1、创建key值…

安全渗透测试基础之-Nessus漏洞扫描工具(安装下载)

【注:本文中所需软件请回复公众号后获取,有任何问题请留言,看到会第一时间回复,毕竟我有自己的工作,分享经验并不是主业,不能时刻关注到。如果您觉得我写的好,请记得将公众号设为星标公众号,否则下次可能找不到。先谢谢各位愿意努力奋斗的小伙伴们了。】 本篇是安装下…

UML学习笔记

前言 UML&#xff08;Unified Modeling Language&#xff09;是一种对软件密集系统进行可视化建模的一种语言。有了图后来就可以一目了然。 C中有好多继承图&#xff0c;我都看不懂&#xff0c;所以就来学习一波&#xff5e; -代表私有&#xff08;private&#xff09;的表示…

经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督

文章目录 1 有监督与无监督2 生成模型2.1 重要思路 3 VAE编码器怎么单独用&#xff1f;解码器怎么单独用&#xff1f;为什么要用变分变分自编码器推导高斯混合模型 4 代码实现 之前我们的很多网络都是有监督的 生成网络都是无监督的&#xff08;本质就是密度估计&#xff09;&a…

5、Linux驱动开发:设备-设备注册

目录 &#x1f345;点击这里查看所有博文 随着自己工作的进行&#xff0c;接触到的技术栈也越来越多。给我一个很直观的感受就是&#xff0c;某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了&#xff0c;只有经常会用到的东西才有可能真正记…

12、Kubernetes中KubeProxy实现之iptables和ipvs

目录 一、概述 二、iptables 代理模式 三、iptables案例分析 四、ipvs案例分析 一、概述 iptables和ipvs其实都是依赖的一个共同的Linux内核模块&#xff1a;Netfilter。Netfilter是Linux 2.4.x引入的一个子系统&#xff0c;它作为一个通用的、抽象的框架&#xff0c;提供…

华为智能高校出口安全解决方案(3)

本文承接&#xff1a; https://qiuhualin.blog.csdn.net/article/details/133267254?spm1001.2014.3001.5502 重点讲解华为智能高校出口安全解决方案的攻击防御&安全运维&日志审计的部署流程。 华为智能高校出口安全解决方案&#xff08;3&#xff09; 课程地址攻击防…

git报错:Failed to connect to 127.0.0.1 port 1080

Bug描述 由于在试了网上的这条命令 git config --global http.proxy socks5 127.0.0.1:1080 git config --global https.proxy socks5 127.0.0.1:1080git config --global http.proxy 127.0.0.1:1080 git config --global https.proxy 127.0.0.1:1080Bug描述&#xff1a;Faile…

对负采样(negative sampling)的一些理解

负采样&#xff08;negative sampling&#xff09;通常用于解决在训练神经网络模型时计算softmax的分母过大、难以计算的问题。但在LightGCN模型论文的BPR LOSS中&#xff0c;负采样的概念可能与传统的softmax分母问题不完全一样。 在LightGCN模型中&#xff0c;不同于传统的协…

Spring结合自定义注解实现 AOP 切面功能【详解】

Spring结合自定义注解实现 AOP 切面功能 Spring AOP 注解概述Aspect 快速入门execution 切点表达式 拦截指定类的方法Pointcut("annotation(xx)") 拦截拥有指定注解的方法常用注解1.Before&#xff1a;在切点方法前执行2.After&#xff1a;在切点方法后执行3.Around&…

Python爬虫获取百度图片+重命名+帧差法获取关键帧

&#xff08;清库存&#xff09; 获取图片 重命名 帧差法 爬虫获取图片文件重命名帧差法获取关键帧 爬虫获取图片 # 图片在当前目录下生成import requests import renum 0 numPicture 0 file List []def dowmloadPicture(html, keyword):global num# t 0pic_url re.fin…

【JVM】运行时数据区之 堆——自问自答

Q:堆和栈&#xff0c;在设计上有何用义&#xff1f; 此处我们不说数据结构的概念。 堆本身是一种存储结构&#xff0c;在代码的内存层面来看&#xff0c;无论是c 操作的原生内存&#xff0c;还是Java 背后的JVM&#xff0c;堆的作用都是进行持久存储的。 这个持久存储并不是…

集合-Collection

系列文章目录 1.集合-Collection-CSDN博客 文章目录 目录 系列文章目录 文章目录 前言 一 . 集合的继承体系 二 . 什么是Collection? 三 . 常用方法 1.add(Object element): 将指定的元素添加到集合中。 2. remove(Object element): 从集合中移除指定的元素。 3. bo…

国庆day1---消息队列实现进程之间通信方式代码,现象

snd&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main…