Spark-Eclipse开发环境WordCount

视频教程:

1、优酷

2、YouTube

安装eclipse

解压eclipse-jee-mars-2-win32-x86_64.zip

JavaWordcount

解压spark-2.0.0-bin-hadoop2.6.tgz

创建 Java Project-->Spark

将spark-2.0.0-bin-hadoop2.6下的jars里面的jar全部复制到Spark项目下的lib下

Add Build Path

  1 package com.bean.spark.wordcount;
  2
  3
  4
  5 import java.util.Arrays;
  6
  7 import java.util.Iterator;
  8
  9
 10
 11 import org.apache.spark.SparkConf;
 12
 13 import org.apache.spark.api.java.JavaPairRDD;
 14
 15 import org.apache.spark.api.java.JavaRDD;
 16
 17 import org.apache.spark.api.java.JavaSparkContext;
 18
 19 import org.apache.spark.api.java.function.FlatMapFunction;
 20
 21 import org.apache.spark.api.java.function.Function2;
 22
 23 import org.apache.spark.api.java.function.PairFunction;
 24
 25 import org.apache.spark.api.java.function.VoidFunction;
 26
 27
 28
 29 import scala.Tuple2;
 30
 31
 32
 33 public class WordCount {
 34
 35 public static void main(String[] args) {
 36
 37 //创建SparkConf对象,设置Spark应用程序的配置信息
 38
 39 SparkConf conf = new SparkConf();
 40
 41 conf.setMaster("local");
 42
 43 conf.setAppName("wordcount");
 44
 45
 46
 47 //创建SparkContext对象,Java开发使用JavaSparkContext;Scala开发使用SparkContext
 48
 49 //SparkContext负责连接Spark集群,创建RDD、累积量和广播量等
 50
 51 JavaSparkContext sc = new JavaSparkContext(conf);
 52
 53
 54
 55 //sc中提供了textFile方法是SparkContext中定义的,用来读取HDFS上的
 56
 57 //文本文件、集群中节点的本地文本文件或任何支持Hadoop的文件系统上的文本文件,它的返回值是JavaRDD[String],是文本文件每一行
 58
 59 JavaRDD<String> lines = sc.textFile("D:/tools/data/wordcount/wordcount.txt");
 60
 61 //将每一行文本内容拆分为多个单词
 62
 63 //lines调用flatMap这个transformation算子(参数类型是FlatMapFunction接口实现类)返回每一行的每个单词
 64
 65 JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
 66
 67
 68
 69 private static final long serialVersionUID = 1L;
 70
 71
 72
 73 @Override
 74
 75 public Iterator<String> call(String s) throws Exception {
 76
 77 // TODO Auto-generated method stub
 78
 79 return Arrays.asList(s.split(" ")).iterator();
 80
 81 }
 82
 83 });
 84
 85 //将每个单词的初始数量都标记为1个
 86
 87 //words调用mapToPair这个transformation算子(参数类型是PairFunction接口实现类,
 88
 89 //PairFunction<String, String, Integer>的三个参数是<输入单词, Tuple2的key, Tuple2的value>),
 90
 91 //返回一个新的RDD,即JavaPairRDD
 92
 93 JavaPairRDD<String, Integer> word = words.mapToPair(new PairFunction<String, String, Integer>() {
 94
 95
 96
 97 private static final long serialVersionUID = 1L;
 98
 99
100
101 @Override
102
103 public Tuple2<String, Integer> call(String s) throws Exception {
104
105 // TODO Auto-generated method stub
106
107 return new Tuple2<String, Integer>(s, 1);
108
109 }
110
111 });
112
113 //计算每个相同单词出现的次数
114
115 //pairs调用reduceByKey这个transformation算子(参数是Function2接口实现类)对每个key的value进行reduce操作,
116
117 //返回一个JavaPairRDD,这个JavaPairRDD中的每一个Tuple的key是单词、value则是相同单词次数的和
118
119 JavaPairRDD<String, Integer> counts = word.reduceByKey(new Function2<Integer, Integer, Integer>() {
120
121
122
123 private static final long serialVersionUID = 1L;
124
125
126
127 @Override
128
129 public Integer call(Integer s1, Integer s2) throws Exception {
130
131 // TODO Auto-generated method stub
132
133 return s1 + s2;
134
135 }
136
137 });
138
139 counts.foreach(new VoidFunction<Tuple2<String,Integer>>() {
140
141
142
143 private static final long serialVersionUID = 1L;
144
145
146
147 @Override
148
149 public void call(Tuple2<String, Integer> wordcount) throws Exception {
150
151 // TODO Auto-generated method stub
152
153 System.out.println(wordcount._1+" : "+wordcount._2);
154
155 }
156
157 });
158
159 //将计算结果文件输出到文件系统
160
161 /*
162
163  * HDFS
164
165  * 新版的API
166
167  * org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
168
169  * counts.saveAsNewAPIHadoopFile("hdfs://master:9000/data/wordcount/output", Text.class, IntWritable.class, TextOutputFormat.class, new Configuration());
170
171  * 使用默认TextOutputFile写入到HDFS(注意写入HDFS权限,如无权限则执行:hdfs dfs -chmod -R 777 /data/wordCount/output)
172
173          * wordCount.saveAsTextFile("hdfs://soy1:9000/data/wordCount/output");
174
175          *
176
177  *
178
179  * */
180
181 counts.saveAsTextFile("D:/tools/data/wordcount/output");
182
183
184
185
186
187 //关闭SparkContext容器,结束本次作业
188
189 sc.close();
190
191 }
192
193 }

