使用Hadoop访问文件的最快速度



我需要以最快的速度访问单个文件,该文件的多个副本存储在使用Hadoop的许多系统中。我还需要以排序的方式找到每个文件的ping时间。我应该如何学习hadoop来完成这个任务?请快点帮忙。我的时间非常少。

如果需要更快地访问文件,只需使用setrep命令增加对该文件的复制因子。由于当前的硬件限制,这可能不会按比例增加文件吞吐量。

ls命令没有给出目录和文件的访问时间,它只显示了修改时间。使用离线图像查看器将hdfs fimage文件的内容转储为人类可读的格式。下面是使用缩进选项的命令。

bin/hdfs oiv -i fsimagedemo -p缩进-o fsimage.txt

来自fsimage.txt的示例o/p,查找ACCESS_TIME列。

INODE
  INODE_PATH = /user/praveensripati/input/sample.txt
  REPLICATION = 1
  MODIFICATION_TIME = 2011-10-03 12:53
  ACCESS_TIME = 2011-10-03 16:26
  BLOCK_SIZE = 67108864
  BLOCKS [NUM_BLOCKS = 1]
    BLOCK
      BLOCK_ID = -5226219854944388285
      NUM_BYTES = 529
      GENERATION_STAMP = 1005
  NS_QUOTA = -1
  DS_QUOTA = -1
  PERMISSIONS
    USER_NAME = praveensripati
    GROUP_NAME = supergroup
    PERMISSION_STRING = rw-r--r--

要以排序的方式获得ping时间,需要编写一个shell脚本或其他程序来提取每个INODE段的INODE_PATH和ACCESS_TIME,然后根据ACCESS_TIME对它们进行排序。您也可以像下面这样使用Pig。

我应该如何学习hadoop来完成这个任务?请快点帮忙。我的时间非常少。

如果你想在一两天内学会Hadoop是不可能的。

最新更新