Я пытаюсь написать код 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)
Не могли бы вы дать мне знать, что может быть проблемой.
Спасибо.