【Hadoop】-HDFS的Shell操作[3]

news2025/1/16 0:09:53

目录

前言

一、HDFS集群启停命令

1.一键启停脚本可用

2.独立进程启停可用

 二、文件系统操作命令

1、创建文件夹

2、查看指定目录下内容

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

4、查看HDFS文件内容

5、下载HDFS文件

6、拷贝HDFS文件

7、追加数据到HDFS文件中

8、HDFS数据移动操作

9、HDFS数据删除

!  HDFS WEB浏览

补充:修改权限

三、HDFS客户端 - jetbrians产品插件

1.Big Data Tools插件

2、配置Windows

3、配置Big Data Tools插件

四、HDFS客户端 - NFS

4.1使用NFS网关功能将HDFS挂载到本地系统

4.1.1、HDFS NFS Gateway

4.1.2、配置NFS

1.在core-site.xml内新增如下两项

2、在hdfs-site.xml中新增如下项

4.1.3、启用NFS功能 

4.1.4、检查NFS是否正常

4.1.5、在windows挂载HDFS文件系统


前言

Hadoop Distributed File System (HDFS) 是一个分布式文件系统,用于存储和处理大规模数据集。HDFS具有高可扩展性、高容错性和高吞吐量的特点,是Apache Hadoop框架的核心组件之一。

HDFS提供了一个命令行界面(Shell),用于管理和操作文件系统中的文件和目录。使用HDFS的Shell,用户可以执行各种文件系统操作,如创建目录、上传文件、下载文件、删除文件等。

HDFS的Shell操作类似于Linux的命令行操作,用户可以使用一系列命令来完成各种操作。Shell命令包括一些基本的文件系统操作命令,如ls(列出文件和目录)、mkdir(创建目录)、put(上传文件)、get(下载文件)、rm(删除文件)等。此外,HDFS的Shell还提供了一些其他有用的命令,如chown(修改文件所有者)、chgrp(修改文件所属组)、chmod(修改文件权限)等。

用户可以通过在终端中输入hdfs命令来启动HDFS的Shell。在Shell中,用户可以使用上述命令来管理和操作HDFS文件系统中的文件和目录。通过简单的命令,用户可以轻松地完成HDFS文件系统的常见操作。

HDFS的Shell操作简单方便,适用于对文件进行基本的管理和操作。对于更复杂的操作,如数据分析和处理,用户通常会使用其他工具,如Hadoop MapReduce或Spark等。但对于一些简单的文件系统操作,HDFS的Shell是十分有用的。

一、HDFS集群启停命令

1.一键启停脚本可用

  • $HADOOP_HOME/sbin/strat-dfs.sh
  • $HADOOP_HOME/sbin/stop.sh

由于在前置设置中已经配置好了环境,所以只需要执行红色代码即可。

2.独立进程启停可用

  • $HADOOP_HOME/sbin/hadoop-deamon.sh
  • $HADOOP_HOME/sbin/hdfs  --daemon

 二、文件系统操作命令

关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系

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

1、创建文件夹

  • hadoop  fs  -mkdir  [-p]  <path> .......
  • hdfs  dfs  -mkdir  [-p]  <path>......

path为待创建的目录

-p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录

2、查看指定目录下内容

  • hadoop  fs -ls  [-h] [-R]  <path> .......
  • hdfs  dfs  -ls  [-h]  [-R]  <path>......

-h人性化显示文件size

-R递归查看指定目录及其子目录

可以查看到我们之前所创建的文件夹。

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

  • hadoop  fs -put  [-f] [-p]  <localsrc>  .......  <dst>
  • hdfs  dfs -put  [-f] [-p]  <localsrc>  .......  <dst>

-f  覆盖目标文件(已存在下)

-p  保留访问和修改时间,所有权和权限

localsrc  本地文件系统(客户端所在机器)

dst  目标文件系统(HDFS)

4、查看HDFS文件内容

读取指定文件全部内容,显示在标准输出控制台。

  • hadoop  fs  -cat  <src>  .......
  • hdfs  dfs  -cat  <src>  .......

读取大文件可以使用管道符配合more

  • hadoop  fs  -cat  <src>  |  more
  • hdfs  dfs  -cat  <src>  |  more

5、下载HDFS文件

下载文件到本地文件系统指定目录,localdst必须是目录

  • hadoop  fs  -get  [-f]  [-p]  <src>  .......  <localdst>
  • hdfs  dfs  -get  [-f]  [-p]  <src>  .......  <localdst>

-f  覆盖目标文件(已存在下)

-p  保留访问和修改时间,所有权和权限

