2013-09-30 2 views
2

현재 Hadoop 클러스터로 데이터를 대량으로 가져와야하는 프로젝트에서 작업 중입니다. Hadoop으로 가져와야하는 데이터는 SATA 디스크에 있습니다. 가져와야하는 데이터는 Encase Forensics 디스크 이미지 (E01)입니다. 이러한 이미지에서 파일을 추출하고 이러한 파일을 Hadoop으로 가져 오는 응용 프로그램을 만들었지 만 제대로 작동하지만 수동으로 프로세스를 시작해야합니다.Linux에서 Java를 사용하여 새 SATA 드라이브를 삽입하는시기를 감지하는 방법은 무엇입니까?

SATA 드라이브를 핫 스왑하여 프로세스를 자동화하고 추출 프로세스를 자동으로 시작하려고합니다. 내 프로그램을 Java로 작성 했으므로 이미지를 분석하는 데 사용하는 외부 라이브러리로 인해 필요합니다. Java가 새로 삽입 된 드라이브를 감지하는 데 사용되는 솔루션을 인터넷에서 검색했지만 usb 드라이브를 감지 할 수있는 라이브러리가 있거나 udev 규칙을 사용하여 프로세스를 시작할 수있는 곳을 찾았습니다 (Java 솔루션을 선호하지만 사용할 수는 있습니다)

설명 된 내용이 있는지 누가 알 수 있습니까? 아니면 누군가가 올바른 방향으로 나를 가리킬 수 있습니까? 대단히 감사하겠습니다!

거의 잊어 버렸습니다 ... 나는 내 운영 체제로 우분투 12.04 Server Edition을 사용합니다.

+3

나는 자바 전문가는 아니지만 그러한 메커니즘의 존재는 나에게 의심스러워 보입니다. 실제로 udev에 대한 Java API 또는 커널 자체가 필요합니다. 물론, 당신도 JNI로 그 일을 할 수 있다고 생각합니다 ... –

+0

마음에 새겨야 할 점 : 마운트 지점을 폴링하거나, JNotify 또는 새로운 Java7 파일 IO가 도움이 될 것이라고 생각합니다. – PeterMmm

+0

전체 서버를 제어 할 수 있습니까? 아니면 다른 사람의 시스템에이 응용 프로그램을 설치할 필요가 있습니까? – chrylis

답변

4

udisks은 미디어 삽입 및 제거에 대한 정보 (알림 포함)를 제공하는 D-Bus API이며 dbus-java을 사용하여 알림에 가입 할 수 있습니다.

또는 Java 응용 프로그램을 localhost 소켓에서 청취하고 적절한 이벤트 정보를 소켓을 통해 전송 한 udev 규칙을 작성할 수 있습니다.

+0

서버가 완전히 제어 할 수 있습니다. 나는 dbus-java에 대해 간략하게 살펴 보았고 사용할 수있는 것으로 보인다. tnx! – Martijn

관련 문제