以前也有人这样做过,但通常人们使用FSImage。(名称节点文件的副本。) 然后,他们会把它放到一个hive表中,然后你可以查询它来获得关于你的hdfs文件系统的信息。 下面是一个really good tutorial,它解释了如何导出fsimage并将其放入hive表中。 下面是另一个that I think I prefer: 获取fsimage文件并将其复制到HDFS #以hdfs用户身份连接到任何Hadoop集群节点
# downloads the fsimage file from namenode
hdfs dfsadmin -fetchImage /tmp
# converts the fsimage file into tab delimited file
hdfs oiv -i /tmp/fsimage_0000000000450297390 -o /tmp/fsimage.csv -p Delimited
# remove the header and copy to HDFS
sed -i -e "1d" fsimage.csv
hdfs dfs -mkdir /tmp/fsimage
hdfs dfs -copyFromLocal /tmp/fsimage.csv /tmp/fsimage
# create the intermediate external table in impala
CREATE EXTERNAL TABLE HDFS_META_D (
PATH STRING ,
REPL INT ,
MODIFICATION_TIME STRING ,
ACCESSTIME STRING ,
PREFERREDBLOCKSIZE INT ,
BLOCKCOUNT DOUBLE,
FILESIZE DOUBLE ,
NSQUOTA INT ,
DSQUOTA INT ,
PERMISSION STRING ,
USERNAME STRING ,
GROUPNAME STRING)
row format delimited
fields terminated by '\t'
LOCATION '/tmp/fsimage';
2条答案
按热度按时间mnemlml81#
以前也有人这样做过,但通常人们使用FSImage。(名称节点文件的副本。)
然后,他们会把它放到一个hive表中,然后你可以查询它来获得关于你的hdfs文件系统的信息。
下面是一个really good tutorial,它解释了如何导出fsimage并将其放入hive表中。
下面是另一个that I think I prefer:
获取fsimage文件并将其复制到HDFS #以hdfs用户身份连接到任何Hadoop集群节点
一旦它在一个表中,你真的可以在scala/spark中做剩下的事情。
gjmwrych2#
我最终使用:
作为一个Scala初学者,我不知道如何创建
count++
(答案是count += 1
)。