原文引自:http://blog.csdn.net/huanbia/article/details/69084895

1、环境准备

idea采用2017.3.1版本。

创建一个文件a.txt

2、构建maven工程

点击File->New->Project…

点击Next,其中GroupId和ArtifactId可随意命名

点击Next

点击Finish,出现如下界面:

3、书写wordCount代码

请在pom.xml中的version标签后追加如下配置

  1. <properties>
  2. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3. </properties>
  4. <dependencies>
  5. <dependency>
  6. <groupId>junit</groupId>
  7. <artifactId>junit</artifactId>
  8. <version>3.8.1</version>
  9. <scope>test</scope>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.apache.spark</groupId>
  13. <artifactId>spark-core_2.10</artifactId>
  14. <version>1.6.1</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.apache.spark</groupId>
  18. <artifactId>spark-sql_2.10</artifactId>
  19. <version>1.6.1</version>
  20. </dependency>
  21. <dependency>
  22. <groupId>org.apache.spark</groupId>
  23. <artifactId>spark-hive_2.10</artifactId>
  24. <version>1.6.1</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.apache.spark</groupId>
  28. <artifactId>spark-streaming_2.10</artifactId>
  29. <version>1.6.1</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.apache.hadoop</groupId>
  33. <artifactId>hadoop-client</artifactId>
  34. <version>2.7.1</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.apache.spark</groupId>
  38. <artifactId>spark-streaming-kafka_2.10</artifactId>
  39. <version>1.6.1</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.apache.spark</groupId>
  43. <artifactId>spark-graphx_2.10</artifactId>
  44. <version>1.6.1</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.apache.maven.plugins</groupId>
  48. <artifactId>maven-assembly-plugin</artifactId>
  49. <version>2.2-beta-5</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>commons-lang</groupId>
  53. <artifactId>commons-lang</artifactId>
  54. <version>2.3</version>
  55. </dependency>
  56. </dependencies>
  57. <build>
  58. <sourceDirectory>src/main/java</sourceDirectory>
  59. <testSourceDirectory>src/test/java</testSourceDirectory>
  60. <plugins>
  61. <plugin>
  62. <artifactId>maven-assembly-plugin</artifactId>
  63. <configuration>
  64. <descriptorRefs>
  65. <descriptorRef>jar-with-dependencies</descriptorRef>
  66. </descriptorRefs>
  67. <archive>
  68. <manifest>
  69. <maniClass></maniClass>
  70. </manifest>
  71. </archive>
  72. </configuration>
  73. <executions>
  74. <execution>
  75. <id>make-assembly</id>
  76. <phase>package</phase>
  77. <goals>
  78. <goal>single</goal>
  79. </goals>
  80. </execution>
  81. </executions>
  82. </plugin>
  83. <plugin>
  84. <groupId>org.codehaus.mojo</groupId>
  85. <artifactId>exec-maven-plugin</artifactId>
  86. <version>1.3.1</version>
  87. <executions>
  88. <execution>
  89. <goals>
  90. <goal>exec</goal>
  91. </goals>
  92. </execution>
  93. </executions>
  94. <configuration>
  95. <executable>java</executable>
  96. <includeProjectDependencies>false</includeProjectDependencies>
  97. <classpathScope>compile</classpathScope>
  98. <mainClass>com.dt.spark.SparkApps.App</mainClass>
  99. </configuration>
  100. </plugin>
  101. <plugin>
  102. <groupId>org.apache.maven.plugins</groupId>
  103. <artifactId>maven-compiler-plugin</artifactId>
  104.  
  105. <configuration>
  106. <source>1.6</source>
  107. <target>1.6</target>
  108. </configuration>
  109. </plugin>
  110. </plugins>
  111. </build>

点击右下角的Import Changes导入相应的包

点击File->Project Structure…->Moudules,将src和main都选为Sources文件

在java文件夹下创建SparkWordCount java文件

该文件代码为:

  1. import org.apache.spark.SparkConf;
  2. import org.apache.spark.api.java.JavaPairRDD;
  3. import org.apache.spark.api.java.JavaRDD;
  4. import org.apache.spark.api.java.JavaSparkContext;
  5. import org.apache.spark.api.java.function.FlatMapFunction;
  6. import org.apache.spark.api.java.function.Function2;
  7. import org.apache.spark.api.java.function.PairFunction;
  8. import org.apache.spark.api.java.function.VoidFunction;
  9. import scala.Tuple2;
  10.  
  11. import java.util.Arrays;
  12.  
  13. /**
  14. * Created by hadoop on 17-4-4.
  15. */
  16. public class SparkWordCount {
  17. public static void main(String[] args){
  18. SparkConf conf = new SparkConf()
  19. .setAppName("WordCountCluster");
  20. //第二步
  21. JavaSparkContext sc = new JavaSparkContext(conf);
  22. JavaRDD<String> lines = sc.textFile("hdfs://hadoop01:9000/a.txt");
  23. JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>(){
  24. private static final long serialVersionUID = 1L;
  25.  
  26. @Override
  27. public Iterable<String> call(String line) throws Exception{
  28. return Arrays.asList(line.split(" "));
  29. }
  30. });
  31.  
  32. JavaPairRDD<String,Integer> pairs = words.mapToPair(
  33. new PairFunction<String, String, Integer>() {
  34.  
  35. private static final long serialVersionUID = 1L;
  36.  
  37. public Tuple2<String, Integer> call(String word) throws Exception {
  38. return new Tuple2<String, Integer>(word,1);
  39. }
  40. }
  41. );
  42.  
  43. JavaPairRDD<String,Integer> wordCounts = pairs.reduceByKey(
  44. new Function2<Integer, Integer, Integer>() {
  45. @Override
  46. public Integer call(Integer v1, Integer v2) throws Exception {
  47. return v1+v2;
  48. }
  49. }
  50. );
  51.  
  52. wordCounts.foreach(new VoidFunction<Tuple2<String, Integer>>() {
  53. @Override
  54. public void call(Tuple2<String, Integer> wordCount) throws Exception {
  55. System.out.println(wordCount._1+" : "+ wordCount._2 );
  56. }
  57. });
  58.  
  59. sc.close();
  60.  
  61. }
  62. }

  

