HDFS 实验 原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS 实验 原理相关的知识,希望对你有一定的参考价值。
原文在此
https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html
hadoop 两大组件 mapreduce和hdfs
用HDFS的目标
避免硬件故障
硬件故障是常态,而不是例外。一个HDFS实例可能包括数百或数千个服务器,存储文件系统的部分数据。事实上,有大量的组件,每个组件都有一个非平凡的失效概率意味着HDFS的一些组件总是非功能。因此,故障的快速检测,从自动的恢复是HDFS的一个核心构架目标。
流式数据访问
应用程序运行在HDFS需要流媒体访问他们的数据集。它们不是一般用途的文件系统上运行的通用应用程序。HDFS被设计为批处理,而不是由用户交互使用。重点是高吞吐量的数据访问,而不是低延迟的数据访问。POSIX的一些要求是不是有针对性的HDFS的应用所需要的。在几个关键的领域POSIX语义被交易来增加数据吞吐量。
大数据集
HDFS上运行的应用程序有大量的数据集。HDFS中典型的文件大小百万兆字节字节。因此,HDFS被调谐到支持大文件。它应该为单个集群中的数百个节点提供高聚合数据带宽和规模。它应该在一个实例中支持数以千万计的文件。
一致性模型
HDFS的应用需要写一次读文件的许多访问模型。创建、写入和关闭的文件不需要更改。这种假设简化了数据一致性问题,并允许高吞吐量数据访问。MapReduce应用程序或Web爬虫应用程序非常适合这个模型。有一个计划支持在将来追加对文件的写操作。
移动计算比移动数据便宜
应用程序请求的计算如果在其所运行的数据附近执行,则效率要高得多。当数据集的大小是巨大的时,情况尤其如此。这减少了网络拥塞,提高了系统的总体吞吐量。假设是,将计算迁移到数据位置的位置通常更好,而不是将数据移动到应用程序运行的地方。HDFS提供的接口的应用将更接近数据所在。
跨异构硬件和软件平台的可移植性
HDFS被设计为可以很容易从一个平台移植到另一个。这有利于广泛采用HDFS作为一个大的应用平台的选择。
节点和数据节点
HDFS有主从式架构。一个HDFS集群由一个单一的节点,一个主服务器,管理文件系统的命名空间和调节客户访问文件。此外,有多个数据节点,通常每一个节点的集群,其中管理连接到节点,它们运行在存储。HDFS文件系统命名空间暴露并允许用户将数据存储在文件中。在内部,一个文件被分成一个或多个数据块,这些块存储在一组数据节点。Namenode执行文件系统的命名空间操作如打开,关闭,和重命名文件和目录。这也决定了数据块到数据节点的映射。数据节点负责为读写文件系统的客户端的请求。数据节点执行创建,删除,并从NameNode在指令复制。
原理图
复制原理
HDFS的设计可靠地存储非常大的文件在机器在一大簇。它将每个文件存储成一组块;除了最后一个块之外,文件中的所有块都是相同的大小。文件的块被复制用于容错。块大小和复制因子可配置为每个文件。应用程序可以指定文件副本的个数。复制因子可以在文件创建时指定,以后可以更改。文件在HDFS写一次,随时都有严格的作家。
对于复制块的所有决定。它定期收到的心跳,从集群中的每个数据节点blockreport。一个心跳的收据表明DataNode运行正常。一个blockreport列出所有在DataNode块。
翻译文,请笑纳。。。。
FS Shell 文件操作
Action
Command
Create a directory named /foodir
bin/hadoop dfs -mkdir /foodir
Remove a directory named /foodir
bin/hadoop dfs -rmr /foodir
View the contents of a file named /foodir/myfile.txt
bin/hadoop dfs -cat /foodir/myfile.txt
FS shell is targeted for applications that need a scripting language to interact with the stored data.
DFSAdmin
The DFSAdmin command set is used for administering an HDFS cluster. These are commands that are used only by an HDFS administrator. Here are some sample action/command pairs:
Action
Command
Put the cluster in Safemode
bin/hadoop dfsadmin -safemode enter
Generate a list of DataNodes
bin/hadoop dfsadmin -report
Recommission or decommission DataNode(s)
bin/hadoop dfsadmin -refreshNodes
api的链接如下,可以用c或者java
http://hadoop.apache.org/docs/current/api/
以上是关于HDFS 实验 原理的主要内容,如果未能解决你的问题,请参考以下文章
实验二 HDFS的Shell命令操作,和HDFS的API操作
参考大数据厦门大学林子雨编著的《大数据技术原理与应用(第3版)》中第三课《HDFS编程实践(Hadoop3.1.3)》遇到的bug