6、拷贝HDFS文件

  • hadoop  fs  -cp  [-f]  <src>  .......  <dst>
  • hdfs  dfs  -cp  [-f]  <src>  .......  <dst>

将文件test.txt复制到/home目录下。

7、追加数据到HDFS文件中

  • hadoop  fs  -appendToFile  <localsrc>  .......  <dst>
  • hdfs  dfs  -appendToFile  <localsrc>  .......  <dst>

将所有给定本地文件的内容追加到给定dst文件。

dst如果文件不存在,将创建该文件。

如果<localSrc>为-,则输入为从标准输入中读取。

8、HDFS数据移动操作

  • hadoop  fs  -mv  <src>  .......  <dst>
  • hdfs  dfs  -mv  <src>  .......  <dst>

移动文件到指定文件夹下

可以使用该命令移动数据,重命名文件的名称。

9、HDFS数据删除

  • hadoop  fs  -rm  -r  [-skipTrash]  URI  [URI  ......]
  • hdfs  dfs  -rm  -r  [-skipTrash]  URI  [URI  ......]

删除指定路径的文件或文件夹

-skipTrash  跳过回收站,直接删除。

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>
<property>
  <name>fs.trash.checkpoint.interval</name>
  <value>120</value>
</property>

!  HDFS WEB浏览

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

http://node1:9870

使用WEB浏览操作文件系统,一般会遇到权限问题

这是因为WEB浏览器中是以用户(dr,who)登录的,其只有只读权限,多数操作是做不了的。如果需要以特权用户在浏览器中进行操作,需要配置core-site.xml并重启集群,但是,不推荐这样做。

补充:修改权限

在HDFS中,可以使用和Linux一样的授权语句,即chown和chmod

  • 修改所属用户和组:

root:用户                supergroup:组

hadoop  fs  -chown  [-R]  root:supergroup  /xxx.txt

hdfs  dfs  -chown  [-R]  root:root  /xxx.txt

  • 修改权限:

hadoop  fs  -chown  [-R]  777  /xxx.txt

hdfs  dfs  -chown  [-R]  777  /xxx.txt

三、HDFS客户端 - jetbrians产品插件

1.Big Data Tools插件

在jetbrains的产品中,均可以安装插件,其中:Big Data Tools插件可以帮助我们方便的操作HDFS,比如:

  • Intellij IDEA(java IDE)
  • pyCharm(Python IDE)
  • DataGrip(SQL IDE)

均可以支持Bigdata Tools插件

设置-> plugins(插件)-> Marketplace(市场),搜索Big Data Tools

2、配置Windows

需要对Windows系统做一些基础设置,配合插件使用

  • 解压Hadoop安装包到Windows系统,如解压到:D:\hadoop-3.0.0
  • 设置$HADOOP-HOME环境变量指向:D:\hadoop-3.0.0
  • 下载
    • hadoop.dll(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/hadoop.dll)
    • winutils.exe(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/winutils.exe)
  • 将hadoop.dll和winutils.exe放入$HADOOP_HOME/bin中

 

3、配置Big Data Tools插件

打开插件

点击🆗,连接成功,如果hdfs里没有文件会在连接的时候一直转圈圈,可以先在hdfs里创建一个文件。

可以从磁盘上传文件到hdfs

如果上述方法连接不成功,可以使用以下方法。

需要在虚拟机上打包配置好的Hadoop配置文件,将Windows中hadoop配置环境中的/etc目录下全部换成打包好的文件。

 cd /export/server/hadoop/etc/hadoop
 tar -zcvf etc.tar.gz *
 sz etc.tar.gz

 

 此方法就是去找到配置好了的core-site.xml文件,将主机ip修改为要连接的ip即可,因为在前置配置中已经在hosts文件上,配置好了主机映射,所以此处用node1代替

四、HDFS客户端 - NFS

4.1使用NFS网关功能将HDFS挂载到本地系统

4.1.1、HDFS NFS Gateway

HDFS提供了基于NFS(Network File System)的插件,可以对外提供NFS网关,供其他系统挂载使用。NFS网关支持NFSv3,并允许将HDFS作为客户机本地文件的一部分挂载,现在支持:

  • 上传、下载、删除、追加内容。

4.1.2、配置NFS

配置HDFS需要配置如下内容:

  • core-site.xml,新增配置项以及hdfs-site.xml,新增配置项
  • 开启portmap、nfs3两个新进程

node1进行如下操作:在/export/server/hadoop/etc/hadoop/下

1.在core-site.xml内新增如下两项

  <property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
  </property>
  • 项目:hadoop.proxyuser.hadoop.groups        值:*

