3.HDFS的数据与元数据

查看HDFS配置文件

$ vim /etc/hadoop/conf/hdfs-site.xml

找到dfs.namenode.name.dir的位置

dfs.namenode.name.dir
file:///dfs/nn

读取元数据文件

$ cd /dfs/nn/current
$ sudo -u hdfs hadoop oiv -i fsimage_0000000000000001003 -o fsimage.xml -p XML
$ echo $?
0

注意:返回值为0表示上一条指令执行成功

查看fsimage.xml,找到block的id为1073741980

$ vim fsimage.xml


  
    1073741980
  ...
  

根据id:1073741980查找block块文件

$ cd /dfs/dn/current
$ find ./ | grep 1073741980
./BP-214804625-192.168.41.129-1495453872490/current/finalized/subdir0/subdir0/blk_1073741980_1156.meta 
./BP-214804625-192.168.41.129-1495453872490/current/finalized/subdir0/subdir0/blk_1073741980  

找到文件blk_1073741980,然后查看block块内容

$ cat ./BP-214804625-192.168.41.129-1495453872490/current/finalized/subdir0/subdir0/blk_1073741980

ln -s /usr/java/jdk1.7.0_67-cloudera  /usr/java/default
echo -e 'export JAVA_HOME=/usr/java/default' >> /etc/profile 
echo -e 'export PATH=$JAVA_HOME/bin:$PATH'>> /etc/profile
echo -e 'export CLASSPATH=.:$JAVA_HOME/lib'>> /etc/profile

这样就可以看到文件的内容
验证了设计原则:元数据和数据分开存放,通过元数据可以找到数据

你可能感兴趣的:(3.HDFS的数据与元数据)