[HADOOP] 외부 라이브러리와 하둡 하이브 UDF
HADOOP외부 라이브러리와 하둡 하이브 UDF
나는 사용자 에이전트를 구문 분석 하둡 하이브 대한 UDF를 작성하는 것을 시도하고있다. 코드를 따르는 것은 내 로컬 컴퓨터에서 잘 작동하지만 하둡에 내가 받고 있어요 :
암호:
import java.io.IOException;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.*;
import com.decibel.uasparser.OnlineUpdater;
import com.decibel.uasparser.UASparser;
import com.decibel.uasparser.UserAgentInfo;
public class MyUDF extends UDF {
public String evaluate(String i) {
UASparser parser = null;
parser = new UASparser();
String key = "";
OnlineUpdater update = new OnlineUpdater(parser, key);
UserAgentInfo info = null;
info = parser.parse(i);
return info.getDeviceType();
}
}
내가 언급해야 내 마음에 와서 현황 :
어떤 제안?
감사합니다, 마이클
해결법
-
==============================
1.그것은 몇 가지있을 수 있습니다. 가장 좋은 점은 로그를 확인하는 것입니다, 그러나 여기 당신이 분에 확인할 수있는 몇 가지 간단한 것들의 목록입니다.
그것은 몇 가지있을 수 있습니다. 가장 좋은 점은 로그를 확인하는 것입니다, 그러나 여기 당신이 분에 확인할 수있는 몇 가지 간단한 것들의 목록입니다.
포함 된 것을 볼 수 있습니다. 당신은 com.decibel.uasparser에서 물건을 볼 수 있습니다. 그렇지 않은 경우, 해당 종속성이있는 단지를 구축해야 (보통 당신이 그 받는다는 사용).
여기를 변경하는 방법은 다음과 같습니다
public class MyUDF extends UDF { UASparser parser = new UASparser(); public MyUDF() { super() String key = "PUT YOUR KEY HERE"; // update only once, when the UDF is instantiated OnlineUpdater update = new OnlineUpdater(parser, key); } public String evaluate(String i) { UserAgentInfo info = parser.parse(i); if(info!=null) return info.getDeviceType(); // you want it to return null if it's unparseable // otherwise one bad record will stop your processing // with an exception else return null; } }
그러나 확실히 알고, 당신은 로그 ... 실 로그를보고있다, 또한 당신은 (아마의 / var / 하이브 / 로그 당신의 작업을 제출하고있는 시스템에서 하이브 로그를 볼 수 있지만, 의존 설치에).
-
==============================
2.아마 단계에 의해 해결 될 수있는 문제 :
아마 단계에 의해 해결 될 수있는 문제 :
시도 해봐. 나는 이것을 테스트하고 작동
from https://stackoverflow.com/questions/34435052/hadoop-hive-udf-with-external-library by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 프로그램이 중단 될 때 스파크 병합 파일을 푼다 (0) | 2019.09.27 |
---|---|
[HADOOP] ConnectException이는 : 하둡의 맵리 듀스를 실행하면 연결이 거부 됨 (0) | 2019.09.27 |
[HADOOP] HiveServer2는 HDFS의 디렉토리를 많이 생성 / tmp를 / 하이브 / 하이브 (0) | 2019.09.27 |
[HADOOP] 아파치 스파크 JavaSchemaRDD 그것에 RDD 입력 데이터가 비록 비어 (0) | 2019.09.27 |
[HADOOP] 어떻게 HDFS 블록의 크기를 관리합니까? (0) | 2019.09.27 |