允许hadoop用户代理任何其他用户组

  • 项目:hadoop.proxyuser.hadoop.hosts        值:*

允许代理任何服务器的请求

2、在hdfs-site.xml中新增如下项
  <property>
    <name>nfs.superuser</name>
    <value>hadoop</value>
  </property>
  <property>
    <name>nfs.dump.dir</name>
    <value>/tmp/.hdfs-nfs</value>
  </property>
  <property>
    <name>nfs.exports.allowed.hosts</name>
    <value>192.168.88.1 rw</value>
  </property>
  • nfs.suerpser:NFS操作HDFS系统,所使用的超级用户(hdfs的启动用户为超级用户)
  • nfs.dump.dir:NFS接收数据上传时使用的临时目录
  • nfs.export.allowed.hosts:NFS允许连接的客户端IP和权限,rw表示只读,IP整体或部分可以以*代替。

4.1.3、启用NFS功能 

1、将配置好将配置好的core-site.xml和hdfs-site.xml分发到node2和node3.

2、重启Hadoop HDFS集群(先stop-dfs.sh,后start-dfs.sh)

3、停止系统的NFS相关进程,(必须以root执行):
a).systemctlstop nfs;    systemctldisable nfs   关闭系统nfs并关闭其开机自启

b).yum remove-yrpcbind 卸载系统自带rpcbind(因为要使用hdfs自带的rpcbind功能)

4、启动portmap(HDFS自带的rpcbind功能)(必须以root执行):

hdfs --daemon start portmap

 

5、启动nfs(HDFS自带的nfs功能)(必须以hadoop用户执行):

hdfs--daemon start nfs3

4.1.4、检查NFS是否正常

以下操作在node2或node3执行(因为node1卸载了rpcbind,缺少了必要的2个命令)

  • 执行:rpcinfo -p node1,正常输出如下:有mountd和nfs出现

  • 执行:showmount -e node1,可以看到 /192.168.88.1

4.1.5、在windows挂载HDFS文件系统

1、开启Windows的NFS功能

此功能需要专业版,如果是家庭版windows需要升级为专业版

2、在Windows命令提示符(CMD)内输入:net use X:\\192.168.88.101\!

3、完成后即可在文件管理器中看到盘符为X的网络位置

4、点击右键客户断开连接

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

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

相关文章

统一SQL 支持Oracle decode函数到TDSQL-MySQL的转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;TDSQL-MySQL 操作目标 在Oracle中&#xff0c;decode函数语法如下图&#xff1a;该函数功能是将 expr与每个 search 依次做比较&#x…

【学习】应急响应

知识体系 事件前 事件后 导致安全事件的原因 part2 事件的分级分类 part3 应急响应工作流程

springboot_java_Ssm高校网上教材征订系统

SpinrgBoot的主要优点有&#xff1a; 1、为所有spring开发提供了一个更快、更广泛的入门体验&#xff1b; 2、零配置&#xff1b; 3、集成了大量常用的第三方库的配置&#xff1b; 4、提供准备好的特性。当今&#xff0c;java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐…

SSRF—服务器请求伪造 漏洞详解

漏洞简述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造&#xff0c;由服务端发起请求的一个网络攻击&#xff0c;一般用来在外网探测或攻击内网服务&#xff0c;其影响效果根据服务器用的函数不同&#xff0c;从而造成不同的影响。 SSRF 形成的原因…

临时邮箱API有哪些功能特性?如何选择API?

临时邮箱API的安全性如何保障&#xff1f;电子邮箱API操作指南&#xff1f; 对于很多用户而言&#xff0c;临时邮箱API不仅仅是一个简单的工具&#xff0c;更是一个保护隐私、避免垃圾邮件侵扰的得力助手。那么&#xff0c;临时邮箱API究竟具备哪些功能特性呢&#xff1f;接下…

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

深度学习实践指南:打造强大AI应用的关键步骤和技巧

深度学习发展总图 深度学习发展总图 深度学习(deep learning)发展史 - 知乎 不同的神经元模型 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09; 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09;是模仿…

《深入解析windows操作系统》第1章读书笔记

1、服务&#xff1a;指操作系统中可以被调用的例程&#xff08;即函数&#xff0c;等价于系统调用&#xff1f;&#xff09;、设备驱动程序或者服务器进程。一些特定术语如下&#xff1a; 1&#xff09;Windows API函数&#xff1a;指Windows API中已经被文档化、可被调用的子例…

基层设备人如何开展TPM:从理念到实践的深度心得

