您的位置:首页 > 运维架构

hadoop 的HDFS 分布式存储系统

2013-12-15 20:31 316 查看
学了一个星期了hadoop了,该进行对学习的一些东西进行总结一下,当时复习了。第一步当然是先把hadoop开发环境搭建起来并运行

HDFS和maoReduce是hadoop的核心组成吧,也是hadoop的基础,我也是一直在学习这方面的知识,通过一些文档和视频教程进行学习。一句话描述下hadoop的HDFS:就是把大文件或大数据存放在很多节点的数据块中。文件、节点、数据块 HDFS就是围绕着这三个词进行设计。
HDFS分布式文件系统是一种通过网络在多台主机上分享文件的文件系统,可让多机器上的多用户进行分享文件和存储空间。适用于一次写入多次查询的情况,不支持并发写的情况,对于小数据不适合。

HDFS的shell操作也就是一些常用的类似linux的命令的学习,对HDFS的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对

HDFS 的操作命令类似于linux 的shell 对文件的操作,如ls、mkdir、rm 等。

-help [cmd] //显示命令的帮助信息

-ls(r) <path> //显示当前目录下所有文件

-du(s) <path> //显示目录中所有文件大小

-count[-q] <path> //显示目录中文件数量

-mv <src> <dst> //移动多个文件到目标目录

-cp <src> <dst> //复制多个文件到目标目录

-rm(r) //删除文件(夹)

-put <localsrc> <dst> //本地文件复制到hdfs

-copyFromLocal //同put

-moveFromLocal //从本地文件移动到hdfs

-get [-ignoreCrc] <src> <localdst> //复制文件到本地,可以忽略crc校验

-getmerge <src> <localdst> //将源目录中的所有文件排序合并到一个文件中

-cat <src> //在终端显示文件内容

-text <src> //在终端显示文件内容

-copyToLocal [-ignoreCrc] <src> <localdst> //复制到本地

-moveToLocal <src> <localdst>

-mkdir <path> //创建文件夹

-touchz <path> //创建一个空文件

#hadoop fs -ls / 查看HDFS根目录

#hadoop fs -mkdir /test 在根目录创建一个目录test

#hadoop fs -mkdir /test1 在根目录创建一个目录test1

#echo -e 'hadoop second lesson' >test.txt

#hadoop fs -put ./test.txt /test 

或#hadoop fs -copyFromLocal ./test.txt /test

#cd ..

#hadoop fs -get /test/test.txt .

或#hadoop fs -getToLocal /test/test.txt .

#hadoop fs -cp /test/test.txt /test1

#hadoop fs -rm /test1/test.txt

#hadoop fs -mv /test/test.txt /test1

#hadoop fs -rmr /test1

这些命令说实话我还真是无法全部消化,只能记下来,下次用的时候在查了。

下面介绍下namenode,datenade,block,SecondaryNameNode
nameNode作用就是管理文件的目录结构,管理数据节点。名字节点维护两套数据,一套是文件目录与数据块之间的关系,另一套是数据块与节点之间的关系

datenode的作用就是HDFS 中真正存储数据的。

DataNode 在

blocl就是HDFS存储数据的时候是按照block 为单位读写数据的。block 是hdfs 读写数据的基本单位。默认是64M

SNN 只有一个职责,就是合并NameNode 中的edits 到fsimage 中。

HDFS 的java 访问接口:使用FileSystem api进行读写数据

HDFS的RPC机制:RPC 是远程过程调用(Remote Procedure Call),即远程调用其他虚拟机中运行的javaobject。RPC 是一种客户端/服务器模式,那么在使用时包括服务端代码和客户端代码,还有我们调用的远程过程对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: