2016-06-13 3 views
0

Я пытаюсь написать код EMR, с помощью которого я могу подключиться к RedShift и выполнить некоторые запросы. Код для подключения к RedSHift находится в классе драйвера задания EMR.AmazonServiceException NoClassDefFoundError Exception

Это мой код: Я также добавил эту конфигурацию в мой пом файл

public static void main(String[] args) throws Exception { 
    Configuration conf = new Configuration(); 
    String ids = getAllKeys(args[0]); 
    conf.set("config", ids); 

    try { 
     showRedShiftTableData(); //function which will connect to Redshift server 
    } catch (AmazonServiceException ase) { 
     System.out.println("Caught an AmazonServiceException, which means your request made it " 
       + "to Amazon S3, but was rejected with an error response for some reason."); 
     System.out.println("Error Message: " + ase.getMessage()); 
     System.out.println("HTTP Status Code: " + ase.getStatusCode()); 
     System.out.println("AWS Error Code: " + ase.getErrorCode()); 
     System.out.println("Error Type:  " + ase.getErrorType()); 
     System.out.println("Request ID:  " + ase.getRequestId()); 
    } catch (AmazonClientException ace) { 
     System.out.println("Caught an AmazonClientException, which means the client encountered " 
       + "a serious internal problem while trying to communicate with S3, " 
       + "such as not being able to access the network."); 
     System.out.println("Error Message: " + ace.getMessage()); 
    } 
    //........................ 
    //........................ 
    //Other codes. 

:

<dependency> 
    <groupId>com.amazonaws</groupId> 
    <artifactId>aws-java-sdk</artifactId> 
    <version>1.11.7</version> 
</dependency> 

Но когда я пытаюсь запустить код на моем локальном кластере Hadoop, я получение ниже исключения:

Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/AmazonServiceException 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:274) 
at org.apache.hadoop.util.RunJar.run(RunJar.java:214) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

Не могли бы вы дать мне знать, что может быть проблемой.

Спасибо.

ответ

0

Got it. HADOOP_CLASSPATH установлен неправильно. Вот почему hadoop не получал банки.

Смежные вопросы