HDFS(自我修复的分布式文件系统)

        HDFS(自我修复的分布式文件系统)

 

HDFS概念:

磁盘块:

每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整数倍。文件系统块一般为几千字节,而磁盘块一般为512字节。

 

HDFS块(block):

抽象块的两个好处:

1.文件的存储空间将以整个集群的空间大小存储,并不是单个node硬盘的大小。

2.可以备份数据块,如果有数据块损坏,将会读取备份的数据块,不影响用户的正常使用,并且会自动修复备份块的份数(即:将损坏的块重新从备份的块复制并存储)

 

显示块的信息:

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop   fsck   /   files   -blocks

 

命令行接口

配置文件解释:

 

#设置hadoop默认文件系统

fs.default.name

hdfs://localhost:9000

#这里是设置文件系统块备份的数量

<name> dfs.replication</name>

<value>1</value>

 

基于文件系统操作

#查看HDFS文件列表

[root@dlxa180 hadoop-0.20.3-dev]# hadoop fs -ls

Found 4 items

drwxr-xr-x   - root supergroup          0 2011-11-09 14:39 /user/root/in

drwxr-xr-x   - root supergroup          0 2011-11-09 14:36 /user/root/input

drwxr-xr-x   - root supergroup          0 2011-11-09 14:41 /user/root/out

drwxr-xr-x   - root supergroup          0 2011-11-09 14:36 /user/root/output

 

[root@dlxa180[微软中国1]  tools]# hadoop fs -copyFromLocal /home/tools/ucarp-1.5.2.tar.gz aaa

copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/root/aaa. Name node is in safe mode.

[root@dlxa180 tools]# hadoop dfsadmin -safemode[微软中国2]  leave

Safe mode is OFF

[root@dlxa180 tools]# hadoop fs -copyFromLocal /home/tools/ucarp-1.5.2.tar.gz aaa

[root@dlxa180 tools]# hadoop fs -ls

Found 5 items

-rw-r--r--   1 root supergroup     429089 2011-11-10 14:02 /user/root/aaa

drwxr-xr-x   - root supergroup          0 2011-11-09 14:39 /user/root/in

drwxr-xr-x   - root supergroup          0 2011-11-09 14:36 /user/root/input

drwxr-xr-x   - root supergroup          0 2011-11-09 14:41 /user/root/out

drwxr-xr-x   - root supergroup          0 2011-11-09 14:36 /user/root/output

HDFS API之旅

上传本地文件到HDFS

 

[root@dlxa180 hadoop-0.20.3-dev]# echo "hello my hadoop hdfs" > test1

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop dfs -put test1 test

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop dfs -ls test

Found 1 items

-rw-r--r--   1 root supergroup         21 2011-11-09 14:12 /user/root/test

 

HDFS上的文件复制到本地

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop dfs -get test getin

[root@dlxa180 hadoop-0.20.3-dev]# cat getin

hello my hadoop hdfs

 

删除HDFS上的文件

 

 

查看HDFS下的某个文件

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop dfs -cat aa/*

hello word

hello hadoop

管理与更新

#查看HDFS的基本信息

[root@dlxa180 hadoop-0.20.3-dev]# bin/hadoop dfsadmin –report

#离开安全模式

[root@dlxa180 hadoop-0.20.3-dev]#bin/hadoop dfsadmin -safemode leave 

#进入安全模式

[root@dlxa180 hadoop-0.20.3-dev]#bin/hadoop dfsadmin –safemode enter

 

添加节点

可以将namenode的hadoop目录复制到新的数据节点上,并修改master和slave

负载均衡:

[root@dlxa180 hadoop-0.20.3-dev]#bin/start-balancer.sh

starting balancer, logging to /usr/local/hadoop-0.20.3-dev/logs/hadoop-root-balancer-dlxa180.out

Time Stamp        Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

The cluster is balanced. Exiting...

Balancing took 273.0 milliseconds

 


 [微软中国1]将本地文件上传到HDFS中

 [微软中国2]如果是安全模式,可以用此命令离开安全模式!

posted on 2011-11-15 09:06  wangbokun  阅读(1315)  评论(0编辑  收藏  举报

导航