Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop HDFS介绍及入门基础

Hadoop HDFS介绍及入门基础

作者头像
用户7353950
发布于 2024-04-24 09:58:47
发布于 2024-04-24 09:58:47
4010
举报
文章被收录于专栏:IT技术订阅IT技术订阅
Hadoop HDFS(Hadoop Distributed File System)是一种专为大规模数据集的分布式存储和处理而设计的开源文件系统。HDFS是Hadoop生态系统的核心组件之一,为大数据分析提供高效、可靠、可扩展的底层存储基础设施。

关键特性:

1. 高容错性:HDFS通过数据复制和故障检测机制确保数据的高可用性。每个文件被分割成多个块,并存储在多个DataNode(数据节点)上,通常有多个副本。即使部分硬件故障导致部分数据丢失或不可访问,系统仍能通过其他副本恢复数据。

2. 海量数据存储:HDFS旨在处理非常大的文件(通常GB、TB甚至PB级别),并能在由普通商用硬件构成的集群上高效运行,允许水平扩展以容纳不断增长的数据规模。

3. 流式数据访问:HDFS优化了对大规模数据集的批量读写操作,特别适合于一次写入、多次读取的场景,如批处理分析作业。它不是为频繁的小规模随机读写而设计的。

4. 主从架构:HDFS采用Master/Slave架构,包括一个**NameNode**(主节点)和多个**DataNode**(从节点)。NameNode负责管理文件系统的命名空间、维护文件与数据块之间的映射关系、处理客户端的文件系统操作请求。DataNodes则负责实际存储数据块,并执行来自NameNode的指令,如数据块的创建、删除、复制等。

5. 数据块管理:文件被切割成固定大小的数据块(默认大小通常为128MB或256MB),这些块在集群中分散存储。NameNode保存元数据(文件名、目录结构、数据块的位置信息等),而DataNodes存储实际数据块。

6. 数据复制与负载均衡:HDFS通过配置设定复制因子(通常为3),在集群中自动复制数据块,以提高容错性和数据局部性。NameNode会根据集群状态动态调整数据块的分布,以保持负载均衡和副本一致性。

7. 简化运维: HDFS提供了丰富的工具和接口,便于系统监控、故障诊断、数据完整性检查及日常管理任务,降低了大规模分布式存储系统的运维复杂度。

应用场景:

- 大数据分析: 作为Hadoop MapReduce、Spark等分布式计算框架的底层存储,HDFS为批处理、机器学习数据挖掘等任务提供海量数据支持。

- 数据仓库: 作为企业数据湖的基石,HDFS存储原始数据、中间结果和备份数据,供各种BI工具和查询引擎(如HivePresto、Impala)进行交互式或批量查询。

- 日志存储与分析: 收集、存储大规模的系统日志、用户行为日志等,并支持高效地进行日志挖掘和趋势分析。

Hadoop HDFS是一种面向大数据处理的分布式文件系统,以其高容错性、高吞吐量、可扩展性和对大规模数据集的支持,成为大数据生态系统中不可或缺的存储层。

HDFS入门基础使用主要包括以下几个方面: 环境准备与集群搭建 1. 安装Hadoop:

首先需要下载合适的Hadoop版本(如Hadoop 3.x),并将其安装到所有参与集群的节点上。通常包括配置环境变量、修改核心配置文件(如`hadoop-env.sh`、`core-site.xml`、`hdfs-site.xml`等)以指定Java环境、Hadoop目录、端口、数据存储路径等。 2. 集群配置: - 设置IP与主机名:确保所有节点间的网络连接正常,且主机名与IP映射正确,通常在`/etc/hosts`文件中进行配置。 - 关闭防火墙与SELinux(非必需,可根据实际情况选择):避免防火墙规则阻碍Hadoop服务间的通信。 - 时间同步:确保集群内所有节点的系统时间一致,可以使用NTP服务进行同步。 3. 格式化NameNode

首次启动HDFS之前,需要使用`hdfs namenode -format`命令格式化NameNode,初始化文件系统元数据。 4. 启动HDFS