运行出错

在代码中加入:只要式加在JavaSparkContext初始化之前就可以

System.setProperty("hadoop.home.dir", "D:/tools/spark-2.0.0-bin-hadoop2.6");

将hadoop2.6(x64)工具.zip解压到D:\tools\spark-2.0.0-bin-hadoop2.6\bin目录下

PythonWordcount

eclipse集成python插件

解压pydev.zip将features和plugins中的包复制到eclipse的对应目录

 1 #-*- coding:utf-8-*-
 2
 3
 4
 5 from __future__ import print_function
 6
 7 from operator import add
 8
 9 import os
10
11 from pyspark.context import SparkContext
12
13 '''
14
15 wordcount
16
17 '''
18
19 if __name__ == "__main__":
20
21     os.environ["HADOOP_HOME"] = "D:/tools/spark-2.0.0-bin-hadoop2.6"
22
23     sc = SparkContext()
24
25     lines = sc.textFile("file:///D:/tools/data/wordcount/wordcount.txt").map(lambda r: r[0:])
26
27     counts = lines.flatMap(lambda x: x.split(' ')) \
28
29                   .map(lambda x: (x, 1)) \
30
31                   .reduceByKey(add)
32
33     output = counts.collect()
34
35     for (word, count) in output:
36
37         print("%s: %i" % (word, count))

提交代码到集群上运行

java:

[hadoop@master application]$ spark-submit --master spark://master:7077 --class com.bean.spark.wordcount.WordCount spark.jar

 python:

[hadoop@master application]$ spark-submit --master spark://master:7077 wordcount.py

转载于:https://www.cnblogs.com/LgyBean/p/6251344.html

