[HADOOP] Cosmos의 JSON 파일에서 열을 선택할 때 MapReduce 오류
HADOOPCosmos의 JSON 파일에서 열을 선택할 때 MapReduce 오류
문제는 다음과 같습니다.
Cygnus 0.2.1로 테이블을 만든 후 Hive에서 열을 선택하려고 할 때 MapReduce 오류가 발생합니다. Cygnus가 hadoop에서 생성 한 파일을 보면 사용 된 형식이 JSON임을 알 수 있습니다. 이 문제는 CSV 형식으로 hadoop 파일을 만들 때 이전 버전의 Cygnus에서 나타나지 않았습니다.
그것을 테스트하기 위해 각 형식에서 읽은 두 테이블을 남겼습니다. 다음 쿼리를 사용하여 오류를 비교하고 볼 수 있습니다.
SELECT entitytype FROM fiware_ports_meteo; (it fails, created with 0.2.1 in JSON format)
SELECT entitytype FROM fiware_test_table; (it works, created with 0.2 in CSV format)
HDFS 파일의 경로는 각각 다음과 같습니다.
/user/fiware/ports/meteo
/user/fiware/testTable/
CSV 형식이 예상대로 작동하기 때문에 MapReduce 작업으로 JSON 파일을 구문 분석하면 오류가 발생했다고 생각합니다.
이 문제를 어떻게 피할 수 있습니까?
해결법
-
==============================
1.Json serde를 Hive 클래스 경로에 추가하기 만하면됩니다. 권한이없는 사용자는 Hive CLI에서이를 수행 할 수 있습니다.
Json serde를 Hive 클래스 경로에 추가하기 만하면됩니다. 권한이없는 사용자는 Hive CLI에서이를 수행 할 수 있습니다.
hive> ADD JAR /usr/local/hive-0.9.0-shark-0.8.0-bin/lib/json-serde-1.1.9.3-SNAPSHOT.jar;
원격 Hive 클라이언트를 개발 한 경우 다른 쿼리 실행과 동일한 작업을 수행 할 수 있습니다. Java를 사용한다고 가정 해 봅시다.
Statement stmt = con.createStatement(); stmt.executeQuery(“ADD JAR /usr/local/hive-0.9.0-shark-0.8.0-bin/lib/json-serde-1.1.9.3-SNAPSHOT.jar”); stmt.close();
from https://stackoverflow.com/questions/25024342/mapreduce-error-when-selecting-column-from-json-file-in-cosmos by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Oozie HDP 2.1을 통한 작업은 job.splitmetainfo를 만들지 않습니다. (0) | 2019.09.11 |
---|---|
[HADOOP] Hadoop 2.4.1 및 Hadoop 용 Google Cloud Storage 커넥터 (0) | 2019.09.11 |
[HADOOP] accumulo, zookeeper hadoop CENTOS 6 설치 지침, 다운로드 및 버전 (0) | 2019.09.11 |
[HADOOP] Hadoop / map-reduce : 점유 된 슬롯에있는 모든 맵에서 소비 한 총 시간 대 모든 맵 작업에서 보낸 총 시간 (0) | 2019.09.11 |
[HADOOP] Cassandra / HDFS 및 Spark의 데이터 모션 (0) | 2019.09.11 |