在制造业的基层工作中&#xff0c;设备维护与管理如同稳固的基石&#xff0c;为生产流程的顺畅运作提供了坚实的保障。TPM&#xff0c;这一全面生产维护的理念&#xff0c;已在众多企业中落地生根&#xff0c;成为提升设备效能和企业竞争力的有力工具。那么&#xff0c;作为基层…

学习操作系统路线

操作系统 简介 本课程为计算机专业学生量身定制&#xff0c;补足计算机操作系统相关知识&#xff0c;查漏补缺&#xff0c;也可用于考研复习。内容包括&#xff1a;操作统概述、进程管理、内存管理、文件管理、输入/输出管理等章节。内容力求精炼、重点突出、条理清晰、深入浅…

【ruoyi-vue】axios的封装理解和基本使用

axios的配置 ruoyi的前端对axios进行了封装&#xff0c;让我们发get请求或者是post请求更加方便了。 ruoyi对axios的封装在下面文件中&#xff1a;打开文件&#xff0c;可以看到它有三个显眼的方法&#xff0c;分别是request拦截器、response拦截器和通用下载方法。ruoYi接口地…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对&#xff0c;我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示&#xff0c;第五行开始进行第一次…

Multitouch 1.27.28 免激活版 mac电脑多点触控手势增强工具

Multitouch 应用程序可让您将自定义操作绑定到特定的魔术触控板或鼠标手势。例如&#xff0c;三指单击可以执行粘贴。通过执行键盘快捷键、控制浏览器的选项卡、单击鼠标中键等来改进您的工作流程。 Multitouch 1.27.28 免激活版下载 强大的手势引擎 精心打造的触控板和 Magic …

js 模拟鼠标移动事件,并监听鼠标移动

代码实现 function simulateClick( x, y) {// 获取目标元素 const element document.querySelector("xxxxx"); // 创建一个鼠标移动事件 var mouseMoveEvent new MouseEvent(mousemove, {screenX: x window.screenX, screenY: y window.screenY, clientX: x,…

使用gdb调试遇到No symbol table is loaded. Use the “file“ command.怎么办?

问题排查 出现下面问题&#xff0c;通常是没有处于调式模式环境下&#xff0c;所以我们需要在gcc指令后加 【-g】。 因为&#xff0c;我么的gcc编辑器默认是动态链接&#xff0c;而且是realese发布版本。 想要解决也很简单 主要思路就是在gcc -g。 在makefile文件如下进行修改即…

cpp-tbox 之 RPC 通信服务

jsonrpc 序列化与反序列化基于的是json Proto 该类设计用于处理网络或传输层数据接收和发送&#xff0c;同时提供一些回调函数接口来定义如何处理接收到的数据和发送数据&#xff0c;也就是整个RPC的框架类 对于接收请求的回调函数&#xff0c;参数是请求id&#xff0c;方法…

科技云报道:AIGC掀算力需求革命,边缘计算将不再“边缘”

科技云报道原创。 随着以大模型为代表的AIGC时代拉开序幕&#xff0c;算力需求持续爆发&#xff0c;AI与边缘深度融合已是大势所趋&#xff0c;越来越多的企业开始积极布局GenAI。 GenAI技术的商用化部署和应用成为企业竞逐的新阵地&#xff0c;勾勒出大模型从“技术力”转向…

测试开发高频面试题(持续更新)

什么是测试开发以及其在软件开发流程中的作用。在过去项目中的测试策略和方法。是如何确保测试的全面性和质量的&#xff1f;讲解一下测试金字塔&#xff08;Test Pyramid&#xff09;模型&#xff0c;并解释各个层级的测试类型和其重要性。描述一下持续集成&#xff08;CI&…

AI:165-Coze自定义赛博风格Bot-图片生成操作指南

Coze是由字节跳动推出的一个AI聊天机器人和应用程序编辑开发平台&#xff0c;旨在帮助用户快速创建各种类型的聊天机器人、智能体、AI应用和插件&#xff0c;并将其部署在社交平台和即时聊天应用程序中&#xff0c;如Discord、WhatsApp、Twitter、飞书、微信公众号等。 这个平…

02、java语言为什么要配置环境变量?配置环境变量的两种方案?遇到问题的几种解决办法

探讨笔记 1、java 语言为什么要配置环境变量&#xff1f;其一、未配置环境变量之前&#xff0c;能否执行 java、javac 的命令&#xff1f;其二、未配置环境变量之前&#xff0c;在 Windows 命令行窗口&#xff0c;如何执行相关命令&#xff1f;其三、未配置环境变量之前&#x…