2013-11-27 4 views
0

Hadoop에서 맵이 아닌 작업을 실행할 수 있는지 궁금합니다. 예를 들어, "hello word"라는 자바 프로그램이 있습니다. 그렇다면 예제를 보여 주시겠습니까? 대단히 감사합니다.Hadoop에서 맵이 아닌 작업 실행

+0

데이터베이스입니다 ... 그것은 운영 체제 – Pepe

+0

아니다 그러나 우리는 바로 여기에 맵리 듀스 작업을 제출할 수 있습니다. 나는 온라인에서 예제를 conf.setMapperClass (Map.class)로 보았다. conf.setCombinerClass (Reduce.class); conf.setReducerClass (Reduce.class); 그러나 단순한 자바 인 경우 Map 또는 Reduce 클래스가 없습니다. Main 함수 만 있습니다. – user3034824

+0

map-reduce의 기본 개념은 작업을 하위 작업으로 분할하여 병렬로 처리하는 것입니다. hadoop에 작업을 제출하면 입력을 읽고 분할하여 각 분할을 매퍼로 전달하고 결과를 축소기에 전달합니다. 'hello word'는 hadoop의 기본 아이디어가 아닙니다. 왜냐하면 우리가 hadoop의 기본 예제로 '단어 수'를 가지고있는 이유입니다. –

답변

1

당신은 항아리를 만들고 hadoop jar 그것을 실행할 수 있습니다 : 하둡 음, 어디

[[email protected] hellworld]# cat HelloWorld.java 

public class HelloWorld { 

    public static void main(String[] args) throws Exception { 
     System.out.println("Hello World!"); 
}} 


[[email protected] hellworld]# javac HelloWorld.java 
[[email protected] hellworld]# jar cvf helloworld.jar HelloWorld.class 

[[email protected] hellworld]# ~/Downloads/hadoop-2.1.0-beta/bin/hadoop jar helloworld.jar HelloWorld 
Hello World! 
+0

그것은 작동합니다! 고맙습니다 ~~ – user3034824

+1

이 답변이 내 답변으로 받아 들여 졌기 때문에 OP가 원하는 모든 것을 클래스 패스에 hadoop 항아리를 추가하는 것으로 가정합니다. MapReduce 워크 플로우가 아닌 hadoop에서 분산 컴퓨팅을 수행하는 방법에 대한 질문이 있다고 생각했습니다. –

2

Hadoop 1.x 이전 버전에서는 불가능합니다. 그러나 이것이 바로 YARN이 설계된 것입니다. MapReduce 2.0은 YARN 위에 구축되었습니다.

YARN은 분산 리소스 관리의 추상화입니다. 밖으로 here

편집을 확인 : 사실 나는 하둡 1.x에서에, 거짓말 전에 어떤 해커와 비 맵리 듀스 작업을 할 아직도 어느 정도 가능하다. Apache Giraph이 구현 된 방식을 보면 MapReduce 프레임 워크에 연결되어 작업을 분배합니다. Mapper는 실제 코드를 실행하기위한 컨테이너가됩니다. 그러나 제 겸손한 견해로는 그것이 우아한 해결책이 아니 었습니다. YARN이 출시 된 이래 YARN에 Giraph를 구현 한 것도 있습니다. (다시 IMHO) 훨씬 더 우아합니다.

+0

대단히 고마워요. 먼저 해 볼까요. – user3034824

관련 문제