Spark与Alluxio的依赖包冲突问题

boy13860 2017-03-30 06:39:49
前情提要:
安装的spark版本为:spark-2.0.2-bin-hadoop2.7.tgz
安装的alluxio版本为:alluxio-1.4.0-hadoop2.7-bin.tar.gz
安装的hadoop版本为: 2.7.3

在服务器上的运行指令为
spark-submit --class com.hnust.cn.spark.SparkTest3 --master spark://X.X.X.X:7077 ./test.jar alluxio://SparkMaster:19998/hello_5G.txt


简单的测试代码为:
SparkSession sparkSession = SparkSession.builder().appName("Txt").getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(sparkSession.sparkContext());
JavaRDD<String> rdd = jsc.textFile(args[0]);
Long sum = Long.valueOf(rdd.count());
System.out.println(sum);

在运行时报错
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: Class alluxio.hadoop.FileSystem not found

于是在spark-env.sh 里面增加classpath 关于alluxio-core-client-1.4.0-jar-with-dependencies.jar
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/alluxio/alluxio-1.4.0/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar

成功运行测试
然后问题就出现了
问题1:SPARKUI 无法打开 http://sparkmaster:8080/ 无法正常打开
目前我只能先在 配置文件里面注释export SPARK_CLASSPATH = 。。。这一行
等Spark启动之后再自行添加 (其他的worker也是一样无法打开对应的UI界面)
然而我注释alluxio-core-client-1.4.0-jar-with-dependencies.jar之后 启动spark之后再在配置文件里面添加就运行正常+正常显示了
网页错误显示:
该网页无法正常运作
sparkmaster 未发送任何数据。
ERR_EMPTY_RESPONSE
(难道只能写个启动脚本,启动spark之前注释配置 启动之后修改配置?是哪里冲突出了问题??)

2.SparkWorker4: SLF4J: Class path contains multiple SLF4J bindings.
SparkWorker4: SLF4J: Found binding in [jar:file:/usr/local/hadoop/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SparkWorker4: SLF4J: Found binding in [jar:file:/usr/local/alluxio/alluxio-1.4.0/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SparkWorker4: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SparkWorker4: SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
出现了这个问题 slf4j 重复
这个我将/usr/local/alluxio/alluxio-1.4.0/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar
jar包解压缩之后 将SLF4J相关的class文件全删了 于是好了 但是觉得这个解决方法很Low 问一下这种问题怎么解决

附上一些东西:
spark-env.sh部分配置
export JAVA_HOME=/usr/local/java_jdk/jdk1.8.0_112
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export SPARK_CLASSPATH=$SPARK_CLASSPATH:$JRE_HOME/lib/ext/sqljdbc42.jar:/home/hadoop/sparkdata/fspt_dbf.jar
#export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/alluxio/alluxio-1.4.0/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/hadoop/hadoop-2.7.3/share/hadoop/common/lib/alluxio-core-client-1.4.0-jar-with-dependencies2.jar



...全文
488 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不改spark相关配置 看a的启动配置修改它的找路径的方式,或者改成写死,几个shell脚本

1,258

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