相同的代碼可以在Spark獨立運行,但是當我在紗線上運行火花時它在Yarn上運行失敗。例外是:java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.common.xcontent.json.JsonXContent
扔在執行器(紗容器)。但是當我使用maven組裝時,我確實在應用程序組裝jar中包含了elasticSearch jar。運行命令如下:在紗線上運行Spark時沒有發現類別
spark-submit --executor-memory 10g --executor-cores 2 --num-executors 2
--queue thejob --master yarn --class com.batch.TestBat /lib/batapp-mr.jar 2016-12-20
Maven的依賴關係如下,請:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-catalyst_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.3</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-protocol</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-hadoop2-compat</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-hadoop-compat</artifactId>
<version>1.2.0-cdh5.7.0</version>
<!--<scope>provided</scope> -->
</dependency>
<dependency>
<groupId>com.sksamuel.elastic4s</groupId>
<artifactId>elastic4s-core_2.10</artifactId>
<version>2.3.0</version>
<!--<scope>provided</scope> -->
<exclusions>
<exclusion>
<artifactId>elasticsearch</artifactId>
<groupId>org.elasticsearch</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-hadoop</artifactId>
<version>2.3.1</version>
<exclusions>
<exclusion>
<artifactId>log4j-over-slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
奇怪的是,執行人可以找到HBase的罐子和ElasticSearch罐子其中既包含關係,但沒有ElasticSearch一些類,所以我想可能會有一些類的衝突。我檢查了包含「缺課」的裝配罐。
你能在這裏創建依賴列表? – mrsrinivas
我剛剛添加了,請多多指教! – Jack
請檢查我的答案希望有幫助! –