大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统

[复制链接]

微信扫一扫 分享朋友圈

admin 发表于 2019-1-21 16:01:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Hadoop分布式文件系统(HDFS:Hadoop Distributed File System)是基于Java的分布式文件系统
分布式,可扩展和可移植的文件系统,旨在跨越大型商用服务器集群。 HDFS的设计基于谷歌文件系统GFS(https://ai.google/research/pubs/pub51)。与许多其他分布式文件系统一样,HDFS拥有大量数据并提供对许多客户端的透明访问。
HDFS以可靠和可扩展的方式存储非常大的文件:PB(1PB=1024TB,,针对非常大的文件)、GB和MB。它使用块结构文件系统来完成的。单个文件被拆分为固定大小的块,存储在集群中的计算机上。由多个块组成的文件通常不会将所有块存储在一台机器。
HDFS通过复制块并在集群中分发副本来确保可靠性。默认复制因子为3,表示每个块在群集上存在三次。即使单机出现故障,块级复制也保证数据可用。
本章首先介绍HDFS的核心概念,并解释如何使用本机内置命令与文件系统进行交互。
HDFS概述HDFS的体系结构设计由两个进程组成:一个NameNode进程保存文件系统的元数据,一个或多个DataNode进程存储块。 NameNode和DataNode可以在一台机器上运行,但HDFS集群通常包含专机运行NameNode进程,可能还有数千台运行DataNode进程的计算机。
NameNode是HDFS中最重要的机器。它存储整个文件系统的元数据:文件名,文件权限以及每个文件对应块的位置。为了允许快速访问,NameNode将整个元数据结构存储在内存中。
NameNode还跟踪块的复制,确保机器故障不会导致数据丢失。由于NameNode存在单点故障,可以使用第2个NameNode生成主NameNode内存结构的快照,从而降低NameNode失败时数据丢失的风险。
在HDFS中存储块的机器称为DataNode。 DataNode通常是具有大存储容量的商用机器。与NameNode不同,少量DataNode失败,HDFS将继续正常运行。当DataNode失败时,NameNode将复制丢失的块,以保证最少复制数。


图片.png

HDFS交互与HDFS交互主要使用hdfs的脚本
$ hdfs COMMAND [-option <arg>]通用文件操作在HDFS上执行基本文件操作操作,使用dfs子命令。 dfs命令支持类似Linux shell中的许多文件操作。
注意:hdfs命令以系统用户的权限运行。 以下示例用“hduser”的用户运行。
列出HDFS中目录的内容,请使用-ls命令:



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:锦文与你快乐分享

官方微信

APP下载

全国服务热线:

0312-6398784

地址:河北省定州市北城区大道观街

Email:jwkj@dzjwkj.com

Powered by Discuz! X3.2© 2013-2018 Jinwen Inc.  定州锦文科技有限公司 版权所有   

定州锦文科技有限公司   冀ICP备17008983号-11