欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spark 笔记1 -- spark程序连接

程序员文章站 2022-06-07 22:45:31
...

一.序言

     spark 现在用得比较多了,但是开始连接spark 的的时候有些小问题,这里简单记录一下,  我用的spark1.4.1  hadoop2.7 hive1.2.1, 目的想用spark-sql 连接 hive 的metastore,关于集群配置 这暂时不介绍了,例子很多,这里仅仅记录java/scala 连接部分。

 

二.连接配置

     2.1 maven 配置:

     

   <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>1.2.1</version>
        </dependency>
    </dependencies>

 

   2.2 java 连接

   

 public static final String master = "spark://master:7077";
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setAppName("demo").setMaster(master);
        JavaSparkContext sc = new JavaSparkContext(conf);
        System.out.println(sc);
        sc.stop();
    }

 

    基本上 获取到sc,就算连接成功了

 

3.连接问题:

    异常1:连接的时候控制台:

   

15/09/07 11:24:54 INFO ui.SparkUI: Started SparkUI at http://10.1.50.190:4040
15/09/07 11:24:54 INFO client.AppClient$ClientActor: Connecting to master akka.tcp://sparkMaster@master:7077/user/Master...
15/09/07 11:24:54 WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@master:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
15/09/07 11:25:14 INFO client.AppClient$ClientActor: Connecting to master akka.tcp://sparkMaster@master:7077/user/Master...
15/09/07 11:25:14 WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@master:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].

    spark log 出现:

    

ERROR Remoting: org.apache.spark.deploy.Command; local class incompatible: stream classdesc serialVersionUID = -7098307370860582211, local class serialVersionUID = -3335312719467547622
java.io.InvalidClassException: org.apache.spark.deploy.Command; local class incompatible: stream classdesc serialVersionUID = -7098307370860582211, local class serialVersionUID = -3335312719467547622

   

    这个是连接到了服务器,但是class 不匹配,也就是版本不对,用spark-core_2.11 版本会出现这个异常,因为启动spark-shell 启动的的时候,info 信息表示用的scala-2.10.4 版本。

 

   异常二:

    

出现类似的:
scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashS

   这里也是因为我本例用的scala 2.11 的SDK,然后我换成了2.10 就好了

 

   异常三:

client.AppClient$ClientActor: Connecting to master akka.tcp://sparkMaster@10.10.1.1:7077/user/Master...

    一直连接不上spark,因为这里使用ip:10.1.1.1 进行连接,而spark_master_ip 配置是master 的映射,因此通过ip 他会找不到,要客户端配置10.1.1.1 master 映射,用master 连接 就行,这里有点怪- -!

 

   其他异常:

    还有包含防火墙,集群之间网络等问题,差不多 都是这些引起的。

 

小结:

      1.先保证集群之间连通,一般也是网络  防火墙 等问题造成的,我是直接关闭了 防火墙

      2.客户端连接 一般是网络  域名  版本造成的,要看日志

      3.日志 通过spark/conf/log.propertis 设置成debug 就能看到很详细的日志,如果没看到日志,那么说明客户端还没连接到服务器

      4.可以通过spark-shell --master spark://ip:7070  尝试连接,然后再通过客户端连接