Spark Streaming 作业练习

这篇博客介绍了使用Spark Streaming进行单词统计的实验,包括实时统计每10秒新出现的单词数量、最近1分钟内单词出现次数以及累计出现次数。文章详细阐述了启动SparkShell的注意事项,如避免使用yarn模式,以及实验中遇到的检查点、任务关闭等问题及其解决方案。
摘要由CSDN通过智能技术生成

Spark Streaming 作业练习

实验内容及要求

在本地或HDFS新建一个测试目录,编写一个简单程序,每随机间隔若干秒(5s以内)在该目录下新建一个文件,并写入若干行内容(每一行包含若干单词,单词之间以空格分隔)。现利用Spark Streaming分别完成如下单词统计:
(1)实时统计每10s新出现的单词数量(每10s统计1次);
(2)实时统计最近1分钟内每个单词的出现次数(每10s统计1次);
(3)实时统计每个单词的累积出现次数,并将结果保存到本地文件(每10s统计1次)

为了顺利进行实验,请一定一定要不要使用yarn模式来开启SparkShell,用本地模式来开启即可。其他我遇到的报错都在文末的实验总结中有说明。

1、编写一个简单程序,实现随机间隔若干秒在指定路径下创建新文件,并写入适量单词,并以空格分割,帮助完成单词统计任务。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * @author: 冰冷灬泡面
 * @date: 2021/6/3 16:03
 * @description:
 * @modifiedBy:
 */
public class MyGenerator {
   
    List<String> dictionary;

    public static void main(String[] args) throws Exception{
   
        if (args[0] == null) {
   
            System.out.println("第一参数为空,停止运行");
            return;
        }

        MyGenerator myGenerator = new MyGenerator();
        myGenerator.myInit();
        String line = null;
        Random rd = new Random();
        int cnt = 0;
        //核心代码
        while (true) {
   
            int index = rd.nextInt(myGenerator.dictionary.size());
            line = myGenerator
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值