Ubuntu 14.10 下使用IDEA开发Spark应用
1 环境准备
1.1 下载IDEA,可在官网下载
1.2 IDEA与Eclipse有点不同,IDEA中的New Projects相当于Eclipse中的workspace,New Module才是新建工程
2 建立Spark程序
2.1 首先新建项目,New Projects,名字随便取:Create New Project -> Scala -> SBT -> 创建名为SparkExample的project
2.2 创建Module,New Module,名字随便取:New Module-> Scala -> Scala,创建名为FirstApp
2.3 设置FirstApp 的Project Structure
2.3.1 增加源码目录,目录结构自己设置
2.3.2 增加Jar包,File -> Project Structure -> Libraries -> + -> java -> 选择
spark-assembly-1.0.0-hadoop2.2.0.jar
scala-library.jar
2.4 编写代码,在源码包下新建Object,这里找了三个Demo
- import org.apache.spark._
- import scala.math.random
- /**
- * Created by hadoop on 15-3-21.
- */
- object SparkPi {
- def main (args: Array[String]) {
- val conf = new SparkConf().setAppName("Spark Pi")
- val spark = new SparkContext(conf)
- val slices = if(args.length > 0) args(0).toInt else 2
- val n = 100000 * slices
- val count = spark.parallelize(1 to n,slices).map{ i =>
- val x = random * 2 - 1
- val y = random * 2 - 1
- if(x*x + y*y < 1) 1 else 0
- }.reduce(_+_)
- println("Pi is roughly " + 4.0 * count / n)
- spark.stop()
- }
- }
- import org.apache.spark.{SparkContext,SparkConf}
- import org.apache.spark.SparkContext._
- /**
- * Created by hadoop on 15-3-21.
- */
- object WordCount1 {
- def main (args: Array[String]) {
- if(args.length == 0){
- System.err.println("Usage: WordCount1 <file1>")
- System.exit(1)
- }
- val conf = new SparkConf().setAppName("WordCount1")
- val sc = new SparkContext(conf)
- sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x,1)).reduceByKey(_+_).take(10).foreach(println)
- sc.stop()
- }
- }
- import org.apache.spark.{SparkContext, SparkConf}
- import org.apache.spark.SparkContext._
- /**
- * Created by hadoop on 15-3-21.
- */
- object WordCount2 {
- def main(args: Array[String]) {
- if (args.length == 0) {
- System.err.println("Usage: WordCount2 <file1>")
- System.exit(1)
- }
- val conf = new SparkConf().setAppName("WordCount2")
- val sc = new SparkContext(conf)
- sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x,1)).reduceByKey(_+_).map(x =>
- (x._2,x._1)).sortByKey(false).map(x => (x._2,x._1)).take(10).foreach(println)
- sc.stop()
- }
- }
2.5 生成Jar包
生成程序包之前要先建立一个artifacts,File -> Project Structure -> Artifacts -> + -> Jars -> From moudles with dependencies,然后随便选一个class作为主class。
按OK后,对artifacts进行配置,修改Name为FirstApp,删除Output Layout中FirstApp.jar中的几个依赖包,只剩FirstApp项目本身。
按OK后, Build -> Build Artifacts -> FirstApp -> rebuild进行打包,经过编译后,程序包放置在out/artifacts/FirstApp目录下,文件名为FirstApp.jar。
3 测试Jar包,下图摘自http://blog.csdn.net/book_mmicky/article/details/25714545,需要修改Jar包名称,HDFS路径
参考:http://www.aboutyun.com/thread-8404-1-1.html
http://blog.csdn.net/book_mmicky/article/details/25714545
http://blog.csdn.net/david_xtd/article/details/19081341
Ubuntu 14.10 下使用IDEA开发Spark应用的更多相关文章
- Ubuntu 14.04 下使用IDEA开发Spark应用 入门
网上有很多教程,有用sbt ,也有不用sbt的,看的头大,搞了半天,终于运行成功一个例子,如下: 1.官网下载http://www.jetbrains.com/idea/download/ Inter ...
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
- Ubuntu 14.10 下安装Ganglia监控集群
关于 Ganglia 软件,Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格.它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数 ...
- Ubuntu 14.10 下安装java反编译工具 jd-gui
系统环境,Ubuntu 14.10 ,64位 1 下载JD-GUI,网址http://221.3.153.126/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/jd.benow.ca/ ...
- Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置
1 硬件环境 Ubuntu 14.10 64位 2 软件环境 openjdk-7-jdk hadoop 2.6.0 zookeeper-3.4.6 hbase-1.0.0 3 机群规划 3.1 zoo ...
- Ubuntu 14.10 下Hive配置
1 系统环境 Ubuntu 14.10 JDK-7 Hadoop 2.6.0 2 安装步骤 2.1 下载Hive 我第一次安装的时候,下载的是Hive-1.2.1,配置好之后,总是报错 [ERROR] ...
- Ubuntu 14.10 下DokuWiki安装
环境说明: Ubuntu 14.10 64位 1 下载DokuWiki:http://download.dokuwiki.org/ 2 解压到 /var/www/html下面 3 如果没有安装Apac ...
- Ubuntu 14.10 下Server版本中文乱码问题
在安装Ubuntu server 14.10 时候选择了中文版,但是装好系统发现,里面的中文有乱码,解决办法 打开 /etc/default/locale sudo nano /etc/default ...
- Ubuntu 14.10 下awk命令详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
随机推荐
- [LeetCode&Python] Problem 690. Employee Importance
You are given a data structure of employee information, which includes the employee's unique id, his ...
- innerHTML与innerText功能的强大
例: <div id="study"> <span style="color:red">学习</span>study < ...
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛-B:Tomb Raider(二进制枚举)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughter of a missing adv ...
- 洛谷 P4779 :【模板】单源最短路径(标准版)(Dijkstra+堆优化+链式前向星)
题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 100→60: Ag→Cu: 最终,他因此没能与理想 ...
- C++学习(三十二)(C语言部分)之 栈
栈测试代码笔记如下: #include<stdio.h> #include<string.h> #include <stdlib.h> #define SIZE 1 ...
- hdu3605 Escape 二分图多重匹配/最大流
2012 If this is the end of the world how to do? I do not know how. But now scientists have found tha ...
- Js 模式匹配
模式匹配: 什么是模式匹配:可以设置查找或替换的规则! 何时使用模式匹配:要查找的关键字可能发生有规律的变化. 如何使用模式匹配: 1.先定义模式:/关键字/模式 比如:var reg=/no/i; ...
- linux网络编程概念(一)
AF表示地址族(address family) PF表示协议族(protocol family) domain参数 AF_UNIX 内核中通信 sockaddr_un AF_INET 通过ipv4 s ...
- GBDT(Gradient Boosting Decision Tree) 没有实现仅仅有原理
阿弥陀佛.好久没写文章,实在是受不了了.特来填坑,近期实习了(ting)解(shuo)到(le)非常多工业界经常使用的算法.诸如GBDT,CRF,topic model的一些算 ...
- day9大纲
01 作业内容回顾 函数的初识: 封装一个功能. def 函数名(): 函数体 函数的返回值:return 1,结束函数. 2,返回给执行者(函数名())值. return ----> None ...