windons下远程提交任务搭配linux上的spark集群

来源:互联网 发布:淘宝主图最好是多少kb 编辑:程序博客网 时间:2024/06/08 05:28


一、开发环境:

     操作系统:win8 64位

     IDE:IntelliJ IDEA

     JDK:1.7

     scala:scala-2.11.7

     spark:linux上spark集群版本:1.4.1,本地依赖spakr的jar直接拷贝linux上$SPARK_1.4.1-hadoop2.4.0.jar

      maven关键依赖:

Xml码  收藏代码
  1. <dependency>  
  2.     <groupId>org.apache.spark</groupId>  
  3.     <artifactId>spark-core_2.10</artifactId>  
  4.     <version>1.4.1</version>  

 二、环境配置:

      1、在window下配置环境变量:SCALA_HOME,然后引入到Path中

      2、确保linux上spark集群的Master的spark-env.sh中SPARK_MASTER_IP的值本机能ping通,一般有两种配置:

            1)直接配置IP为10.x.x.x,确保能ping同此IP即可,Master即为:spark://10.x.x.x:7077

            2)配置的为linux机器名称如Master1.Hadoop,则需要在windows的hosts文件中将其配置进来,Master为spark://Master1.Hadoop:7077

伦理片 http://www.dotdy.com/ 

三、提交流程

     1、将spark任务类打jar包,生成d://....//spark-demo.jar,此处打的jar包放在linux使用spark-submit命令行调用也能执行

     2、执行任务类或采用SparkSubmit.main(args)提交

四、代码实测:

       1、spark 圆周率,此程序无须提交数据文件

       新建项目,引入以上pom依赖,且将spark-assembly-1.4.1-hadoop2.4.0.jar手动加入项目中,新建类MyPi.java

   

Java代码  收藏代码
  1. package com.alleyz.spark;  
  2.   
  3. import org.apache.spark.SparkConf;  
  4. import org.apache.spark.api.java.JavaRDD;  
  5. import org.apache.spark.api.java.JavaSparkContext;  
  6. import org.apache.spark.api.java.function.Function;  
  7. import org.apache.spark.api.java.function.Function2;  
  8.   
  9. import java.util.ArrayList;  
  10. import java.util.List;  
  11.   
  12. /** 
  13.  * Created by Mr on 2016/1/5. 
  14.  */  
  15. public class MyPI {  
  16.   
  17.     public static void main(String[] atrs){  
  18.         SparkConf conf = new SparkConf();  
  19.         conf.setAppName("alleyz-lad").setMaster("spark://Master1.Hadoop:7077");  
  20.         JavaSparkContext jsc = new JavaSparkContext(conf);  
  21.         jsc.addJar("G:\\workspace\\idea\\spark-demo\\target\\artifacts\\spark_demo_jar\\spark-demo.jar");  
  22.         int slices =  20;  
  23.         int n = 100000 * slices;  
  24.         List<Integer> l = new ArrayList<Integer>(n);  
  25.         for (int i = 0; i < n; i++) {  
  26.             l.add(i);  
  27.         }  
  28.   
  29.         JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);  
  30.   
  31.         int count = dataSet.map(new Function<Integer, Integer>() {  
  32.             @Override  
  33.             public Integer call(Integer integer) {  
  34.                 double x = Math.random() * 2 - 1;  
  35.                 double y = Math.random() * 2 - 1;  
  36.                 return (x * x + y * y < 1) ? 1 : 0;  
  37.             }  
  38.         }).reduce(new Function2<Integer, Integer, Integer>() {  
  39.             @Override  
  40.             public Integer call(Integer integer, Integer integer2) {  
  41.                 return integer + integer2;  
  42.             }  
  43.         });  
  44.   
  45.         System.out.println("Pi is roughly " + 4.0 * count / n);  
  46.   
  47.         jsc.stop();  
  48.     }  
  49. }  

 

    先打jar包,然后点击右键运行,浏览器打开 http://Master1.Hadoop:8080   则可以看到正在执行的任务,稍后控制台会输入具体的结果,程序结束;

 影音先锋电影 http://www.iskdy.com/


         2、LDA

         需要引入pom文件依赖,准备数据,我自己的如下(词组成的一个不规则矩阵):

0 0
原创粉丝点击