가상 배포 VM에 HBase 및 Hadoop이 의사 배포 모드로 실행됩니다. 몇 가지 간단한 MapReduce 코드를 수정하여 주어진 HBase 테이블 (Hbase MapReduce RowCounter 코드)의 행 수를 계산했습니다. 수정 된 코드를 jar 파일로 컴파일하고 VM으로 전송 한 다음 hadoop 명령 행을 통해 정상적으로 실행하면 모든 것이 잘됩니다. 그러나 내가 할 수 있기를 원하는 것은 내 Windows 컴퓨터의 자바 클라이언트 (hadoop 명령 줄 (예 : hadoop jar)를 실행하는 ssh 명령이 아닌 Java 코드)에서 실행하는 것입니다. Windows 측 (Java 클라이언트)에서 실행하려고하면 필요한 모든 연결이 VM에서 Hadoop 및 HBase로 이루어 지지만 Hadoop이 Mapper 클래스를 찾을 수없는 "classnotfoundexception"을 수신합니다.Java 클라이언트에서 원격으로 Hadoop 작업 실행
수동으로 jar 파일을 HDFS에 복사했으며 구성 옵션 (conf.set ("mapred.jar", "hdfs : ///RowCountTest.jar") 설정을 통해 Java 클라이언트를 해당 위치로 지정하려고했습니다. ;). 그러나 여전히 클래스를 찾을 수 없습니다 (항아리를 찾고 있는지 여부는 알 수 없음).
먼저 원격 클라이언트에서 작업을 실행할 때 Hadoop이 jar에 저장된 클래스 파일을 인식하기 위해 수행해야 할 작업을 알고 있습니까?
둘째, jar 파일을 미리로드하지 않고 작업과 함께 필요한 클래스 파일을 클러스터에 "전달"할 수있는 방법이 있는지 알고 있습니까?
코드와 오류를 알려주십시오. – Tariq