Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31043
  • 博文数量: 11
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-10 14:34
文章分类

全部博文(11)

文章存档

2017年(11)

我的朋友

分类: 大数据

2017-12-06 19:58:55

写在前面的话

Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基于纠删码(erasure encoding)的容错方式,与传统的副本方式相比,在同等可用性的情况下, 能大幅节省一半以上的空间,这也是自hdfs诞生近这十年来,数据可靠性机制上的一个重大变化(之前一直都是副本容错方式)。此外hdfs3.0.0还增加了其它的一些特性,例如在Namenode HA中支持3Namenode,可以容忍2Namenode失效,而hdfs2.x只能容忍1Namenode失效。

本文以的方式,在“”上记录自己使用hadoop-3.0.0-beta1hdfs的点点滴滴,包括从零开始搭建分布式hdfs3.0,如何动态扩展hdfs节点、如何使用hdfs3.0的纠删码容错等等。不当之处,请大家发邮件aishuc@126com给艾叔,谢谢!

 

4.1 查看目录内容

例子,查看hdfs的根目录内容,绿色部分表示要查看的路径

[user@nn1 ~]$ hdfs dfs -ls /

 

4.2 上传文件

例子,将/etc/profile上传到hdfs的根目录下,并验证。

注意

1. file:///etc/profilefile://表示本地文件系统,/etc/profile是本地文件的路径。

2. 后面的/,表示的是hdfs的根目录,因为core-site.xml中配置了默认的文件系统是hdfs://nn1:9001

[user@nn1 ~]$ hdfs dfs -cp file:///etc/profile /

[user@nn1 ~]$ hdfs dfs -ls /

Found 1 items

-rw-r--r--   3 user supergroup       1872 2017-11-27 14:45 /profile

 

4.3 上传目录

例子,将hadoop配置文件目录上传到hdfs的根目录下,并验证。

[user@nn1 ~]$ hdfs dfs -cp file:///home/user/hadoop-3.0.0-beta1/etc/hadoop/ /

[user@nn1 ~]$ hdfs dfs -ls /

Found 2 items

drwxr-xr-x   - user supergroup          0 2017-11-27 14:49 /hadoop

-rw-r--r--   3 user supergroup       1872 2017-11-27 14:45 /profile

[user@nn1 ~]$ hdfs dfs -ls /hadoop

Found 31 items

-rw-r--r--   3 user supergroup       7861 2017-11-27 14:49 /hadoop/capacity-scheduler.xml

-rw-r--r--   3 user supergroup       1335 2017-11-27 14:49 /hadoop/configuration.xsl

注意

1. file:///home/user/hadoop-3.0.0-beta1/etc/hadoop/ 是源路径,它和后面的/之间有一个空格

2. 后面的/,表示hdfs的根目录

3. 上传文件和上传目录的用法一样,并不需要增加-r选项

4.4 下载文件

例子,将刚上传的profile下载到本地/tmp目录下

[user@nn1 ~]$ hdfs dfs -cp /profile file:///tmp/

[user@nn1 ~]$ ls -l /tmp/profile

-rw-r--r--. 1 user user 1872 Nov 27 15:02 /tmp/profile

注意

1. 上传和下载其实就是对调一下hdfs和本地路径,我们只需要清楚:本地路径前面要加file://,而hdfs直接用就可以了;

2. 如果在core-site.xml中配置默认文件系统为file://,那么/表示的就是本地文件系统的根目录,如果要访问hdfs,则要使用hdfs://nn1:9001/后面再跟路径。

 

4.5 下载目录

例子,下载hdfs中的/hadoop/tmp目录下

[user@nn1 ~]$ hdfs dfs -cp /hadoop file:///tmp/

[user@nn1 ~]$ ls -l /tmp/

total 28

drwxr-xr-x. 3 user user 4096 Nov 27 15:05 hadoop

注意:复制目录和复制文件用法完全一样。

 

4.6 删除文件

删除刚上传的profile

[user@nn1 ~]$ hdfs dfs -rm /profile

Deleted /profile

[user@nn1 ~]$ hdfs dfs -ls /

Found 1 items

drwxr-xr-x   - user supergroup          0 2017-11-27 14:49 /hadoop

 

4.7 删除目录

删除刚上传的hadoop目录

[user@nn1 ~]$ hdfs dfs -rm -r /hadoop

Deleted /hadoop

[user@nn1 ~]$ hdfs dfs -ls /

注意:删除目录多了一个选项-r

 

上一篇:

原创文章,转载请注明: 转载自

本文链接地址

阅读(1212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~