搭建完HDFS之后,我们来简单介绍一下这个分布式文件管理系统。
片
名称节点和数据节点
在搭建hadoop集群时配置core-site.xml
文件配置了hadoop.tmp.dir
是NameNode
的主目录。它在配置的目录在加上tmp/dfs/name/current
,如下:
版本
客户端访问
存储原理
- 冗余数据存储
- 数据访问政策
- 数据错误与恢复
数据恢复依赖于多副本机制。
Hadoop读写流程
FileSystem是通用文件系统的抽象基类,可以被分布式文件系统继承。所有可能使用Hadoop文件系统的代码都必须使用此类。
Hadoop为FileSystem抽象类提供了多种具体实现:
- DistributedFileSystem代表Hadoop分布式文件系统。用户只需要操作DistributedFileSystem的对象来创建文件目录和访问数据,其余的都由DistributedFileSystem完成。
- DistributedFileSystem中有一个成员DFSClient。当该成员初始化时,它会初始化自己的ClientProtocal代理对象(名称为namenode)。 ClientProtocal是一个客户端代理对象,它使用RPC框架与NN进行通信。
- FileSystem 的 open() 方法返回一个输入流 FSDataInputStream 对象。在HDFS文件系统中,具体的输入流在; FileSystem 中的 create() 方法返回一个输出流 FSDataOutputStream 对象。在HDFS文件系统中,具体的输出流是out。
HDFS编程
外壳命令
相比Java API,shell命令是较为容器的编程方式。
HDFS 有很多 shell 命令。其中,fs命令可以说是HDFS中最常用的命令。通过该命令可以查看HDFS文件系统的目录结构、上传下载数据、创建文件等。
该命令的用法为:
hadoop fs [genericOptions] [commandOptions]
常用命令:
//创建目录
hadoop fs -mkdir [option]
//创建多级目录
hadoop fs -mkdir -p [option]
//显示当前目录
hadoop fs -ls
//显示当前多级目录
hadoop fs -ls -R
//删除目录
hadoop fs -rm [option]
//连带删除
hadoop fs -rm -r [option]
//本地文件上传到hdfs系统
hadoop fs -put [reource] [target]
//将hdfs的文件下载到本地
hadoop fs -get [reource] [traget]
//查看dhfs的文件
hadoop -fs -cat [option]
//复制到其他目录
hadoop fs -cp [reource] [target]
//拷贝到HDFS,功能个put一样
hadoop fs -copyFromLocal <src> <des>
//拷贝到本地,功能和get一样
hadoop fs -copyToLocal <src> <des>
网络管理hadoop
输入[NameNodeIp:50070]
访问HDFS系统
输入[NameNodeIp:50090]
访问DataNode。
除了对HDFS的shell操作外,还支持Java、Python等语言。 HDFS 提供 API 来使用网络上传和下载文件。
. . .
相关推荐
热门推荐
Android定位、百度SDK、百度定位
30天前
nacos单机模拟集群
29天前
Java 从当前月份获取上个月
29天前
Cisco交换机作业1.2 VLAN
25天前
【Python 随练】猴子吃桃问题
25天前
ads via 小工具