Hadoop HDFS分布式文件系统(4)

4.列出根目录下所有内容
[grid@h1 Hadoop-0.20.2]$ bin/hadoop dfs -ls
Found 2 items
drwxr-xr-x  - grid supergroup          0 2012-09-17 19:44 /user/grid/in
drwxr-xr-x  - grid supergroup          0 2012-09-17 19:56 /user/grid/out
  列出根目录下out子目录所有内容
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfs -ls ./out/
Found 2 items
drwxr-xr-x  - grid supergroup          0 2012-09-17 20:39 /user/grid/out/_logs
-rw-r--r--  2 grid supergroup        29 2012-09-17 20:40 /user/grid/out/part-r-00000

5.查看part-r-00000文件内容
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfs -cat /user/grid/out/part-r-00000      必须写绝对路径,因为hadoop下没有当前目录概念
hello 2                    统计单词出现2次
leonarding 1            统计单词出现1次
world 1                    统计单词出现1次
小结:cat 对象必须是文件,不能对目录查看

6.删除hadoop文件系统文件和目录
必须选项 -rmr  不能-rm  use -rmr instead
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfs -rmr /user/grid/in/input/test2.txt    删除hadoop文件系统里的test2.txt文件,一定要加目录路径
Deleted hdfs://h1:9000/user/grid/in/input/test2.txt
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfs -rmr /user/grid/in/test2.txt          删除hadoop文件系统文件,一定要加目录路径
Deleted hdfs://h1:9000/user/grid/in/test2.txt
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfs -rmr /user/grid/in                    删除in目录
Deleted hdfs://h1:9000/user/grid/in
h2  h4  的Linux操作系统上面看文件是不是已经被删除了,占用block已经被释放了
小结:删除HDFS文件系统内文件和目录时选项必须要写 -rmr  而不能 -rm哦

7.从Linux操作系统上看hadoop文件存放在哪里  数据只会存放在数据节点  h2  h4,而不会存放在名称节点 h1

[grid@h4 current]$ pwd
    /home/grid/hadoop-0.20.2/data/current
[grid@h4 current]$ ll                h4节点
总用量 224
-rw-r--r--. 1 grid hadoop    17  9月 17 19:44 blk_1740766816993665795
-rw-r--r--. 1 grid hadoop    11  9月 17 19:44 blk_1740766816993665795_1013.meta
-rw-r--r--. 1 grid hadoop  9151  9月 17 20:41 blk_5787152218309601238
-rw-r--r--. 1 grid hadoop    79  9月 17 20:41 blk_5787152218309601238_1026.meta
-rw-r--r--. 1 grid hadoop 142466  9月 17 20:35 blk_-5912167526685784374
-rw-r--r--. 1 grid hadoop  1123  9月 17 20:35 blk_-5912167526685784374_1020.meta
-rw-r--r--. 1 grid hadoop      4  9月 17 20:28 blk_618795584037082806
-rw-r--r--. 1 grid hadoop    11  9月 17 20:28 blk_618795584037082806_1019.meta
-rw-r--r--. 1 grid hadoop    29  9月 17 20:40 blk_-6836333776136840432
-rw-r--r--. 1 grid hadoop    11  9月 17 20:40 blk_-6836333776136840432_1026.meta
-rw-r--r--. 1 grid hadoop    12  9月 17 19:44 blk_7008012568223069759
-rw-r--r--. 1 grid hadoop    11  9月 17 19:44 blk_7008012568223069759_1012.meta
-rw-r--r--. 1 grid hadoop  16737  9月 17 20:39 blk_8327174067432266416
-rw-r--r--. 1 grid hadoop    139  9月 17 20:39 blk_8327174067432266416_1025.meta
-rw-r--r--. 1 grid hadoop  1734  9月 18 07:51 dncp_block_verification.log.curr
-rw-r--r--. 1 grid hadoop    158  9月 17 20:27 VERSION
[grid@h2 current]$ ll                h2节点
总用量 224
-rw-r--r--. 1 grid hadoop    17  9月 17 19:44 blk_1740766816993665795
-rw-r--r--. 1 grid hadoop    11  9月 17 19:44 blk_1740766816993665795_1013.meta
-rw-r--r--. 1 grid hadoop  9151  9月 17 20:41 blk_5787152218309601238
-rw-r--r--. 1 grid hadoop    79  9月 17 20:41 blk_5787152218309601238_1026.meta
-rw-r--r--. 1 grid hadoop 142466  9月 17 20:35 blk_-5912167526685784374
-rw-r--r--. 1 grid hadoop  1123  9月 17 20:35 blk_-5912167526685784374_1020.meta
-rw-r--r--. 1 grid hadoop      4  9月 17 20:28 blk_618795584037082806
-rw-r--r--. 1 grid hadoop    11  9月 17 20:28 blk_618795584037082806_1019.meta
-rw-r--r--. 1 grid hadoop    29  9月 17 20:40 blk_-6836333776136840432
-rw-r--r--. 1 grid hadoop    11  9月 17 20:40 blk_-6836333776136840432_1026.meta
-rw-r--r--. 1 grid hadoop    12  9月 17 19:44 blk_7008012568223069759
-rw-r--r--. 1 grid hadoop    11  9月 17 19:44 blk_7008012568223069759_1012.meta
-rw-r--r--. 1 grid hadoop  16737  9月 17 20:39 blk_8327174067432266416
-rw-r--r--. 1 grid hadoop    139  9月 17 20:39 blk_8327174067432266416_1025.meta
-rw-r--r--. 1 grid hadoop  1541  9月 18 07:51 dncp_block_verification.log.curr
-rw-r--r--. 1 grid hadoop    158  9月 17 20:27 VERSION
小结:hadoop数据只在datanode节点保存(h2 h4)不在namenode保存,由于我设置了 数据块复制2份,那么在h2 h4 里面文件都是一模一样的(冗余防错)hdfs_site.xml -> <name>dfs.data.dir</name>指定数据节点存放数据位置 /home/grid/hadoop-0.20.2/data/
hadoop一个文件是由数据块组成,容量最大不超过64M,是由数据和元数据组成。
datanode文件采用一次性写入多次读,不需修改,可以删除在重新写入
NAMENODE介绍
namenode节点中保存是映像文件和事务日志,即元数据,如果元数据被破坏了,那么我们整个HDFS系统就崩溃了
映像文件:存放文件系统命名空间 ,例如 文件映像  文件属性
事务日志:存放HDFS元数据记录
什么是元数据:记录每个文件数据块在各个datanode上位置和副本(文件数据块都放在哪个节点上,副本有几个),元数据也可以复制多个副本,只在namenode里添加副本,缺点就是副本越多,空间利用率越小,安全性越大,速度越慢
namenode冗余:namenode是HDFS文件系统总控节点,但它是一个单点,如果出现故障也需要手动切换到secondarynamenode SNN
namenode不参与实际数据传输,只负责元数据查询
namenode元数据位置:
[grid@h1 current]$ pwd
/home/grid/hadoop-0.20.2/tmp/dfs/name/current
[grid@h1 current]$ ll
总用量 16
-rw-r--r--. 1 grid hadoop    4  9月 18 08:58 edits      事务日志
-rw-r--r--. 1 grid hadoop 2130  9月 18 08:58 fsimage    映像文件
-rw-r--r--. 1 grid hadoop    8  9月 18 08:58 fstime    事务日志
-rw-r--r--. 1 grid hadoop  101  9月 18 08:58 VERSIO

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/de0ee7ce59179ae75428bf41088e9531.html