(六)Spark-Eclipse开发环境WordCount-JavaPython版Spark相关推荐

  1. Apache Spark学习:利用Eclipse构建Spark集成开发环境

    介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上, 介绍如何利用Eclipse构建Spark集成开发环境 . 不建议大家使用eclips ...

  2. spark Intellij IDEA及eclipse开发环境搭建

    Apache Spark探秘:利用Intellij IDEA构建开发环境 http://dongxicheng.org/framework-on-yarn/apache-spark-intellij- ...

  3. Hadoop Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  4. 《Spark核心技术与高级应用》——3.2节构建Spark的开发环境

    本节书摘来自华章社区<Spark核心技术与高级应用>一书中的第3章,第3.2节构建Spark的开发环境,作者于俊 向海 代其锋 马海平,更多章节内容可以访问云栖社区"华章社区&q ...

  5. 搭建Python+Eclipse开发环境

    写在前面:因为hacker,开始学习Python,学习书籍是<Python灰帽子--黑客与逆向工程师的Python编程之道> 成为高手的秘诀--高手气质修炼! -------------- ...

  6. Eclipse开发环境搭建

    锁定老帖子 主题:Eclipse开发环境搭建 精华帖 (0) :: 良好帖 (3) :: 新手帖 (13) :: 隐藏帖 (0) 作者 正文 hanqunfeng 等级: 性别: 文章: 57 积分: ...

  7. linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇

    关于Qt  Eclipse的开F发,将会从不同的环境中区安装部署,分为上.中.篇,三篇文章来讲.Windows,Linux平台下安装使用eclipse + QT4.4.3开发环境,Windows,Li ...

  8. ubuntu eclipse java_搭建Ubuntu Java Eclipse开发环境

    搭建环境:Ubuntu 16.04 ×64 1.搭建jdk1.8运行环境 1.1.下载jdk1.8 使用的版本:jdk-8u121-linux-x64.tar.gz 1.2.安装jdk1.8 STEP ...

  9. hadoop搭建与eclipse开发环境设置

    hadoop搭建与eclipse开发环境设置(转) 1.    Windows下eclipse开发环境配置 1.1 安装开发hadoop插件 将hadoop安装包hadoop\contrib\ecli ...

最新文章

  1. python画曲线图例-如何使用python画曲线图
  2. Qt Creator如何恢复默认布局
  3. 转载:flash 跨域 crossdomain.xml
  4. 在mysql中插入日期
  5. commons-pool2-2.3 jar包_[漏洞复现]FastJson 1.2.61远程代码执行漏洞(From第三方jar包)
  6. java可选项_在Java中链接可选项8
  7. 用python实现excel 14个常用操作_用Python实现excel 14个常用操作
  8. 搭建公司内部的NuGet服务器
  9. CentOS 7 关闭 rpcbind 服务
  10. 百度热力图颜色说明_揭秘!张家口100万人口热力图,看完你就知道房子该买哪里了...
  11. CR 与 LF 换行符
  12. 使用MS Word设计和打印自己的圣诞贺卡,第1部分
  13. 计算机网络设备调试员报名,工信部网络设备调试员一级高级技师、二级技师
  14. leafler如何清除地图上的图标点
  15. NVR是什么设备?(Network Video Recorder,网络视频监控系统的存储转发部分)硬盘录像机DVR、视频编码器DVS、网络摄像机IPC
  16. GORM报错sql: Scan called without calling Next
  17. windows redis 后台启动
  18. “傲慢”的飞书渴望被“白嫖”
  19. JavaWeb27.2【综合案例:旅游线路详情展示】
  20. c标签List 判断空、获取长度、遍历map、格式化时间

热门文章

  1. Hibernate_2_Hibernate中对象状态及转化_一级缓存_Session详解_HQL/SQL/Criteria_一对多关系_级联操作
  2. 【Pytorch神经网络实战案例】26 MaskR-CNN内置模型实现目标检测
  3. 命令行import torch正常,但pycharm中显示“No module named torch”解决方法
  4. html插入flash代码_初学者必备Web开发APP,支持代码补全,一键插入代码,厉害了!...
  5. LeetCode 2075. 解码斜向换位密码(模拟)
  6. LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)
  7. cms安装教程Linux,DoraCMS安装教程(linux)
  8. 前端:实现手机左右滑动效果
  9. Linux Ubuntu 安装 anaconda3和 Pycharm 社区版本
  10. android p dp5,谷歌释出Android P第5个开发者预览版更新!