복붙노트

[HADOOP] serde : org.openx.data.jsonserde.jsonserde의 유효성을 검사 할 수 없습니다.

HADOOP

serde : org.openx.data.jsonserde.jsonserde의 유효성을 검사 할 수 없습니다.

하이브에 테이블을 만들려면이 쿼리를 작성했습니다. 내 데이터는 처음에는 json 형식으로되어 있으므로 다운로드하여 serde를 작성하고 실행하기 위해 필요한 모든 jar 파일을 추가했습니다. 하지만 다음과 같은 오류가 나타납니다.

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: org.openx.data.jsonserde.JsonSerDe

질문:

create table tip(type string,
  text string,
  business_id string,
  user_id string,
  date date,
  likes int)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES("date.mapping"="date")
STORED AS TEXTFILE;

해결법

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

    1.나도이 문제에 직면했다. 필자는 아래의 그림과 같이 하이브 명령 프롬프트에서 json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar를 추가하여이 문제를 해결할 수있었습니다.

    나도이 문제에 직면했다. 필자는 아래의 그림과 같이 하이브 명령 프롬프트에서 json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar를 추가하여이 문제를 해결할 수있었습니다.

    hive> ADD JAR /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar;
    

    다음은 우분투 14.04에서 수행 한 단계입니다.

    1. Fire up Linux terminal and cd /usr/local
    
    2. sudo git clone https://github.com/rcongiu/Hive-JSON-Serde.git
    
    3. sudo mvn -Pcdh5 clean package
    
    4. The serde file will be in 
       /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar
    
    5. Go to hive prompt and ADD JAR file as shown in Step 6.
    
    6. hive> ADD JAR /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7- SNAPSHOT-jar-with-dependencies.jar;
    
    7. Now create hive table from hive> prompt. At this stage, Hive table should be created successfully without any error.
    

    하이브 버전 : 1.2.1

    하둡 버전 : 2.7.1

    참조 : Hive-JSON-Serde

  2. ==============================

    2.Maven을 사용하여 복제 된 프로젝트를 빌드해야합니다!

    Maven을 사용하여 복제 된 프로젝트를 빌드해야합니다!

  3. from https://stackoverflow.com/questions/26644351/cannot-validate-serde-org-openx-data-jsonserde-jsonserde by cc-by-sa and MIT license