Hadoop3-分布式文件系统1
来源:互联网 发布:淘宝如何返利 编辑:程序博客网 时间:2024/06/05 04:10
Hadoop Distributed Filesystem - 分布式文件系统
HDFS
以流式数据访问模式来存储超大文件。
超大文件
流式数据访问
商用硬件(故障)
不适合在HDFS上运行的应用:
低时间延迟的数据访问(HBase更好的选择)
大量小文件
多用户写入,任意修改文件
概念:
数据块:每个磁盘有默认数据块大小,磁盘进行IO的最小单位。
单个磁盘之上的文件系统通过磁盘快来管理文件系统中的块,
该文件系统块的大小可以是磁盘块的整数倍。
文件系统块一般为几千字节,磁盘块一般512字节。
HDFS文件系统 块默认为64MB,小于一个块大小的文件不会
占据整个块的空间。
分布式文件系统中块进行抽象的好处:
文件可以存储在集群中任意一个磁盘
使用块抽象而非整个文件作为存储单元
块适合用于数据备份。
namenode & datanode
HDFS集群有两类节点,并以管理者-工作者模式运行
namenode(管理者)
管理文件系统命名空间,维护文件系统树及整棵树上的所有文件和目录
(这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和
编辑日志文件)。也记录文件中各个块所在的数据节点信息,但它并不永久
保存块的位置信息,这些信息会在系统启动时由数据节点重建。
datanode(工作者)
文件系统的工作节点。根据需要存储并检索数据块,并且定期向namenode
发送它们所存储的块的列表。
如果允许namenode服务的机器毁坏,文件系统上的所有文件将会丢失。对namenode
实现容错非常重要,Hadoop提供两种机制:
1.备份那些组成文件系统元数据持久状态的文件。
2.运行一个辅助的namenode,但不能被用作namenode。定期通过编辑日志合并命名
空间镜像,防止编辑日志过大。
命令行接口
(伪分布式配置:fs.default.name =hdfs://localhost/ 设置默认文件系统
dfs.replication=1 文件系统复本)
基本文件系统操作:
1.本地文件系统复制文件到HDFS:
$ hadoop fs -copyFromLocalinput/docs/1.txt hdfs://localhost/user/t/1.txt
[简化] hadoop fs -copyFromLocal input/docs/1.txt user/t/1.txt
或 ~~~~ input/docs/1.txt1.txt 相对路径
2.文件复制回本地文件系统,检查是否一致:
$ hadoop fs -copyToLocal 1.txt 1.copy.txt
$ md5 input/docs/1.txt1.copy.txt
3.HDFS文件列表
$hadoop fs -mkdir books
$hadoop fs -ls .
Hadoop 文件系统
java抽象类: org.apache.hadoop.fs.FileSystem 定义一个文件系统接口
fs.LocalFileSystem
hdfs.DistributedFileSystem
hdfs.hftpFileSystem
hdfs.HsftpFileSystem
fs.HarFileSystem
fs.kfs.kosmosFileSystem
fs.ftp.FTPFileSystem
fs.s3native.NativeS3FileSystem
fs.sa.S3FileSystem
列出本地文件系统根目录下文件:
$hadoop fs -ls file:///
Java接口
1.从Hadoop URL中读取数据
InputStream in=null;
try{
in=new URL("hdfs://host/path").openStream();
}finally{
IOUtils.closeStream(in);
}
//
static{
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
2.通过FileSystemAPI读取数据
HDFS通过Path对象代表文件
public static FileSystem get(Configuration conf) throws IOException
//conf -> conf/core-site.xml
public static FileSystem get(URI uri,Configuration conf) throws IOException
FileSystem.open(Path f) throws IOException
[abstract] FSDataInputStream open(Path f,int bufferSize) throws IOException
- Hadoop3-分布式文件系统1
- Hadoop3-分布式文件系统2
- hadoop3.0 分布式搭建/安装
- hadoop3.0 分布式搭建/安装
- hadoop3
- hadoop3.0.0分布式集群安装过程
- 分布式基础学习(1)--分布式文件系统
- 分布式文件系统:概述(1)
- Hadoop分布式文件系统(1)
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 分布式文件系统
- 决策树绘图(二)
- C/C++ 求最大公约数和最小公倍数
- hadoop学习之ZooKeeper
- matlab特殊矩阵及向量创建
- Linux内核分析 - 网络[五]:vlan协议-802.1q
- Hadoop3-分布式文件系统1
- redo文件一
- cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)
- 7月2日
- 单例模式
- [FAQ]为什么引入lambda表达式
- 继承 类的重复定义问题
- ZOJ1004
- Flexviewer两个widget间的如何传值