本人的开发环境:
1.虚拟机centos 6.5
2.jdk 1.8
3.spark2.2.0
4.scala 2.11.8
5.maven 3.5.2
    在开发和搭环境时必须注意版本兼容的问题,不然会出现很多莫名其妙的问题
 
1.启动master进程
./sbin/start-master.sh
 
2.启动worker进程
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://hadoop000:7077
【注意,spark://hadoop000:7077,是在启动master进程后,通过localhost:8080登陆到spark WebUI上查看的。】
 
第一第二点是运行环境的前提条件,下面是开发环境。
 
1.idea结合maven开发spark,下面以NetWorldCount为例子
package com.spark

import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext} /**
* Spark Streaming处理Socket数据
* 测试: nc
*/
object NetworkWordCount { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local").setAppName("NetworkWordCount") /**
* 创建StreamingContext需要两个参数:SparkConf和batch interval
*/
val ssc = new StreamingContext(sparkConf, Seconds(5)) val lines = ssc.socketTextStream("localhost", 6789) val result = lines.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_) result.print() ssc.start()
ssc.awaitTermination()
}
}

2.生成jar包

 3.上传jar包

4.提交任务前先启动监听端口,在终端输入以下命令
nc -lk 6789
 
 
5.提交任务
./spark-submit  --master local[2] --class com.spark.NetworkWordCount --name NetworkWordCount  /home/hadoop/tmp/spark.jar

运行程序,出现下面的错误:

a.local这里出错。原因简单来说,local模式下只开启一条线程,reciver占用一条线程后,没有资源用来计算处理数据了。
解决办法:local--->local[2]
 
b.缺少com.fasterxml.jackson.scala这个方法
解决办法:
1.查看这个类的版本:view--->maven project--->--->.然后在pom.xml增加对应的dependency
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_2.11</artifactId>
<version>2.6.5</version>
</dependency>
重新reimport,再次运行。出现以下错误

去maven reposition查找对应的依赖:

在这里,使用1.3.0版本的。

在pom.xml添加以下的 dependency
<dependency>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
<version>1.3.0</version>
</dependency>
 
重新reimport,再次运行。这次程序正常运行。
 
输入数据:

接受数据:

至此,windows下,idea结合maven开发spark+调试过程 完整跑了一遍。
下面分析

 val sparkConf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount") 

 在本地调试中,输入源除了 fileStream外,必须local[n], n >= 2 。
 在spark中,输入源除了 fileStream ,其他的都继承自 ReceiverInputDStream ,因此其他都需要至少两条线程(针对local模式)以上来供程序使用。
def fileStream[
K: ClassTag,
V: ClassTag,
F <: NewInputFormat[K, V]: ClassTag
] (directory: String): InputDStream[(K, V)] = {
new FileInputDStream[K, V, F](this, directory)
}
 
例如本例子中使用的 socketTextStream
def socketTextStream(
hostname: String,
port: Int,
storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2
): ReceiverInputDStream[String] = withNamedScope("socket text stream") {
socketStream[String](hostname, port, SocketReceiver.bytesToLines, storageLevel)
}

windows下Idea结合maven开发spark和本地调试的更多相关文章

  1. MacOS使用IDEA+Maven+Scala+Spark进行本地调试

    参考:spark开发环境搭建(基于idea 和maven) 安装JDK 从这里下载Java 8的JDK 设置JAVA_HOME环境变量,在Mac上它大概会是/Library/Java/JavaVirt ...

  2. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  3. Windows下的Objective-C集成开发环境(IDE)

    Windows下的Objective-C集成开发环境(IDE) 分类: Objective-C2012-04-20 21:54 26631人阅读 评论(42) 收藏 举报 windowside编译器c ...

  4. Windows下搭建objective C开发环境

    摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...

  5. Windows 下最佳的 C++ 开发的 IDE 是什么?

    作者:渡世白玉链接:https://www.zhihu.com/question/19589089/answer/30312199来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  6. windows下搭建nginx+php开发环境

    windows下搭建nginx+php开发环境 1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: ...

  7. Windows下安装Object C开发环境,及Hello Word(转)

    Windows下安装Object C开发环境,及Hello Word 最近想学习iphone开发,但是由于没有c基础,只有java基础.所以先从基础学习,首先是搭建环境,目前手头没有mac机子,只能先 ...

  8. Windows下快速搭建安卓开发环境android-studio

    Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...

  9. 【RN - 基础】之Windows下搭建React Native开发环境

    前言 React Native由Facebook公司于2015年F8大会上开源,其主张“Learn once, write everywhere”.React Native的核心设计理念是:既拥有Na ...

随机推荐

  1. OK6410之tftp下载内核,nfs…

    原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...

  2. VBox 安装 Ubuntu Server 的那些坑,键盘乱码、网卡互连、共享目录等

    1.更新,相信大家都是有强迫症的 sudo apt-get update sudo apt-get upgrade 出现错误:Could not open lock file /var/lib/dpk ...

  3. Marr的视觉计算理论

            Marr的视觉计算理论立足于计算机科学,系统地概括了心理物理学.神经生理学.临床神经病理学等方面已取得的所有重要成果,是迄今为止最为系统的视觉理论.Marr 的视觉计算理论虽然在细节甚 ...

  4. libcurl用法

    本文以向百度搜索开放平台搜索关键字所对应的推荐搜索条目为例子: url:http://m.baidu.com/su?wd=%s&action=opensearch&ie=utf-8 ( ...

  5. 【原创】请不要对Boost Format使用Byte作为参数

    曾几何时我们可以肆无忌惮的对sprintf传入BYTE等类型作为参数,只要你指定的为%D即可打印出对应的数字 但是boost format不可以,当你发生类型截断,错误,异常,请尽快查看你传入的类型是 ...

  6. sublime text3安装后html:5+Tab不能快速生成html头部信息的解决办法

    sublime text3安装后html:5+Tab不能快速生成html头部信息的解决办法: 需要下载Emmet插件,按网上写的步骤按ctrl+shift+P打开命令面板,输入install,鼠标点击 ...

  7. HightCharts开发总结

    1.   简介:Highcharts是一款纯javascript编写的图表库,能够在Web网站或Web应用中添加交互性的图表,现在官方的最新版本为Highcharts-4.2.3. 2.   兼容性: ...

  8. ZendStudio 代码调试

    F5.单步调试进入函数内部(单步进入)F6.单步调试不进入函数内部(跳过)F7.由函数内部返回到调用处(跳出) F8.一直执行到下一个断点Ctrl+F2:结束调试

  9. VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接

    笔者这两天写代码过程中,发现自己解决方案下的程序启动调试,半天才开始加载相关的各种库.导致调试的时候很是郁闷 开始以为是项目关联的工程太多导致,但是在相同的解决方案sln下面,新建一个简单的控制台程序 ...

  10. Request[]与Request.Params[] 差别

    Request[]与Request.Params[] ,这二个属性都可以让我们方便地根据一个KEY去[同时搜索]QueryString.Form.Cookies 或 ServerVariables这4 ...