http://blog.csdn.net/xiefu5hh/article/details/51707529

2016-06-18 22:35 405人阅读 评论(0) 收藏 举报
 分类:
spark(5) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

目录(?)[+]

 
 

前言

本文旨在记录初学Spark时,根据官网快速入门中的一段Java代码,在Maven上建立应用程序并实现执行。
 
首先推荐一个很好的入门文档库,就是CSDN的Spark知识库,里面有很多spark的从入门到精通的形形色色的资料,
1.开发软件恭喜你,拿到spark驾考名额了,可以开始参加驾校培训了~http://lib.csdn.net/base/spark
    
   大概理解下:spark主要分为  1.核心  2.实时streaming 3.对sql支持sparksql 4.机器学习mllib  还有别的暂时不考虑
 
    本文只引入sparkcore核心部门案例入门,其他的同学们自己去探索吧~ 
 
 
 

环境准备:   window电脑一台是不可少的,不然怎么玩

 其他需要安装的软件:     版本可以自己选择 ,以下是我的选择 
    1)  JDK          版本:1.7
       2)  Maven     版本:3.2.3     :         http://maven.apache.org/             
       3)  Spark       版本:spark-1.1.0    http://spark.apache.org/
       4》eclipse   
 
      注意安装的软件的位数和操作系统的位数。
 
 

1.JDK安装

     具体安装步骤过于简单 略~
 

2.MAVEN安装

     下载解压,具体安装步骤过于简单 略~
 

3.spark 安装

     下载解压,具体安装步骤过于简单 略~

4.eclipse 安装

   

下载解压,具体安装步骤不是很简单,不能略,因为要安装maven

 
    那就下载有maven的eclipse版本即可,推荐luna的eclipse 自带maven的
 
  
下载winutil 放到spark 的bin目录下 
 

配置环境变量

     需要配置 JAVA_HOME   HADOOP_HOME(配置为spark_Home,为winutil使用)  SPARK_HOME MAVEN_HOME   并在path中加入以上三个bin
 
     cmd中分别测试 mvn -v   java -version  spark-shell 安装是否成功    
   
 
 
 

工程构建

建立一个统计  文件中出现某个字符的行数。
 
建立Maven工程
修改pom.xml为:
 
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dt.spark</groupId>
<artifactId>SparkApps</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SparkApps</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-graphx_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
</dependency>
<dependency>
     <groupId>commons-lang</groupId>
     <artifactId>commons-lang</artifactId>
     <version>2.3</version>
    </dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<maniClass></maniClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<includeProjectDependencies>false</includeProjectDependencies>
<classpathScope>compile</classpathScope>
<mainClass>com.dt.spark.SparkApps.App</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>

<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

 
修改完成后,需要下载比较多东西来构建工作空间, 此过程后可以先去吃个饭,跑两圈再回来~
 

编写代码

public static void main( String[] args )
    {
        String readme="D:\\spark\\CHANGES.txt";
        SparkConf conf=new SparkConf().setAppName("tiger's first spark app");
        JavaSparkContext sc =new JavaSparkContext(conf);
        JavaRDD<String> logData=sc.textFile(readme).cache();
        long num=logData.filter(new Function<String,Boolean>(){
        public Boolean call(String s){
        return s.contains("a");
        }
       
        }).count();
       
        System.out.println("the count of word a is "+num);
        
    }

运行程序

编译应用程序

    进入workplace项目,运行mvn compile,编译代码
              
 

打包程序

     运行mvn package,系统将自动将应用程序代码打包成jar。运行成功后,在项目文件夹下的target文件夹下,将生成名为SimApp-1.0-SNAPSHOT.jar。
 

运行程序

使用spark-submit在本地运行应用  在elipse 下面参数总是出现错误,还在探索中。。
       在cmd中输入 spark文件包bin下spark-submit文件所在的路径, 类名(加上包名),jar包所在的路径
       D:\Spark_Tools\apache-maven-3.2.3\Maven_Project\SimApp>d:\Spark_Tools\spark-1.1.0-bin-hadoop1\bin\spark-submit --class "aa" --master local[4]  bb
   aa 是程序的主程序路径  com..xxxxxx.xxxx  bb 是你打包的jar 路径  在target下 ,由pom.xml配置得到的。
      在输出信息的最后一行,将看到程序的运行结果:
      the count of word a is 20132
 
恭喜你,拿到spark驾照。。可以开车了...  上路需小心,多练习吧~
 
 
 有问题可以留言,欢迎探讨,我会积极回复!~

Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】的更多相关文章

  1. [Java 教程 02] 开发环境搭建

    在上一篇文章对Java做了一个简单介绍之后,我想大家都已经对她有一个初步的认识了吧!那踏入正式学习使用Java之前,我们有一步是不得不做的,它是什么呢?没有错,就是我们本篇文章的标题所说,搭建Java ...

  2. 《Java Web程序设计——开发环境搭建》

    Java Web程序设计--开发环境搭建       一.JDK下载.安装以及环境变量的配置: 官网:https://www.oracle.com/java/technologies/download ...

  3. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  4. android Jni NDK开发环境搭建及其简单实例的编写

    android  Jni  NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...

  5. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  6. Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通

    原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...

  7. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  8. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  9. Win7+Eclipse+Hadoop2.6.4开发环境搭建

    Hadoop开发环境搭建 感谢参考网站:http://www.cnblogs.com/huligong1234/p/4137133.html 一.软件准备 JDK:jdk-7u80-windows-x ...

随机推荐

  1. ASP.NET 会话状态的模式

    ASP.NET 会话状态为会话数据提供了几个不同的存储选项.每个选项都通过一个 SessionStateMode 枚举值进行识别.如下列表中描述了可用的会话状态模式: InProc 模式:把会话状态存 ...

  2. dp + 组合数 Codeforces Beta Round #9 (Div. 2 Only) D

    http://codeforces.com/problemset/problem/9/D 题目大意:给你一个二叉树和n个数字,满足左小右大,能形成多少种不同的二叉树 思路:定义dp[i][j]表示目前 ...

  3. tableView滚动的时候会 最后一行显示不完全的问题

    问题可能原因 1:tableView高度的设置不正确,应该是屏幕的高度减去上面的高度(包括状态栏以及navigationBar的高度).正确设置了tableView的高度之后,才可以正常滚动到最后一行 ...

  4. Hibernate主键生成方式之hilo

    当利用Hibernate的getHibernateTemplate().save(obj);插入的对象的主键ID为null的时候自动生成5位数的主键ID进行插入. 此笔记的由来: 老夫在此处上传材料后 ...

  5. 【同一直线最多点】 poj 1118+2606+2780

    poj 1118 #include<iostream> using namespace std; #define N 700 struct point {int x,y;} pnt[N]; ...

  6. 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,

    1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...

  7. OpenGL ES一些函数详解(一)

    glLoadIdentity和glMultMatrix   glLoadIdentity的作用是将当前模型视图矩阵转换为单位矩阵(行数和列数相同的矩阵,并且矩阵的左上角至右下角的连线上的元素都为1,其 ...

  8. Rar related CMD

    recursively add folder Document to archive: (with all the files) rar a *.rar Document recursively ad ...

  9. Swift 与 JSON 数据

    转载自: http://www.cnblogs.com/theswiftworld/p/4660177.html 我们大家平时在开发 App 的时候,相信接触最多的就是 JSON 数据了.只要你的 A ...

  10. mysql Group By

    1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...