HDFS基础

HDFS特性详解

HDFS的功能

当我们将在下一个HDFS教程博客中探索HDFS体系结构时,我们将详细了解这些功能。但是,现在让我们来看看HDFS的特性:

成本:  一般来说,HDFS部署在商用硬件上,例如您每天使用的台式机/笔记本电脑。所以,在项目的拥有成本方面是非常经济的。因为我们使用的是低成本的商品硬件,所以您无需花费大量资金来扩展Hadoop集群。换句话说,增加更多的节点到你的HDFS是成本效益的。
数据的种类和数量:  当我们谈论HDFS的时候,我们谈论的是存储巨大的数据,即TB级和PB级的数据和不同类型的数据。所以,您可以将任何类型的数据存储到HDFS中,无论是结构化的,非结构化的还是半结构化的。


可靠性和容错性:  当您将数据存储在HDFS上时,它会将给定的数据内部分割为数据块,并以分布的方式将其存储在Hadoop集群中。关于哪个数据块位于哪个数据节点上的信息被记录在元数据中。NameNode管理元数据, DataNode负责存储数据。
名称节点也复制数据,即维护数据的多个副本。数据的这种复制使得HDFS非常可靠和容错。因此,即使任何节点失败,我们也可以从驻留在其他数据节点上的副本中检索数据。默认情况下,复制因子为3.因此,如果将1 GB的文件存储在HDFS中,则最终将占用3 GB的空间。名称节点定期更新元数据并保持复制因子一致。


数据完整性:  数据完整性将讨论存储在我的HDFS中的数据是否正确。HDFS不断检查存储的数据的完整性与其校验和。如果发现任何错误,它会向名称节点报告。然后,名称节点创建额外的新副本,因此删除损坏的副本。


高吞吐量:吞吐量是单位时间内完成的工作量。它讨论了如何从文件系统访问数据的速度。基本上,它给你一个关于系统性能的见解。正如你在上面的例子中看到的那样,我们共用十台机器来增强计算。在那里我们能够将处理时间从 43分钟缩短到只有  4.3分钟,因为所有的机器都在并行工作。因此,通过并行处理数据,我们大大减少了处理时间,从而实现了高吞吐量。 
数据局部性: 数据局部性讨论的是将处理单元移动到数据而不是数据到处理单元。在我们的传统系统中,我们曾经把数据带到应用层,然后进行处理。但是现在,由于数据的体系结构和庞大的数据量,把数据带到应用层会使网络性能显着降低。因此,在HDFS中,我们将计算部分带到数据所在的数据节点。因此,你不移动数据,你正在把程序或处理部分的数据。 

<think> 我们被要求提供HDFS基础操作指南,根据引用的内容,我们可以总结出以下操作: 1. 列出目录内容 2. 创建目录(包括递归创建) 3. 上传文件(包括put、copyFromLocal、moveFromLocal) 4. 下载文件 5. 其他操作(如复制、移动、删除等,但引用中提及较少,我们根据常见操作补充) 注意:引用中提到了hadoop fs和hdfs dfs两个命令是等价的,我们统一使用hdfs dfs。 同,引用[4]和[5]提供了一些HDFS架构和设计目标的信息,但用户要求的是基础操作,所以我们重点放在命令行操作上。 下面我们按照操作类型来组织回答,并给出示例。 </think>### HDFS基础操作指南 #### 1. **查看目录内容** - **命令**:`hdfs dfs -ls [-C] [-R] <路径>` - `-C`:仅显示文件名(不显示权限等元数据) - `-R`:递归列出子目录内容 - **示例**: ```bash hdfs dfs -ls / # 查看根目录 hdfs dfs -ls -R /user # 递归查看/user目录所有内容 ``` 引用[1][^1] #### 2. **创建目录** - **命令**:`hdfs dfs -mkdir [-p] <HDFS路径>` - `-p`:递归创建父目录(若中间目录不存在则自动创建) - **示例**: ```bash hdfs dfs -mkdir /test # 创建/test目录 hdfs dfs -mkdir -p /a/b/c # 递归创建/a/b/c目录 ``` 引用[1][^1] #### 3. **上传文件到HDFS** - **命令**: - `hdfs dfs -put <本地路径> <HDFS目标路径>`(上传后保留本地文件) - `hdfs dfs -copyFromLocal <本地路径> <HDFS目标路径>`(功能同`-put`) - `hdfs dfs -moveFromLocal <本地路径> <HDFS目标路径>`(上传后删除本地文件) - **示例**: ```bash hdfs dfs -put ~/data.txt /user/ # 上传本地文件到HDFS hdfs dfs -moveFromLocal log.txt / # 上传后移除本地log.txt ``` 引用[1][^1][^3] #### 4. **下载文件到本地** - **命令**:`hdfs dfs -get <HDFS路径> <本地目标路径>` - **示例**: ```bash hdfs dfs -get /user/data.txt ~/downloads/ # 下载文件到本地目录 ``` 引用[3][^3] #### 5. **文件管理操作** - **复制/移动文件**: ```bash hdfs dfs -cp /source/file /dest # 复制HDFS内文件 hdfs dfs -mv /old/path /new/path # 移动文件 ``` - **删除文件/目录**: ```bash hdfs dfs -rm /file.txt # 删除文件 hdfs dfs -rm -r /directory # 递归删除目录 ``` 引用[2][^2] #### 6. **检查HDFS状态** - **查看NameNode状态**: ```bash hdfs haadmin -getServiceState nn1 # 检查NameNode是否活跃 ``` 引用[5][^5] --- ### **HDFS核心架构要点** - **核心组件**: - **NameNode (NN)**:管理文件元数据(如文件树、块位置)。 - **DataNode (DN)**:存储实际数据块。 - **Secondary NameNode (2NN)**:辅助合并元数据,防止NN单点故障。 - **文件块机制**: - 默认块大小:128MB~256MB(针对大文件优化)。 - 三副本策略:自动跨机架存储,保障容错性。 引用[4][^5][^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值