如何创建网站挣钱,建设一个商务网站的步骤,电子商务网站建设a卷,淘宝网页设计网站目录
一、Hadoop
1、文件系统
1.1、文件系统定义
1.2、传统常见的文件系统
1.3、文件系统中的重要概念
1.4、海量数据存储遇到的问题
1.5、分布式存储系统的核心属性及功能含义
2、HDFS
2.1、HDFS简介
2.2、HDFS设计目标
2.3、HDFS应用场景
2.4、HDFS重要特性
2.4…目录
一、Hadoop
1、文件系统
1.1、文件系统定义
1.2、传统常见的文件系统
1.3、文件系统中的重要概念
1.4、海量数据存储遇到的问题
1.5、分布式存储系统的核心属性及功能含义
2、HDFS
2.1、HDFS简介
2.2、HDFS设计目标
2.3、HDFS应用场景
2.4、HDFS重要特性
2.4.1、主从架构
2.4.2、分块存储
2.4.3、副本机制
2.4.4、元数据记录
2.4.5、namespace
2.4.6、数据块存储
2.5、HDFS存储模型
3、HDFS架构设计
3.1、角色功能
3.2、元数据持久化
3.3、安全模式
3.4、Block的副本放置策略
3.5、HDFS写流程
3.6、HDFS读流程
4、HDFS shell命令行
4.1、文件系统协议
4.2、HDFS shell命令行常用操作
4.2.1、创建文件夹
4.2.2、查看指定目录下内容
4.2.3、上传文件到HDFS指定目录下
4.2.4、查看HDFS文件内容
4.2.5、下载HDFS文件
4.2.6、拷贝HDFS文件
4.2.7、追加数据到HDFS文件中
4.2.8、HDFS数据移动操作 一、Hadoop
1、文件系统
1.1、文件系统定义 文件系统是一种存储和组织数据的方法实现了数据的存储、分级组织、访问和获取等操作使得用户对文件访问和查找变得容易。 文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念用户不必关心数据底层存在硬盘哪里只需要记住这个文件的所属目录和文件名即可。 文件系统通常使用硬盘和光盘这样的存储设备并维护文件在设备中的物理位置。
1.2、传统常见的文件系统 所谓传统常见的文件系统更多指的是单机的文件系统也就是底层不会横跨多台机器实现。比如windows操作系统上的文件系统、Linux上的文件系统、FTP文件系统等等。 这些文件系统的共同特征包括 1、带有抽象的目录树结构树都是从/根目录开始往下蔓延 2、树中节点分为两类目录和文件 3、从根目录开始节点路径具有唯一性
1.3、文件系统中的重要概念 数据指存储的内容本身比如文件、视频、图片等这些数据底层最终是存储在磁盘等存储介质上的一般用户无需关心只需要基于目录树进行增删改查即可实际针对数据的操作由文件系统完成。 元数据metadata又称之为解释性数据记录数据的数据
文件系统元数据一般指文件大小、最后修改时间、底层存储位置、属性、所属用户、权限等信息。
思考1、大数据时代面对海量数据传统的文件存储系统会面临哪些挑战呢
1.4、海量数据存储遇到的问题
1、成本高传统存储硬件通用性差设备投资加上后期维护、升级扩容的成本非常高。
2、如何支撑高效率的计算分析传统存储方式意味着数据存储是存储计算是计算当需要处理数据的时候把数据移动过来。程序和数据存储是属于不同的技术厂商实现无法有机统一整合在一起。
3、性能低单节点I/O性能瓶颈无法逾越难以支撑海量数据的高并发高吞吐场景。
4、可扩展性差无法实现快速部署和弹性扩展动态扩容缩容成本高技术实现难度大。
思考
1、当遇到海量数据存储的场景传统的文件系统如何解决海量数据的存储问题
2、一款能够支撑海量数据存储的系统需要追求什么吞吐量性能安全效率
3、如果让你设计一款存储系统软件来支撑海量数据存储如何设计
1.5、分布式存储系统的核心属性及功能含义
分布式存储系统核心属性 1、分布式存储 2、元数据记录 3、分块存储 4、副本机制
问题1数据量大单机存储遇到瓶颈
解决单机纵向扩展磁盘不够加磁盘有上限瓶颈限制
多机横向扩展机器不够加机器理论上无限扩展
问题2文件分布在不同机器上不利于寻找
解决元数据记录下文件及其存储位置信息快速定位文件位置
问题3文件过大导致单机存储不下、上传下载效率低
解决文件分块存储在不同机器针对块并行操作提高效率
问题4硬件故障难以避免数据易丢失
解决不同机器设置备份冗余存储保障数据安全
总结
1、分布式存储的优点是什么 无限扩展支撑海量数据存储
2、元数据记录的功能是什么 快速定位文件位置便于查找
3、文件分块存储好处是什么 针对块并行操作提高效率
4、设置副本备份的作用是什么 冗余存储保障数据安全
2、HDFS
2.1、HDFS简介 HDFSHadoop Distributed File System意为Hadoop分布式文件系统是Apache Hadoop核心组件之一作为大数据生态圈最底层的分布式存储服务而存在。也可以说大数据首先要解决的问题就是海量数据存储问题。 HDFS主要是解决大数据如何存储问题的。分布式意味着HDFS是横跨在多台计算机上的存储系统。 HDFS是一种能够在普通硬件上运行的分布式文件系统它是高度容错的适应于具有大数据集的应用程序它非常适于存储大型数据比如TB和PB HDFS使用多台计算机存储文件并且提供统一的访问接口像是访问一个普通文件系统一样使用分布式文件系统。 2.2、HDFS设计目标 硬件故障Hardware Failure是常态HDFS可能有成百上千的服务器组成每一个组件都有可能出现故障。因此故障检测和自我快速恢复是HDFS的核心架构目标。 HDFS上的应用主要是以流式读取数据Streaming Data Access。HDFS被设计成用于批处理而不是用户交互式的。相较于数据访问的反应时间更注重数据访问的吞吐量。 典型的HDFS文件大小是GB到TB的级别。所以HDFS被调整成支持大文件Large Data Sets。它应该提供很高的聚合数据带宽一个集群中支持数百个节点一个集群中还应该支持千万级别的文件 大部分HDFS应用对文件要求的是write-one-read-many访问模型。一个文件一旦创建、写入、关闭之后就不需要修改了。这一假设简化了数据一致性问题使高吞吐量的数据访问成为可能。 移动计算的代价比之移动数据的代价低。一个应用请求的计算离它操作的数据越近就越高效。将计算移动到数据附近比之将数据移动到应用所在显然更好。 HDFS被设计为可从一个平台轻松移植到另一个平台。这有助于将HDFS广泛用作大量应用程序的首选平台。
2.3、HDFS应用场景 适合场景大文件数据流式访问一次写入多次读取低成本部署廉价PC高容错 不适合场景小文件数据交互式访问频繁任意修改低延迟处理
2.4、HDFS重要特性 1、主从架构 2、分块存储 3、副本机制 4、元数据记录 5、抽象统一的目录树结构namespace Rack机架/机柜
2.4.1、主从架构 HDFS集群是标准的master/slave主从架构集群。 一般一个HDFS集群是有一个Namenode和一定数目的Datanode组成。 Namenode是HDFS主节点Datanode是HDFS从节点两种角色各司其职共同协调完成分布式的文件存储服务。 上图中是一主五从模式其中五个从角色位于两个机架Rack的不同服务器上。
2.4.2、分块存储 HDFS的文件在物理上是分块存储block的默认大小是128M134217728不足128M则本身就是一块。 块的大小可以通过配置参数来规定参数位于hdfs-default.xml中dfs.blocksize。
2.4.3、副本机制 文件的所有block都会有副本。副本系数可以在文件创建的时候指定也可以在之后通过命令改变。 副本数由参数dfs.replication控制默认值是3也就是会额外再复制2份连同本身总共3份副本。
2.4.4、元数据记录 在HDFS中Namenode管理的元数据具有两种类型 文件自身属性信息文件名称、权限修改时间文件大小复制因子数据块大小。 文件块位置映射信息记录文件块和Datanode之间的映射信息即哪个块位于哪个节点上。
2.4.5、namespace HDFS支持传统的层次型文件组织结构。用户可以创建目录然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似用户可以创建、删除、移动或重命名文件。 Namenode负责维护文件系统的namespace名称空间任何对文件系统名称空间或属性的修改都将被Namenode记录下来。 HDFS会给客户端提供一个统一的抽象目录树客户端通过路径来访问文件形如hdfs://namenode:port/dir-a/dir-b/file.data。
2.4.6、数据块存储 文件的各个block的具体存储管理由DataNode节点承担。 每一个block都可以在多个DataNode上存储。
2.5、HDFS存储模型
文件线性按字节切割成块(block)具有offsetid文件与文件的block大小可以不一样一个文件除最后一个block其他block大小一致block的大小依据硬件的I/O特性调整block被分散存放在集群的节点中具有locationBlock具有副本(replication)没有主从概念副本不能出现在同一个节点副本是满足可靠性和性能的关键文件上传可以指定block大小和副本数上传后只能修改副本数一次写入多次读取不支持修改支持追加数据
3、HDFS架构设计
HDFS是一个主从(Master/Slaves)架构由一个NameNode和一些DataNode组成面向文件包含文件数据(data)和文件元数据(metadata)NameNode负责存储和管理文件元数据并维护了一个层次型的文件目录树DataNode负责存储文件数据(block块)并提供block的读写DataNode与NameNode维持心跳并汇报自己持有的block信息Client和NameNode交互文件元数据和DataNode交互文件block数据
3.1、角色功能
NameNode
完全基于内存存储文件元数据、目录结构、文件block的映射需要持久化方案保证数据可靠性提供副本放置策略
DataNode
基于本地磁盘存储block(文件的形式)并保存block的校验和数据保证block的可靠性与NameNode保持心跳汇报block列表状态
SecondaryNameNodeSNN
在非Ha模式下SNN一般是独立的节点周期完成对NN的EditLog向FsImage合并减少EditLog大小减少NN启动时间根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB
3.2、元数据持久化
任何对文件系统元数据产生修改的操作Namenode都会使用一种称为EditLog的事务日志记录下来使用FsImage存储内存所有的元数据状态使用本地磁盘保存EditLog和FsImageEditLog具有完整性数据丢失少但恢复速度慢并有体积膨胀风险FsImage具有恢复速度快体积与内存数据相当但不能实时保存数据丢失多NameNode使用了FsImageEditLog整合的方案 滚动将增量的EditLog更新到FsImage以保证更近时点的FsImage和更小的EditLog体积
3.3、安全模式
HDFS搭建时会格式化格式化操作会产生一个空的FsImage当Namenode启动时它从硬盘中读取Editlog和FsImage将所有Editlog中的事务作用在内存中的FsImage上并将这个新版本的FsImage从内存中保存到本地磁盘上然后删除旧的Editlog因为这个旧的Editlog的事务都已经作用在FsImage上了Namenode启动后会进入一个称为安全模式的特殊状态。处于安全模式的Namenode是不会进行数据块的复制的。Namenode从所有的 Datanode接收心跳信号和块状态报告。每当Namenode检测确认某个数据块的副本数目达到这个最小值那么该数据块就会被认为是副本安全(safely replicated)的。在一定百分比这个参数可配置的数据块被Namenode检测确认是安全之后加上一个额外的30秒等待时间Namenode将退出安全模式状态。接下来它会确定还有哪些数据块的副本没有达到指定数目并将这些数据块复制到其他Datanode上。
3.4、Block的副本放置策略
第一个副本放置在上传文件的DN如果是集群外提交则随机挑选一台磁盘不太满CPU不太忙的节点。 第二个副本放置在于第一个副本不同的 机架的节点上。 第三个副本与第二个副本相同机架的节点。 更多副本随机节点。
3.5、HDFS写流程
Client和NN连接创建文件元数据NN判定元数据是否有效NN处发副本放置策略返回一个有序的DN列表Client和DN建立Pipeline连接Client将块切分成packet64KB并使用chunk512Bchucksum4B填充Client将packet放入发送队列dataqueue中并向第一个DN发送第一个DN收到packet后本地保存并发送给第二个DN第二个DN收到packet后本地保存并发送给第三个DN这一个过程中上游节点同时发送下一个packet生活中类比工厂的流水线结论流式其实也是变种的并行计算Hdfs使用这种传输方式副本数对于client是透明的当block传输完成DN们各自向NN汇报同时client继续传输下一个block所以client的传输和block的汇报也是并行的
3.6、HDFS读流程
为了降低整体的带宽消耗和读取延时HDFS会尽量让读取程序读取离它最近的副本。如果在读取程序的同一个机架上有一个副本那么就读取该副本。如果一个HDFS集群跨越多个数据中心那么客户端也将首先读本地数据中心的副本。语义下载一个文件 Client和NN交互文件元数据获取fileBlockLocationNN会按距离策略排序返回Client尝试下载block并校验数据完整性语义下载一个文件其实是获取文件的所有的block元数据那么子集获取某些block应该成立 Hdfs支持client给出文件的offset自定义连接哪些block的DN自定义获取数据这个是支持计算层的分治、并行计算的核心
4、HDFS shell命令行 命令行界面英语command-line interface缩写CLI,是指用户通过键盘输入指令计算机接收到指令后予以执行一种人际交互方式。 Hadoop提供了文件系统的shell命令行客户端hadoop fs [generic options]
[rootnode1 ~]# hadoop fs
Usage: hadoop fs [generic options][-appendToFile [-n] localsrc ... dst][-cat [-ignoreCrc] src ...][-checksum [-v] src ...][-chgrp [-R] GROUP PATH...][-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-concat target path src path src path ...][-copyFromLocal [-f] [-p] [-l] [-d] [-t thread count] [-q thread pool queue size] localsrc ... dst][-copyToLocal [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-count [-q] [-h] [-v] [-t [storage type]] [-u] [-x] [-e] [-s] path ...][-cp [-f] [-p | -p[topax]] [-d] [-t thread count] [-q thread pool queue size] src ... dst][-createSnapshot snapshotDir [snapshotName]]
...
4.1、文件系统协议 HDFS Shell CLI支持操作多种文件系统包括本地文件系统file:///、分布式文件系统hdfs://nn:8020等 具体操作的是什么文件系统取决于命令中文件路径URL中的前缀协议。 如果没有指定前缀则将会读取环境变量中的fs.defaultFS属性以该属性值作为默认文件系统。(cat /export/server/hadoop-3.3.6/etc/hadoop/core-site.xml)
hadoop fs -ls file:/// #操作本地文件系统
hadoop fs -ls hdfs://node1:8020/ #操作HDFS分布式文件系统
hadoop fs -ls / #直接根目录没有指定协议 将加载读取fs.defaultFS值#演示
[rootnode1 ~]# hadoop fs -ls file:///
Found 20 items
dr-xr-xr-x - root root 20480 2023-12-24 23:37 file:///bin
dr-xr-xr-x - root root 4096 2023-12-24 23:42 file:///boot
drwxr-xr-x - root root 3100 2024-01-06 23:22 file:///dev
drwxr-xr-x - root root 8192 2024-01-06 23:22 file:///etc
drwxr-xr-x - root root 48 2023-12-25 23:59 file:///export
drwxr-xr-x - root root 6 2018-04-11 12:59 file:///home
dr-xr-xr-x - root root 4096 2023-12-24 23:37 file:///lib
dr-xr-xr-x - root root 20480 2023-12-24 23:37 file:///lib64
drwxr-xr-x - root root 6 2018-04-11 12:59 file:///media
drwxr-xr-x - root root 6 2018-04-11 12:59 file:///mnt
drwxr-xr-x - root root 6 2018-04-11 12:59 file:///opt
dr-xr-xr-x - root root 0 2024-01-06 23:22 file:///proc
dr-xr-x--- - root root 183 2024-01-02 23:51 file:///root
drwxr-xr-x - root root 620 2024-01-06 23:22 file:///run
dr-xr-xr-x - root root 12288 2023-12-25 23:35 file:///sbin
drwxr-xr-x - root root 6 2018-04-11 12:59 file:///srv
dr-xr-xr-x - root root 0 2024-01-06 23:22 file:///sys
drwxrwxrwt - root root 4096 2024-01-06 23:27 file:///tmp
drwxr-xr-x - root root 155 2023-12-24 23:35 file:///usr
drwxr-xr-x - root root 267 2023-12-24 23:41 file:///var
[rootnode1 ~]#[rootnode1 ~]# hadoop fs -ls hdfs://node1:8020/
Found 4 items
drwxr-xr-x - root supergroup 0 2024-01-02 23:52 hdfs://node1:8020/lwztest
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 hdfs://node1:8020/tmp
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 hdfs://node1:8020/user
drwxr-xr-x - root supergroup 0 2024-01-03 00:19 hdfs://node1:8020/wordcount
[rootnode1 ~]#[rootnode1 ~]# hadoop fs -ls /
Found 4 items
drwxr-xr-x - root supergroup 0 2024-01-02 23:52 /lwztest
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 /tmp
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 /user
drwxr-xr-x - root supergroup 0 2024-01-03 00:19 /wordcount
[rootnode1 ~]#[rootnode1 ~]# cat /export/server/hadoop-3.3.6/etc/hadoop/core-site.xml
?xml version1.0 encodingUTF-8?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?
!--Licensed under the Apache License, Version 2.0 (the License);you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an AS IS BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--!-- Put site-specific property overrides in this file. --configuration
!-- 设置默认使用的文件系统 --
propertynamefs.defaultFS/namevaluehdfs://node1:8020/value
/property
...
区别 hadoop dfs 只能操作HDFS文件系统包括Local FS间的操作不过已经Deprecated hdfs dfs 只能操作HDFS文件系统相关包括与Local FS间的操作常用 hadoop fs 可操作任意文件系统不仅仅是hdfs文件系统使用范围更广
目前版本来看官方最终推荐使用的是hadoop fs。当然hdfs dfs 在市面上的使用也比较多。
[rootnode1 ~]# hadoop dfs
WARNING: Use of this script to execute dfs is deprecated.
WARNING: Attempting to execute replacement hdfs dfs instead.Usage: hadoop fs [generic options][-appendToFile [-n] localsrc ... dst][-cat [-ignoreCrc] src ...][-checksum [-v] src ...][-chgrp [-R] GROUP PATH...][-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...]
...[rootnode1 ~]# hdfs dfs
Usage: hadoop fs [generic options][-appendToFile [-n] localsrc ... dst][-cat [-ignoreCrc] src ...][-checksum [-v] src ...][-chgrp [-R] GROUP PATH...][-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-concat target path src path src path ...][-copyFromLocal [-f] [-p] [-l] [-d] [-t thread count] [-q thread pool queue size] localsrc ... dst][-copyToLocal [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-count [-q] [-h] [-v] [-t [storage type]] [-u] [-x] [-e] [-s] path ...]
...
参数说明 HDFS文件系统的操作命令很多和Linux类似因此学习成本相对较低。 可以通过hadoop fs -help命令来查看每个命令的详细用法
[rootnode1 ~]# hadoop fs -help
Usage: hadoop fs [generic options][-appendToFile [-n] localsrc ... dst][-cat [-ignoreCrc] src ...][-checksum [-v] src ...][-chgrp [-R] GROUP PATH...][-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-concat target path src path src path ...][-copyFromLocal [-f] [-p] [-l] [-d] [-t thread count] [-q thread pool queue size] localsrc ... dst][-copyToLocal [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-count [-q] [-h] [-v] [-t [storage type]] [-u] [-x] [-e] [-s] path ...][-cp [-f] [-p | -p[topax]] [-d] [-t thread count] [-q thread pool queue size] src ... dst][-createSnapshot snapshotDir [snapshotName]][-deleteSnapshot snapshotDir snapshotName][-df [-h] [path ...]][-du [-s] [-h] [-v] [-x] path ...][-expunge [-immediate] [-fs path]][-find path ... expression ...][-get [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-getfacl [-R] path][-getfattr [-R] {-n name | -d} [-e en] path][-getmerge [-nl] [-skip-empty-file] src localdst][-head file][-help [cmd ...]]
...
4.2、HDFS shell命令行常用操作
4.2.1、创建文件夹
hadoop fs -mkdir [-p] path ... path 为待创建的目录 -p选项的行为与Unix mkdir -p非常相似它会沿着路径创建父目录。
hadoop fs -mkdir -p /lwz
4.2.2、查看指定目录下内容
hadoop fs -ls [-h] [-R] [path ...] path 指定目录路径 -h 人性化显示文件size -R 递归查看指定目录及其子目录
[rootnode1 ~]# hadoop fs -ls /
Found 5 items
drwxr-xr-x - root supergroup 0 2024-01-06 23:50 /lwz
drwxr-xr-x - root supergroup 0 2024-01-02 23:52 /lwztest
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 /tmp
drwxr-xr-x - root supergroup 0 2024-01-03 00:05 /user
drwxr-xr-x - root supergroup 0 2024-01-03 00:19 /wordcount4.2.3、上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] localsrc ... dst -f 覆盖目标文件已经存在下 -p 保留访问和修改时间所有权和权限 localsrc 本地文件系统客户端所在机器 dst 目标文件系统HDFS
[rootnode1 ~]# hadoop fs -mkdir /lwztest
[rootnode1 ~]# echo 123456adf 1.txt
[rootnode1 ~]# cat 1.txt
123456adf#方式一
[rootnode1 ~]# hadoop fs -put 1.txt /lwztest
[rootnode1 ~]# hadoop fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2024-01-02 23:52 /lwztest
#方式二
[rootnode1 ~]# hadoop fs -put file:///root/1.txt hdfs://node1:8020/lwz4.2.4、查看HDFS文件内容
hadoop fs -cat src ... 读取指定文件全部内容显示在标准输出控制台。 注意对于大文件内容读取慎重。
[rootnode1 ~]# hadoop fs -cat /lwz/1.txt
123456adf
[rootnode1 ~]# hadoop fs -tail /lwz/1.txt
123456adf
[rootnode1 ~]#4.2.5、下载HDFS文件
hadoop fs -get [-f] [-p] src ...localdst 下载文件到本地文件系统指定目录localdst必须是目录 -f 覆盖目标文件已经存在下 -p 保留访问和修改时间所有权和权限
[rootnode1 ~]# mkdir test
[rootnode1 ~]# cd test
[rootnode1 test]# ll
total 0
[rootnode1 test]# hadoop fs -get /lwz/1.txt ./
[rootnode1 test]# ll
total 4
-rw-r--r--. 1 root root 10 Jan 7 00:16 1.txt
#下载下来后并修改文件名为11.txt
[rootnode1 test]# hadoop fs -get /lwz/1.txt ./11.txt
[rootnode1 test]# ll
total 8
-rw-r--r--. 1 root root 10 Jan 7 00:19 11.txt
-rw-r--r--. 1 root root 10 Jan 7 00:16 1.txt
[rootnode1 test]# cat 11.txt
123456adf
[rootnode1 test]#4.2.6、拷贝HDFS文件
hadoop fs -cp [-f] src ...dst -f 覆盖目标文件已经存在下
[rootnode1 ~]# hadoop fs -cp /lwz/1.txt /lwz/11.txt #重命名
[rootnode1 ~]# hadoop fs -ls /lwz
Found 2 items
-rw-r--r-- 3 root supergroup 10 2024-01-07 00:05 /lwz/1.txt
-rw-r--r-- 3 root supergroup 10 2024-01-07 00:24 /lwz/11.txt
[rootnode1 ~]#4.2.7、追加数据到HDFS文件中
hadoop fs -appendToFile localsrc ... dst 将所有给定本地文件的内容追加到给定dst文件。 dst如果文件不存在将创建该文件。 如果localsrc为-则输入为从标准输入中读取。
#追加内容到文件尾部appendToFile
[rootnode1 ~]# echo a a.txt
[rootnode1 ~]# echo b b.txt
[rootnode1 ~]# echo c c.txt
[rootnode1 ~]# cat a.txt
a
[rootnode1 ~]# hadoop fs -put a.txt /
[rootnode1 ~]# hadoop fs -cat /a.txt
a
[rootnode1 ~]# hadoop fs -appendToFile b.txt c.txt /a.txt
[rootnode1 ~]# hadoop fs -cat /a.txt
a
b
c
[rootnode1 ~]#应用场景小文件合并
4.2.8、HDFS数据移动操作
hadoop fs -mv src ... dst 移动文件到指定文件夹下 可以使用该命令移动数据重命名文件的名称
[rootnode1 ~]# hadoop fs -mv /a.txt /lwz/
[rootnode1 ~]# hadoop fs -ls /lwz
Found 3 items
-rw-r--r-- 3 root supergroup 10 2024-01-07 00:05 /lwz/1.txt
-rw-r--r-- 3 root supergroup 10 2024-01-07 00:24 /lwz/11.txt
-rw-r--r-- 3 root supergroup 6 2024-01-07 00:33 /lwz/a.txtHDFS shell其他命令
HDFS shell命令官方指导文档
命令属于多用多会孰能生巧不用就忘。 Hadoop分布式文件系统(一) 再小的努力乘以365都很明显 一个程序员最重要的能力是写出高质量的代码 有道无术术尚可求也有术无道止于术。 无论你是年轻还是年长所有程序员都需要记住时刻努力学习新技术否则就会被时代抛弃