2012-02-17 7 views
2

데이터를 Hadoop 파일 시스템과 동기화하고 싶습니다. 이 데이터는 예정된 MapReduce 작업의 입력으로 사용하기위한 것입니다.HBase/HDFS에 데이터를 동기화하고이를 MapReduce 작업의 입력으로 사용하십시오.

이 예는 더 설명 할 수 있습니다

내가 단어의 무리가 포함 된 문서의 입력 스트림을 가지고 있다고하자,이 말은 맵리 듀스 단어 수 작업의 입력으로 필요하다. 따라서 각 문서에 대해 모든 단어를 파싱하여 파일 시스템에 업로드해야합니다. 그러나 동일한 문서가 입력 스트림에서 다시 도착하면 변경 사항 만 파일 시스템에 업로드 (또는 삭제)해야합니다.

데이터는 어떻게 저장해야합니까? HDFS 또는 HBase를 사용해야합니까? 데이터 양은 그다지 크지 않으며 어쩌면 2GB입니다.

HDFS 및/또는 HBase의 입력으로 예약 된 MapReduce 작업을 시작할 수 있습니까?

답변

0

나는이 직업에 가장 적합한 도구를 먼저 선택하거나 적절한 선택을하기 위해 조사를 수행 할 것입니다. 당신은 가장 중요한 단계 인 질문을하고 있습니다. 처리 할 데이터의 양을 감안할 때 Hadoop은 아마도 하나의 옵션 일 것입니다. 이것이 더 크고 더 나은 것을 향한 첫 번째 단계라면, 그것은 그 분야를 좁힐 것입니다.

나는 내가 알고있는 도구를 사용한다는 것을 의미하는 가장 간단한 접근법으로 시작할 것입니다. 코드를 유연하게 작성하여 더 많은 것을 배우거나로드 블록을 실행할 때 원래 선택 사항을 더 나은 코드로 쉽게 대체 할 수 있습니다. 질문에서 언급 한 내용을 감안할 때, HDFS를 사용하여 데이터를 HDFS 폴더 (hadoop fs -put ...)로 푸시하는 Hadoop 명령 줄 도구를 사용하여 시작합니다. 그런 다음 MR 작업을 작성하여 처리를 수행하고 수동으로 실행합니다. 그것이 작동하고있을 때 아마 작업 스케줄링을 처리하기 위해 cron을 사용할 것입니다.

그 곳을 시작할 수 있습니다. 프로세스를 구축하면서 HBase가 원하는 것을 저장할 수있는 지점에 도달하면 그 곳으로 전환하십시오. 한 번에 한 가지 문제를 해결하면 각 단계에서 어떤 도구가 올바른 선택인지 명확하게 알 수 있습니다. 예를 들어 스케줄링 단계로 넘어 가서 cron이 필요한 것을 수행하지 못한다는 것을 알고있을 수 있습니다. cron이 수행하지 않는 작업 스케줄링 요구 사항이있을 수 있습니다. 그래서 다른 도구를 선택하십시오.

관련 문제