복붙노트

[HADOOP] 돼지 파일에서 .jar를 사용하는 방법

HADOOP

돼지 파일에서 .jar를 사용하는 방법

smt.txt와 smo.txt라는 두 개의 입력 파일이 있습니다. jar 파일은 텍스트 파일을 읽고 Java 파일에 설명 된 규칙에 따라 데이터를 분할합니다. 그리고 pig 파일은 mapreduce를 수행하여 이러한 데이터를 출력 파일에 넣습니다.

register 'maprfs:///user/username/fl.jar';
DEFINE FixedLoader fl();

mt = load 'maprfs:///user/username/smt.txt' using FixedLoader('-30','30-33',...........) AS (.........);

mo = load 'maprfs:///user/username/smo.txt*' using FixedLoader('-30','30-33',.....) AS (......);

store mt into 'maprfs:///user/username/mt_out' using JsonStorage();
store mo into 'maprfs:///user/username/mo_out' using JsonStorage();

그리고 다음과 같은 자바 코드의 일부. (방법의 내용은 필요하지 않습니다) :

package com.mapr.util;

import org.apache.hadoop.mapreduce.lib.input.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.io.*;
import org.apache.pig.*;
import org.apache.pig.data.*;
import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.*;
import java.util.*;
import java.io.*;

public class FixedLoader extends LoadFunc
{

............

}

"pig -x mapreduce sample.pig"명령을 사용하여 터미널에서이 pig 프로그램을 실행할 때 오류 메시지가 나타납니다.

이를 프로젝트로 가져 오거나이 프로그램을 실행하기위한 제안 / 솔루션이 있습니까?

해결법

  1. ==============================

    1.전체 패키지 이름으로 FixedLoader를 정의해야합니다.

    전체 패키지 이름으로 FixedLoader를 정의해야합니다.

    register 'maprfs:///user/username/fl.jar';
    DEFINE FixedLoader com.mapr.util.FixedLoader();
    ...
    

    또한 사용자 정의 UDF에 사용되는 모든 써드 파티 종속성 jar을 등록하십시오.

  2. from https://stackoverflow.com/questions/13789121/how-to-use-jar-in-a-pig-file by cc-by-sa and MIT license