spark 笔记1 -- spark程序连接

一.序言

     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://[email protected]: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  尝试连接,然后再通过客户端连接

   

    

猜你喜欢

转载自greemranqq.iteye.com/blog/2241277