HDFS基础
Posted _小许_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS基础相关的知识,希望对你有一定的参考价值。
搭建HDFS后简单介绍下这个分布式文件管理系统。
块
名称节点和数据节点
在搭建hadoop集群时配置core-site.xml
文件配置了hadoop.tmp.dir
是NameNode
的主目录。它在配置的目录在加上tmp/dfs/name/current
,如下:
VERSION
客户端访问
存储原理
- 冗余数据存储
- 数据存取策略
- 数据错误与恢复
数据恢复依赖于多副本机制。
Hadoop读写过程
FileSystem是一个通用文件系统的抽象基类,可以被分布式文件系统继承,所有可能使用Hadoop文件系统的代码,都要使用这个类。
Hadoop为FileSystem这个抽象类提供了多种具体实现:
- DistributedFileSystem就代表了Hadoop分布式文件系统,用户只要操作DistributedFileSystem的对象来进行文件目录的建立、数据的存取操作,其他的都由DistributedFileSystem来完成
- DistributedFileSystem中有一个成员DFSClient,这个成员在初始化时,就是初始化自己的ClientProtocal代理对象(名称就是namenode),ClientProtocal是使用RPC框架和NN通信的客户端代理对象。
- FileSystem的open()方法返回的是一个输入流FSDataInputStream对象,在HDFS文件系统中,具体的输入流就是in;FileSystem中的create()方法返回的是一个输出流FSDataOutputStream对象,在HDFS文件系统中,具体的输出流就是out 。
HDFS编程
shell命令
相比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>
web管理hadoop
输入[NameNodeIp:50070]
访问HDFS系统
输入[NameNodeIp:50090]
访问DataNode。
除了shell操作HDFS外还支持Java,Python等语言,HDFS都提供了API,借助web进行文件的上传与下载。
以上是关于HDFS基础的主要内容,如果未能解决你的问题,请参考以下文章