文档章节

SPARK 本地模式运行

吹比龙
 吹比龙
发布于 2017/04/10 17:12
字数 474
阅读 1K
收藏 0

精选30+云产品,助力企业轻松上云!>>>

之前搞过STORM知道本地模式非常的方便,特意查询学习SPARK本地DEBUG模式开发

Pom.xml

        <dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming_2.10</artifactId>
			<version>2.1.0</version>
		</dependency>

2017年4月10日最新Spark

Java示例代码

经典WorldCount

参考文档:http://blog.csdn.net/xsdxs/article/details/52203922

package com.chuibilong.spark;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;

import scala.Tuple2;

public class WordCount {

    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setMaster("local").setAppName(
                "wordCountTest");
        JavaSparkContext sc = new JavaSparkContext(conf);

        List<String> list = new ArrayList<String>();
        list.add("1 1 2 a b");
        list.add("a b 1 2 3");
        JavaRDD<String> RddList = sc.parallelize(list);
        // 先切分为单词,扁平化处理
        JavaRDD<String> flatMapRdd = RddList
                .flatMap(new FlatMapFunction<String, String>() {
                    /**
                     * 
                     */
                    private static final long serialVersionUID = 1L;

                    @Override
                    public Iterator<String> call(String str) {
                        System.out.println(str);
                        return Arrays.asList(str.split(" ")).iterator();
                    }
                });
        // 再转化为键值对
        JavaPairRDD<String, Integer> pairRdd = flatMapRdd
                .mapToPair(new PairFunction<String, String, Integer>() {
                    /**
                     * 
                     */
                    private static final long serialVersionUID = 1L;

                    public Tuple2<String, Integer> call(String word)
                        throws Exception {
                        return new Tuple2<String, Integer>(word, 1);
                    }
                });

        // 对每个词语进行计数
        JavaPairRDD<String, Integer> countRdd = pairRdd
                .reduceByKey(new Function2<Integer, Integer, Integer>() {
                    /**
                     * 
                     */
                    private static final long serialVersionUID = 1L;

                    @Override
                    public Integer call(Integer i1, Integer i2) {
                        return i1 + i2;
                    }
                });
        System.out.println("结果:" + countRdd.collect());
        sc.close();
    }
}

DAY DAY UP

后面准备写个 SPARK STREAMING 的DEMO(预想是怒Spark 的github)

直接参考:http://blog.csdn.net/jacklin929/article/details/53689365

//注意本地调试,master必须为local[n],n>1,表示一个线程接收数据,n-1个线程处理数据
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("streaming word count");
JavaSparkContext sc = new JavaSparkContext(conf);
//设置日志运行级别
sc.setLogLevel("WARN");
JavaStreamingContext ssc = new JavaStreamingContext(sc, Durations.seconds(1));
//创建一个将要连接到
JavaReceiverInputDStream<String> lines = hostname:port 的离散流
ssc.socketTextStream("master1", 9999); 
JavaPairDStream<String, Integer> counts = 
        lines.flatMap(x->Arrays.asList(x.split(" ")).iterator())
        .mapToPair(x -> new Tuple2<String, Integer>(x, 1))
        .reduceByKey((x, y) -> x + y);

// 在控制台打印出在这个离散流(DStream)中生成的每个 RDD 的前十个元素
counts.print();
// 启动计算
ssc.start();
ssc.awaitTermination();

建立服务端 
找台Linux服务器,运行netcat小工具: 
nc -lk 9999 
也就是上面代码里socketTextStream的参数.

下一篇: 重试机制
吹比龙
粉丝 10
博文 135
码字总数 38713
作品 0
合肥
程序员
私信 提问
加载中
请先登录后再评论。
spark -- on yarn模式 Spark参数详解 IDEA编写Spark程序

spark on yarn Spark on yarn:Spark 使用了 yarn 管理器。Spark 运行在 YARN 上时,不需要启动 Spark 集群,只需要启动 YARN 即可, YARN 的 ResourceManager 相当于 Spark Standalone 模式...

kismetG
04/08
0
0
spark的运行模式之 ==> 本地运行模式

所谓运行模式,就是指spark应用跑在什么地方。mr程序可以在本地运行,也可以提交给yarn运行。这个概念是一样的。 跟其他Hadoop生态圈的组件一样,spark也需要JDK的环境,此外还需要SCALA环境...

osc_tvqwfyak
2019/03/19
1
0
Spark伪分布式环境配置与Scala、Java、Python编程实例

本文通过收集Spark中的基本概念、在Mac上配置伪分布式环境并分别用Python、Scala、Java三种语言独立编程实现了分布式版的WordCount程序以进行测试学习,来熟悉Spark的常用操作。 本文原发布于...

赵大寳Note
03/09
0
0
windoes运行spark程序,报错:Error while instantiating 'org.apache.spark.sql.hive.HiveExternalCatalog&...

本文将介绍spark在windows下本地模式的搭建 Spark的运行模式基本可以分为两种: 本地模式 即Driver程序只在本机运行 集群模式 即Dirver程序会在集群中运行,具体到集群模式,又可以分为spark...

osc_hiqsid7r
2019/11/04
2
0
初识Spark程序

执行第一个spark程序 普通模式提交任务: bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hdp-node-01:7077 --executor-memory 1G --total-executor-cores 2......

osc_6lxz5t70
2018/07/19
2
0

没有更多内容

加载失败,请刷新页面

加载更多

你看起来很好吃

你看起来很好吃 本文分享自微信公众号 - ZackSock(ZackSock)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

ZackSock
2019/10/25
7
0
Python绘制日历图和热力图

日历热力图 实现某商店2018年10月1号至2019年3月1号期间每一天盈利额(产生5000至30000区间的随机数)的数据可视化。 要求在鼠标放置每个单元格上时显示具体日期和对应数据 import datetime ...

气象学家公众号
07/03
10
0
#乔布简历#计协纳新季福利!乔布简历20元会员卡免费送

#乔布简历#计协纳新季福利!@乔布简历 20元会员卡免费送!活动规则:1)转发本微博/说说@ 三个好友;2)搜索关注“乔布堂”微信公众号,回复“BC016@你的QQ号”;截图发给计协微信公众号:j...

若川
2014/09/22
0
0
第十一届蓝桥第一场省赛题 走方格

走方格 问题描述: 在平面上有一些二维的点阵。这些点的编号就像二维数组的编号一样。从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。现在有...

osc_kf7nv2km
11分钟前
15
0
HTTP/2协议之Stream【原理笔记】

前言 前面三篇介绍了HPPT/2的“连接前言”、“二进制桢”、“头部压缩”。本文从“流及多路复用”、“流状态”、“流量控制”、“流优先级”、“HTTP/2扩展”介绍HTTP/2协议流相关知识。 一、...

瓜农老梁
05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部