打包:

执行

会在output目录下 生成可执行jar包 sparkStudy

4、jar包上传到集群并执行

从spark官方网站 下载spark-1.6.1-bin-hadoop2.6.tgz

Spark目录:

    bin包含用来和Spark交互的可执行文件,如Spark shell。

    examples包含一些单机Spark job,可以研究和运行这些例子。

  Spark的Shell:

    Spark的shell能够处理分布在集群上的数据。

    Spark把数据加载到节点的内存中,因此分布式处理可在秒级完成。

    快速使用迭代式计算,实时查询、分析一般能够在shells中完成。

    Spark提供了Python shells和Scala shells。

解压

这里需要先启动集群:

  启动master:  ./sbin/start-master.sh

  启动worker:  ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077

        这里的地址为:启动master后,在浏览器输入localhost:8080,查看到的master地址

启动成功后,jps查看进程:

接下来执行提交命令,将打好的jar包上传到linux目录,jar包在项目目录下的out\artifacts下。

  提交作业: ./bin/spark-submit --master spark://localhost:7077 --class WordCount /home/lucy/learnspark.jar

  可以在4040端口查看job进度:

将执行的包上传到服务器上,封装执行的脚本。

然后执行脚本,执行结果如下:

任务执行结束。

spark编程入门-idea环境搭建的更多相关文章

  1. Minecraft Forge编程入门一 “环境搭建”

    什么是Forge Minecraft Forge is a Minecraft application programming interface (API) which allows almost ...

  2. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十一)定制一个arvo格式文件发送到kafka的topic,通过Structured Streaming读取kafka的数据

    将arvo格式数据发送到kafka的topic 第一步:定制avro schema: { "type": "record", "name": ...

  3. 大数据学习day18----第三阶段spark01--------0.前言(分布式运算框架的核心思想,MR与Spark的比较,spark可以怎么运行,spark提交到spark集群的方式)1. spark(standalone模式)的安装 2. Spark各个角色的功能 3.SparkShell的使用,spark编程入门(wordcount案例)

    0.前言 0.1  分布式运算框架的核心思想(此处以MR运行在yarn上为例)  提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而 ...

  4. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  5. Android入门之环境搭建

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...

  6. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

    一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 sla ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十三)kafka+spark streaming打包好的程序提交时提示虚拟内存不足(Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical memory used; 2.2 GB of 2.1 G)

    异常问题:Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical mem ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。

    Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭 ...

随机推荐

  1. ASP.NET网站要手机自适应页面

    本文转载的地址:http://mobile.51cto.com/ahot-409516.htm 一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的? 其实并不难. 首 ...

  2. 2019.2.23VScode的c++配置详细方法

    根据个人经验,最新的c++配置方法. 主要的步骤: 安装Vscode 在Vscode类安装c++插件 安装编译调试环境 修改Vscode配置文件. 安装Vscode的步骤省略 如何配置Vscode中文 ...

  3. bootstrap 幻灯片(轮播)

    <!DOCTYPE html><html><head>    <meta charset="utf-8">     <titl ...

  4. try install gitlab ce at docker ce

    sudo docker run --detach \ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.30:8087/ ...

  5. 解析Spring第二天

    目的:使用spring中纯注解的方式 前言:同样是使用idea创建一个普通的maven工程(如何创建一个普通的Maven工程可以参考mybatis入门第一天的详解). bean管理类常用的4个注解(作 ...

  6. JavaScript 对象与函数

    对象参考手册 Array Boolean Date Math Number String RegExp Global 前言 在js中什么都是对象(包括函数). 函数是用来实现具体功能的代码,用一种方式 ...

  7. luoguP2398 GCD SUM [gcd]

    题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n 输出格式: sum ...

  8. git撤销修改及版本回退

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, ...

  9. java8 新特性学习笔记

    Java8新特性 学习笔记 1主要内容 Lambda 表达式 函数式接口 方法引用与构造器引用 Stream API 接口中的默认方法与静态方法 新时间日期 API 其他新特性 2 简洁 速度更快 修 ...

  10. java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consumer_offsets-30\00000000000000000000.timeindex.cleaned: 另一个程序正在使用此文件,进程无法访问。

    在启动kafka时候报错: java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consume ...