2017-09-11 6 views
1

저는 HIVE 및 HADOOP을 처음 사용합니다. 여기서 테이블은 연습용으로 중요한 외래 키 관계가없는 하이브에서 두 개의 샘플 테이블을 조인하려고합니다. - 테이블은 다음과 같습니다hive join mr.MapredLocalTask에 실패했습니다.

Employees table:- 
       id name gender salary departmentid  

       1 mark  male 3333 1 
       2 Steve  male 5464 3 
       3 Ben  male 3873 2 
       4 bender male 9298 1 
       5 fender male 654  2 

departments table:- 
      id name  location 

      1  IT  NEW YORK 
      2  HR  LONDON 
      3  PAYROLL SYDNEY 

hive> select employees.name as employee_name, departments.name as department_name 
    > from employees   
    > join departments on departments.id = employees.departmentid; 

결과 : -

쿼리 ID = cloudera_20170911030505_93378edb-f8b8-45d0-9141-3fe065211f3d 총 작업 = 1 실패 : 실행 오류, org.apache.hadoop에서 리턴 코드 (1). 안녕 ve.ql.exec.mr.MapredLocalTask ​​

내가 SQL에서 하이브로 새롭기 때문에 나에게이 오류를 해결하는 방법을 제안했기 때문에? 어떤 도움을 주시면 감사하겠습니다.

+0

더 명확하게하기 위해 전체 스택 추적을 붙여 넣을 수 있습니까? –

+0

쿼리 ID = cloudera_20170911041010_375af566-cc17-4649-b992-7a8a10685316 전체 작업은 1 실패 = 실행 오류, org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask ​​ –

+0

에서 리턴 코드 (1) 유사한 문제가 발생했습니다 .이 링크를 확인하십시오 : https://community.cloudera.com/t5/Web-UI-Hue-Beeswax/Hue-FAILED-Execution-Error-return-code-1-from-org-apache-hadoop/td- p/36256. –

답변

0

검색어 : EMPLOYEE_NAME로

선택 employees.name,
이 T1.departmentid = T2.id에 부서 T2에 가입 직원 T1에서 department_name 로 departments.name;

최대 0.13의 하이브는 기본 키 개념을 지원하지 않습니다. 이것은 하이브의 이후 릴리스에서 소개되었습니다. 그래서 우리는 단지 열이 존재한다는 것에주의를 기울일 필요가 있습니다. 열에 중복되는 경우 여러 레코드가 생성됩니다. 다른 사용 사례가 필요하면 왼쪽 외부 조인, 오른쪽 외부 조인, 전체 조인을 사용해보십시오. 크로스 조인을 사용할 때는주의하십시오.

오류가 계속 발생하면 사용한 테이블 스키마에 대한 자세한 내용을 보내주십시오. show create table db_name.table_name을 사용하여 전체 스키마를 볼 수 있습니다.

0

세트 hive.auto.convert.join = false; 제 경우의 문제가 해결되었습니다 ..