2013-08-12 1 views
0

아마존 웹 서비스에서 실행되는 mapreduce 프로그램 (실제로는 다소 복잡한 단어 계산 알고리즘)으로 작업하고 있습니다. AWS 노드에서 실행할 .jar 파일을 생성했습니다. 내가 지금하고있는 일은 모든 mapreduce 라이브러리 항아리를 .jar 파일에 통합하는 것입니다. 모든 것은 잘 작동하지만, 이것은 아주 좋은 습관이 아닐 것이라고 생각합니다. (그들은 기계 이미지의 업데이트를했는데 이것과 관련 될 수있는 이상한 예외가 생겼습니다.) 누군가 내가 내 항아리에 외부 라이브러리를 추가하지 않고도 할 수있는 아마존에 설치된 hadoop 버전과 자동으로 연결할 수있는 방법을 설명 할 수 있습니까?자동으로 mapreduce 라이브러리로 연결

여러분의 도움을 많이 구합니다!

답변

2

그래서 Amazons Elastic MapReduce를 사용하고 있습니다!? 사용할 수있는 다른 버전의 다른 버전이 있습니다 (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-ami.html#emr-default-versions 참조).

hadoop jars 자체 + 제 3 자 종속성 (예 : commons-io)은 이미 작업의 클래스 경로에 있습니다. 당신 말이 맞아요, 당신은 일 항아리에 다른 버전으로 hadoop 항아리를 묶는다면 문제를 만들 수 있습니다. 그래서 내가 할 수있는 말은 : - 어떤 hadoop 버전 (ami 버전 기반)을 결정할 것인가? - 그 hadoop 버전에서 사용되는 라이브러리가 무엇인지 결정한다. (실행중인 ec2 인스턴스를 검사하거나 hadoop 버전을 다운로드한다. apache website) - 올바른 hadoop 프로그램을 컴파일하고 뚱뚱한 항아리를 묶을 때 모든 hadoop 및 hadoops- 타사 항아리를 제외하십시오

+0

감사합니다. 시도해 보겠습니다. – DDW

+0

안녕하세요, 처음에는 일식을 사용하여 실행 가능한 항아리로 포장하려했는데, 이제 항아리로 포장하는 옵션도 있습니다 (주류를 선택 함). 이 방법으로 나는 hadoop 항아리를 제외 할 수 있습니다. AWS에서 모든 것이 완벽하게 작동했습니다. 다시 한번! – DDW