运行`start-dfs.sh`脚本启动HDFS服务,包括NameNode和DataNodes。可以通过`jps`命令或Hadoop的日志检查各服务是否成功启动。 基本操作 Shell命令行操作 Hadoop提供了一个命令行工具`hdfs dfs`(或`hadoop fs`),用于与HDFS进行交互。以下是一些常用命令示例: - **文件/目录管理**: - **创建目录**:`hdfs dfs -mkdir /path/to/directory` - **上传文件**:`hdfs dfs -put local_file /path/in/hdfs` - **下载文件**:`hdfs dfs -get /path/in/hdfs local_destination` - **查看文件内容**:`hdfs dfs -cat /path/to/file` - **删除文件/目录**:`hdfs dfs -rm /path/to/file_or_directory` - **列出目录内容**:`hdfs dfs -ls /path/to/directory` - **权限管理**: - **更改文件权限**:`hdfs dfs -chmod permissions /path/to/file` - **更改文件属主**:`hdfs dfs -chown owner:group /path/to/file` - **文件系统信息查询**: - **查看文件系统使用情况**:`hdfs dfs -df -h /` - **获取文件详细信息**:`hdfs dfs -stat /path/to/file` Java API使用 对于程序化的访问,可以使用HDFS提供的Java API进行文件读写操作。以下是一个简单的读写示例: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HDFSBasics { public static void main(String[] args) throws Exception { // 创建配置对象并加载Hadoop配置 Configuration conf = new Configuration(); conf.addResource(new Path("/path/to/core-site.xml")); conf.addResource(new Path("/path/to/hdfs-site.xml")); // 创建文件系统对象 FileSystem fs = FileSystem.get(conf); // 写入文件 Path writePath = new Path("/path/in/hdfs/output.txt"); try (FSDataOutputStream out = fs.create(writePath)) { out.writeUTF("Hello, HDFS!"); } // 读取文件 Path readPath = new Path("/path/in/hdfs/input.txt"); try (FSDataInputStream in = fs.open(readPath)) { String content = in.readUTF(); System.out.println(content); } // 关闭文件系统连接 fs.close(); } } 注意事项 - 数据块大小:HDFS中的文件会被切分为固定大小的数据块。在处理大文件时,应考虑数据块大小与应用程序需求(如I/O效率、数据分布等)的匹配。 - 副本管理:HDFS通过配置文件设置数据块的复制因子,确保数据冗余和容错性。根据集群规模、存储成本和容灾需求调整副本数量。 - 故障恢复:在发生节点故障时,HDFS会自动进行数据块的重新复制以维持副本数。管理员应定期检查系统报告,确保数据健康性和集群稳定性。 通过上述步骤和操作,用户可以初步掌握HDFS的基本使用方法,包括环境搭建、命令行操作和编程接口的使用,为进一步进行大数据分析和处理打下基础。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT技术订阅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HDFS读数据流程
HDFS读数据流程是Hadoop分布式文件系统的核心之一,它通过一系列的步骤实现了数据在HDFS中的读取和传输。
堕落飞鸟
2023/05/12
6360
HDFS 读写流程
HDFS(Hadoop Distributed File System)是 Hadoop 生态系统中的分布式文件系统,用于存储大规模的数据。HDFS 的读写流程涉及多个组件,包括 NameNode、DataNode 和客户端。以下是详细的读写流程:
代码小李
2024/12/29
1910
Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
  随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多台机器上的文件,于是就产生了分布式文件管理系统,英文名成为DFS(Distributed File System)。
Edison Zhou
2018/08/20
6690
Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
HDFS简介
把数据文件分布到不同的节点上的目的是什么?在不同的节点上分布式计算,计算靠近数据的原则。
字母哥博客
2020/09/23
7720
HDFS简介
Hadoop2.7.6_04_HDFS的Shell操作与常见问题
1、集群启动后,可以查看文件,但是上传文件时报错,打开web页面可看到namenode正处于safemode状态,怎么处理?
踏歌行
2020/10/15
4890
Hadoop2.7.6_04_HDFS的Shell操作与常见问题
Hadoop(四)HDFS集群详解
前言   前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。   HDFS前言:     设计思想:(分而治之)将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。     在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务。   分布式文件系统:     问题引发:海量数据超过了单台物理计算机的存储能力     解
用户1195962
2018/01/18
2.4K0
Hadoop(四)HDFS集群详解
Hadoop(四)HDFS集群详解
  前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。
大道七哥
2019/09/10
2.2K0
Hadoop(四)HDFS集群详解
初识HDFS原理及框架
      HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,首先它是一个文件系统,用于存储文件,通过目录树来定位文件位置;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
星哥玩云
2022/07/19
4700
初识HDFS原理及框架
hadoop系列之基础系列
一、Hadoop基础 1、分布式概念 通过爬虫-->爬到网页存储-->查找关键字 一台机器存储是有限的 Google采用多台机器,使用分布式的概念去存储处理 【关于计算】10TB数据,一台机器无法处理,可以用10台机器处理 每台机器可以处理1TB Mapreduce额核心思想:分而治之 分为Map和Reduce 每个Map处理的数据是独立 Reduce就是合 10TB的数据“分”1TB,之后将结果“合”在一起存储 【
Spark学习技巧
2018/01/30
1.3K0
hadoop系列之基础系列
HDFS 原理、架构与特性介绍
本文主要讲述 HDFS原理-架构、副本机制、HDFS负载均衡、机架感知、健壮性、文件删除恢复机制 1:当前HDFS架构详尽分析  HDFS架构  •NameNode  •DataNod
用户1177713
2018/02/24
3.4K0
HDFS 原理、架构与特性介绍
大数据存储技术(2)—— HDFS分布式文件系统
1、产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS就是分布式文件管理系统中的一种。
Francek Chen
2025/01/22
3080
大数据存储技术(2)—— HDFS分布式文件系统
深入浅出学大数据(三)分布式文件系统HDFS及HDFS的编程实践
此系列主要为我的学弟学妹们所创作,在某些方面可能偏基础。如果读者感觉较为简单,还望见谅!如果文中出现错误,欢迎指正~
不温卜火
2021/09/29
1.2K0
Hadoop HDFS 实现原理图文详解
Hadoop分布式文件系统 (HDFS) 是运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。
一个会写诗的程序员
2021/12/16
1.5K0
Hadoop HDFS 实现原理图文详解
HDFS知识点总结
HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,运行于商用硬件集群上,是管理网络中跨多台计算机存储的文件系统。
哲洛不闹
2018/09/14
8810
HDFS知识点总结
HDFS最基础使用
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。
ha_lydms
2023/10/04
3410
HDFS最基础使用
hadoop学习随笔-入门阶段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22uhcfxh-1617677655640)(D:\Code_Study\博客笔记\Hadoop学习笔记.assets\1604300154815.png)]
用户8483969
2021/04/09
5560
独家 | 一文读懂Hadoop(二)HDFS(上)
随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识。2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值。 读者可以通过阅读“一文读懂Hadoop”系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文章了解Hado
数据派THU
2018/01/30
2.4K0
独家 | 一文读懂Hadoop(二)HDFS(上)
HDFS如何处理故障和节点失效?请解释故障恢复机制。
以上代码示例演示了如何使用HDFS的API进行数据写入操作,并模拟节点失效的情况。首先,我们创建HDFS的配置对象,并设置文件系统的默认地址。然后,通过调用FileSystem.get(conf)方法获取HDFS文件系统对象。接下来,我们创建待写入文件的路径,并打开文件输出流。通过调用outputStream.writeBytes(data)方法,将数据写入文件。在最后,我们使用setSafeMode方法模拟节点失效的情况。当节点失效时,HDFS会自动进行故障恢复操作,保证数据的可靠性和可用性。
GeekLiHua
2025/01/21
1840
Hadoop技术(一)分布式文件系统HDFS
明确 假设磁盘每秒读取500兆数据, 则1T内容需要2048s 约等于 30min
时间静止不是简史
2020/07/24
9070
Hadoop学习笔记
作者:伍栋梁 编辑:陈人和 1.hadoop安装与介绍 1.1hadoop生态圈介绍 分布式系统—Google三架马车(GFS,mapreduce,Bigtable)。google 公布了发布了这三个产品的详细设计论文,但没有公布这三个产品的源码。Yahoo 资助的 Hadoop 按照这三篇论文的开源 Java 实现:Hadoop 对应 Mapreduce,Hadoop Distributed File System (HDFS)对应Google fs,Hbase对应Bigtable。不过在性能上Hado
机器学习算法工程师
2018/03/06
2.7K0
Hadoop学习笔记
相关推荐
HDFS读数据流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档