我目前正在做一个项目,我需要将数据批量导入Hadoop集群。需要导入Hadoop的数据驻留在SATA磁盘上。需要导入的数据是 Encase 取证磁盘映像 (E01(。我创建了一个应用程序,可以从这些图像中提取文件并将这些文件导入Hadoop,这工作正常,但我需要手动启动该过程。
我想通过热插拔 SATA 驱动器并自动启动提取过程来自动化该过程。我用Java编写了我的程序,由于我使用一些外部库来分析图像,因此需要这样。我在互联网上搜索了一个使用 Java 来检测新插入的驱动器的解决方案,但我发现可以检测 USB 驱动器或使用 udev 规则启动进程的库(我可以使用它,但更喜欢 Java 解决方案(
有谁知道是否存在我所描述的东西?或者有人可以指出我正确的方向吗?将不胜感激!
差点忘了...我使用 ubuntu 12.04 服务器版作为我的操作系统。
udisk是一个D-Bus API,提供有关媒体插入和删除的信息(包括通知(,您可以使用dbus-java订阅通知。
或者,您可以让 Java 应用程序侦听localhost
套接字,并编写一个通过套接字发送相应事件信息的udev
规则。