2016-09-27 1 views
1

У меня есть простое искровое приложение, и он работает нормально на моем ноутбуке, используя spark-submit. Однако, я получаю эту ошибку во время выполнения, когда я запускаю его с помощью spark-submit на кластере Amazon EC2:работает с искровым приложением на EC2 с hadoop IncompatibleClassChangeError

$ /root/spark/bin/spark-submit --class application.Example --master spark://ec2-54-227-170-20.compute-1.amazonaws.com:7077 /root/example-assembly-0.1-SNAPSHOT.jar 

java.lang.IncompatibleClassChangeError: Found class org.apache.hadoop.mapreduce.TaskAttemptContext, but interface was expected 
    at org.warcbase.mapreduce.WacGenericInputFormat$GenericArchiveRecordReader.initialize(WacGenericInputFormat.java:71) 

Я убедился, что /root/example-assembly-0.1-SNAPSHOT.jar не содержит org/apache/spark ни org/apache/hadoop.

Я использую искру 1.6.1 и hadoop 2.6.0. Я вижу, что warcbase зависит от hadoop 2.6.0-cdh5.7.1.

В чем может быть проблема?

ответ

1

Проблема заключалась в том, что моя локальная установка spark, а также warcbase библиотека использование hadoop 2.6.0 и установка искры на Amazon EC2 использует hadoop 1.2.1.

Итак, на моем ноутбуке у меня есть spark-1.6.1-bin-hadoop2.6. Я запускаю spark-1.6.1-bin-hadoop2.6/ec2/spark-ec2, который развертывает искровой кластер на amazon ec2. Я ожидал бы, что он разворачивает ту же версию, но фактически развертывает spark-assembly-1.6.1-hadoop1.2.1.jar. Довольно свалка.


так, при выполнении искровой-EC2 для создания искры кластера на Amazon EC2, вам необходимо указать искровой и Hadoop версии (он не будет использовать те из вашей локальной установки). По какой-то причине версия hadoop 2.6.0 недоступна.

$ spark-ec2 --help 
Usage: spark-ec2 [options] <action> <cluster_name> 

<action> can be: launch, destroy, login, stop, start, get-master, reboot-slaves 

Options: 
... 
    -v SPARK_VERSION, --spark-version=SPARK_VERSION 
         Version of Spark to use: 'X.Y.Z' or a specific git 
         hash (default: 1.6.1) 
... 
    --hadoop-major-version=HADOOP_MAJOR_VERSION 
         Major version of Hadoop. Valid options are 1 (Hadoop 
         1.0.4), 2 (CDH 4.2.0), yarn (Hadoop 2.4.0) (default: 
         1) 
... 


$ spark-ec2 --key-pair=test-us-east-1 --identity-file=~/.ssh/test-us-east-1.pem --instance-type=m3.xlarge --slaves=10 -v 1.6.1 --region=us-east-1 launch my-spark-cluster --spark-version=1.6.1 --hadoop-major-version=2.4.0 
Смежные вопросы