北京传智播客教育
Hadoop深入浅出
讲师: 吴 超
博客:
Q Q: 3774 86624
第一页,共29页。
课程安排
分布式文件系统与HDFS
HDFS体系结构与基本概念***
HDFS的文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
(见源码)
文件包括:
fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
edits:操作日志文件。
fstime:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中。
hdfs-
第七页,共29页。
Datanode
提供真实文件数据的存储服务。
(见源码)
文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是64MB,以一个256MB文件,共有256/64=4个Block.
不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
Replication。多复本。默认是三个。
hdfs-
第八页,共29页。
SecondaryNameNode
HA的一个解决方案。但不支持热备。配置即可。
(见源码)
执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,同时重置NameNode的edits.
默认在安装在NameNode节点上,但这样...不安全!
第九页,共29页。
Shell命令练****验证块大小
方法:上传小于64MB的文件,观察块大小
验证:使用 观察
第十页,共29页。
HDFS的JavaAPI_读文件
.
1
2
"hdfs://:9000/test/"
第十一页,共29页。
HDFS的java访问接口——
写文件 create
读取文件 open
删除文件delete
创建目录 mkdirs
删除文件或目录 delete
列出目录的内容 listStatus
显示文件系统的目录和文件的元数据信息 get
第十二页,共29页。
HDFS的读取文件
private static get() throws URISyntaxException,
IOException {
Configuration conf = new Configuration();
URI uri = new URI("hdfs://hadoop240:9000");
final = (uri , conf);
return ;
}
第十三页,共29页。
HDFS的读取文件
/**
* 读取文件,调用的open(path)
* ***@throws Exception
*/
private static void readFile() throws Exception {
= get();
FSDataInputStream openStream = (new Path("hdfs://itcast0106:9000/aaa"));
(openStream, , 1024, false);
(openStream);
}
第十四页,共29页。
HDFS的目录
/**
* 创建目录,调用的mkdirs(path)
* ***@throws Exception
*/
private static void mkdir() throws Exception {
= get();
(new Path("hdfs://itcast0106:9000/bbb"));
}
/**
* 删除目录,调用的deleteOnExit(path)
* ***@throws Exception
*/
private static void rmdir() throws Exception {
= get();
(new Path("hdfs://itcast0106:9000/bbb"));
}
第十五页,共29页。
HDFS的遍历目录
/**
* 遍历目
传智播客培训课程hdfs 来自淘豆网www.taodocs.com转载请标明出处.