HDFS的基础组成部分及基础操作

HDFS组件结构图解说:

 HDFS的基础组成部分及基础操作

1,如图所示中,NameNode充当主人角色,职责包括:管理文档系统的命名空间(名称空间),调节客户端访问到需要的文件(存储在DateNode中的文件)

2, DataNode充当奴隶角色,通常情况下,一台机器只部署一个DateNode,用来存储MapReduce程序需要的数据

3, NameNode会定期从DataNode那里收到心跳和Blockreport反馈

4,心跳反馈用来确保DataNode没有出现功能异常;

5, Blockreport包含DataNode所存储的块集合

二,HDFS设计原则

1,文件以块(块)方式存储

2,每个块带下远比多数文件系统来的大(预设64)

3,通过副本机制提高可靠度和读取吞吐量

4,每个区块至少分到三台DataNode上(一般,对NameNode进行raid1配置,对DataNode进行raid5配置)

5,单一主(NameNode)来协调存储元数据(元数据)

6,客户端对文件没有缓存机制(没有数据缓存)


三,NameNode (NN)

NameNode主要功能提供名称查询服务,它是一个jetty服务器(一个开源的servlet容器,嵌入式的web服务器)

NameNode保存metadate信息包括

文件物权和权限

文件包含哪些块

块保存在哪个DataNode(由DataNode启动时上报)

1, NameNode的metadate信息在启动后会加载到内存

2,元数据存储到磁盘文件名为“fsp_w_picpath”,

块的位置信息不会保存到fsp_w_picpath

四。DataNode (DN)

保存块

启动DN线程的时候会向NN汇报块信息


hadoop fs -cmd 

cmd:为具体的操作,基本上于UNIX的命令相同

参数:参数

hdfs资源URL格式:方案://bigdata/路径

方案:协议名,文件或hdfs

bigdata: namenode主机名

路径:路径

如:hdfs://localhost: 9000/user/块/用法

假设已经在core-site.xml设置了fs.default.name=hdfs://localhost: 9000,

则仅使用/user/块/用法即可

:

#创建目录

hadoop fs -mkidr myFirstDir 

#查看创建的目录

hadoop fs - ls/myFirstDir #返回为空,目前还没存放数据

#对当前创建目录存放文件

hadoop fs——/etc/shadow/myFirstDir

#查看目录下的文件

hadoop fs - ls/myFirstDir

#复制文件到指定的位置

hadoop fs -/hadoop目下的文件,/本地文件路径

hadoop fs -/myFirstDir影子/home/#下载阴影到/home目录下

#新建一个空文件

, hadoop fs -touchz/myFirstDir/newFile中。txt

#将hadoop上某个文件重命名

hadoop fs mv/myFirstDir/newFile中。txt/myFirstDir/bigdata。txt

#

#查看文件里的内容

hadoop fs猫/myFirstDir影子

#查看最后1000字节数据

hadoop fs多边形/myFirsDir影子

#删除文件\目录

hadoop fs rm - r/myFirstDir影子

hadoop fs rm - r/myFirstDir/二级

#查看HDFS下的文件

, hadoop fs - ls/

#查看集群数据的信息,登陆大师节点查看http://192.168.1.114:50070

管理与更新

#查看HDFS的基本统计信息

hadoop dfsadmin报告

#进出安全模式

hadoop dfsadmin -safemode输入

hadoop dfsadmin -safemode离开

#节点添加

添加一个新的DataNode节点,先在新加节点上安装好hadoop,

要和NameNode使用相同的配置(可以直接从NameNode复制),修改$ HADOOP_HOME/conf/主人文件,加入NameNode主机名。

然后在NameNode节点上修改$ HADOOP_HOME/conf/奴隶文件,加入新节点名,再建立新加节点无密码的SSH连接,运行启动命令为:

/bin/start-all.sh

#负载均衡

HDFS的数据在各个DataNode中的分布可能很不均匀,尤其是在DataNode节点出现故障或新增DataNode节点时。

新增数据块时NameNode对DataNode节点的选择策略也有可能导致数据块分布不均匀。

用户可以使用命令重新平衡DataNode上的数据块的分布:

start-balancer。sh


HDFS的基础组成部分及基础操作