2014-02-06 2 views
2

Hadoop과 함께 재생할 VM Cloudera 4.4를 다운로드하여 설치했습니다. 나는 이미 일자리를 구할 수있는 플랫폼을 가지고있다. 그래서 나는 일이 어떻게 일어나는지 조금 안다. 그래서 내 문제는 리눅스와 그의 사용자와 그룹에 대한 나의 오해에서 오는 것이라고 생각한다. 하이브와VM cloudera - 사용자 cloudera 및 사용 권한?


:

나는 쉘 하이브 테이블을 만들려고, 그리고 그것을 작동합니다. 나는/user/hive/warehouse/test 마녀가 cloudera 그룹의 사용자 cloudera에 속한 테이블을 가지고 있습니다.

나는 HDFS에서 일부 데이터 파일 (.txt 인)가 :/사용자/클라우 데라 (사용자 : 클라우 데라와 그룹 : 하이브) 나는 내 하이브 테이블에로드 :

LOAD DATA INPATH '/user/cloudera/*.txt' INTO TABLE test; 

이 내가 얻은 것입니다 :

hive> LOAD DATA INPATH '/user/cloudera/jeuDeTest/*.txt' INTO TABLE test; 
Loading data to table default.test 
chgrp: changing ownership of '/user/hive/warehouse/test/_log24310.txt': User does not belong to hive 
chgrp: changing ownership of '/user/hive/warehouse/test/_log24311.txt': User does not belong to hive 
Table default.test stats: [num_partitions: 0, num_files: 2, num_rows: 0, total_size: 10161843, raw_data_size: 0] 
OK 
Time taken: 2.472 seconds 

나는이 오류 왕 메시지를 본 적이 없지만 파일은 이동되었습니다. SELECT *를 시도하면 결과가 없습니다. HBase를 가진


:

또한 HBase를 몇 가지 어려움이있다. 나는 테이블을 만들 수 있습니다하지만 난 importTSV를 사용할 때 :


ERROR security.UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) 
cause:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: 
hdfs://localhost.localdomain:8020/user/cloudera/jeuDeTest/_logGeneral_C_24310_SO.txt 
Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:  
hdfs://localhost.localdomain:8020/user/cloudera/jeuDeTest/_logGeneral_C_24310_SO.txt 
나는이 문제가 권한에 기인 생각하지만 난 어떻게 해야할지하지 않습니다

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv 
-Dimporttsv.columns=HBASE_ROW_KEY,cf:nl,ch:nt,cf:ti,cf:ip,cf:cr,cf:am,cf:op,cf:mr,cf:ct 
'-Dimporttsv.separator=|' testhbase -Dimporttsv.skip.bad.lines=false 
/user/cloudera/jeuDeTest/*.txt 

이 오류가 요청을 실행할 수있는 권리가 있어야하며, 더 나은 방법은 무엇인가. (내가 일하는 플랫폼에서 나는 뿌리가 있으며이 모든 어려움을 겪지는 않지만 어떻게 작동하는지 이해할 수 없다.)

나를 읽어 주셔서 감사합니다.

Angelik는


나는 그룹 하이브 내 클라우 데라의 사용자를 추가하려고합니다. 로드하는 동안 오류가 없지만 항상 select에 대한 결과가 없습니다.

hive> LOAD DATA INPATH '/user/cloudera/jeuDeTest/*.txt' INTO TABLE test;      
Loading data to table default.test 
Table default.test stats: [num_partitions: 0, num_files: 10, num_rows: 0, total_size: 10161843, raw_data_size: 0] 
OK 
Time taken: 0.486 seconds 
hive> select * from test limit 20; 
OK 
Time taken: 0.303 seconds 
+0

Cloudera VM에는 다양한 문제가 있으며 잘 지원되는 것은 아닙니다. 그러나 나는 또한 최선을 다해 노력하고 있습니다. 또한 "사용자가 하이브에 속하지 않습니다"라는 오류가 표시됩니다. – javadba

답변

2

나는 권한을 가진 같은 문제가 있었다 ->을 chgrp : 사용자가 하이브에 속하지 않는 '/user/hive/warehouse/test/_log24310.txt'의 소유권을 변경.

  1. 추가 명령을 사용하여 기존 그룹 이름 하이브 기존 사용자 이름 클라우 데라 : 하고 usermod -a -G 하이브 클라우 데라 시스템을
  2. 사용 LOAD 명령을 재시작
  3. 이이 선택을 한 후 * TABLE_NAME에서 - > 데이터가 표시되지 않았습니다.
  4. table_name에서 실행 된 선택 개수 (*)가 발생하고 MapReduce 작업이 시작되었습니다.
  5. select * from table을 실행하면 결과가 올바르게 반환됩니다.
  6. impala-shell 명령을 사용하여 임팔라 쉘을 엽니 다.
  7. select * from table_name을 실행했으나 결과가 반환되지 않았습니다. 실행 된 명령은 table_name
  8. 실행 된 명령 show 테이블을 새로
  9. 임 팔 라 - 쉘에서
  10. 실행 된 명령을 무효화 메타 데이터
  11. 실행 된 명령을 선택 * 결과는 임 팔 라 - 쉘 및 하이브 쉘에서 모두 표시지고 지금 TABLE_NAME에서와 .