查看HDFS配置文件
$ vim /etc/hadoop/conf/hdfs-site.xml
找到dfs.namenode.name.dir的位置
<name>dfs.namenode.name.dir</name>
<value>file:///dfs/nn</value>
读取元数据文件
$ 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
<blocks>
<block>
<id>1073741980</id>
...
</block>
</blocks>
根据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
这样就可以看到文件的内容
验证了设计原则:元数据和数据分开存放,通过元数据可以找到数据
网友评论