안녕하세요, 다음 오류를 해결하는 데 도움을주세요. hdfs 파일에서 hbase 테이블에 데이터를 삽입하는 Mapreduce 작업 fopr을 실행할 때이 작업을 수행하고 있습니다. HFileOutputFormat.class
을 사용하여 이전에 나는 MultiTableOutputFormat.class
을 사용하여 동일하게 동작 시켰지만 정상적으로 작동했지만 hbase 테이블에 데이터를 삽입하는 데는 많은 시간이 걸렸습니다.스레드 "main"의 예외 org.apache.hadoop.mapred.InvalidJobConfException : 출력 디렉토리가 설정되지 않았습니다
그래서 u는 ... :) *
job.setMapOutputKeyClass (ImmutableBytesWritable.class을) 저를 도와 주실 수 있습니다; job.setMapOutputValueClass (Put.class); job.setInputFormatClass (TextInputFormat.class);
job.setOutputFormatClass (HFileOutputFormat.class); job.setMapperClass (Map.class); HTable hTable = 새 HTable (conf, "ARK_3000"); HFileOutputFormat.configureIncrementalLoad (job, hTable);오류 security.UserGroupInformation : 같은 PriviledgedActionException : reddym (인증 : SIMPLE) 원인 : org.apache.hadoop.mapred.InvalidJobConfException : 출력 디렉토리 설정되지 않았습니다. 스레드 "main"의 예외 org.apache.hadoop.mapred.InvalidJobConfException : 출력 디렉토리가 이 아님.
감사 Madhusudhana 레디
감사합니다 :)은 HBase를 매우 새로운 오전을 떠날 필요하면
나는이 당신을 위해 명확하게 질문에 대한 답변이 되었기를 바랍니다. 그래서이 오류를 제거하기 위해 코드에 추가 할 내용을 더 자세히 설명해주십시오. 사실 내가 코드에 다음 줄을 추가하지 않았습니다. hbase 테이블에 직접 작성하는 것처럼이 행을 cubeOutputPath에 쓰도록 추가해야하는 이유는 출력 디렉토리를 왜 필요로하는지입니다. HFileOutputFormat.setOutputPath (job, cubeOutputPath); – MapReddy
예 선생님 지금 막 MR 코드가 오류없이 실행 중이지만 여전히지도를 완성하지 못했다고 말하는 것처럼 경로를 추가하는 몇 가지 기사에서 보았습니다.그리고 내 질문에 왜 우리가 hbase 테이블에 데이터를 쓸 쓸 출력 디렉토리 언급해야합니까 ??? – MapReddy
굉장 :) 대답을 ... 고맙습니다. :) 그리고 나는 5000 개의 행이있는 500 개의 파일에 대해 위의 코드를 실행했으며 각 행에는 각 파일에 32 개의 열이 있습니다. 각 파일의 크기는 5.5MB입니다. 이전에 MultiTableOutputFormat.class 코드는 거의 24 시간을 마치기 위해 끝내기 시작했습니다. (:(. 그리고 그것은 지금까지 Maptasks를 완료하지 않았습니다. hbase 테이블에 삽입하기 위해 총 약 3GB의 데이터를 마무리해야합니다. – MapReddy