编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

大数据

window滑动窗口以及热点搜索词滑动统计案例实战
大数据

window滑动窗口以及热点搜索词滑动统计案例实战

阅读(2660)

Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。比如下图中,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒钟,又会对最近三秒内的...

transform以及广告计费日志实时黑名单过滤案例实战
大数据

transform以及广告计费日志实时黑名单过滤案例实战

阅读(2797)

transform操作,应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作。它可以用于实现,DStream API中所没有提供的操作。比如说,DStream API中,并没有提供将一个DStream中的每个batch,与一个特定的RDD进行join的操作。但是我们自己就可以使用transform操作来实现该功能。DStream.join(),只能join其他DStream。在DStream每个batch的R...

updateStateByKey以及基于缓存的实时wordcount程序
大数据

updateStateByKey以及基于缓存的实时wordcount程序

阅读(2396)

updateStateByKey操作,可以让我们为每个key维护一份state,并持续不断的更新该state。首先,要定义一个state,可以是任意的数据类型;其次,要定义state更新函数——指定一个函数如何使用之前的state和新值来更新state。对于每个batch,Spark都会为每个之前已经存在的key去应用一次state更新函数,无论这个key在batch中是否有新的数据。如果s...

DStream的transformation操作概述
大数据

DStream的transformation操作概述

阅读(2116)

TransformationMeaningmap对传入的每个元素,返回一个新的元素flatMap对传入的每个元素,返回一个或多个元素filter对传入的元素返回true或false,返回的false的元素被过滤掉union将两个DStream进行合并count返回元素的个数reduce对所有values进行聚合countByValue对元素按照值进行分组,对每个组进行计数,最后返回<K, V>的格式reduceBy...

输入DStream之Kafka数据源实战(基于Direct的方式)
大数据

输入DStream之Kafka数据源实战(基于Direct的方式)

阅读(2570)

基于Direct的方式这种新的不基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。替代掉使用Receiver来接收数据后,这种方式会周期性地查询Kafka,来获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的简单consumer api来获取Kafka指定offset范围的...

输入DStream之Kafka数据源实战(基于Receiver的方式)
大数据

输入DStream之Kafka数据源实战(基于Receiver的方式)

阅读(3238)

基于Receiver的方式这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实现的。receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制,让数据零丢失,就必须启用Sp...

输入DStream之基础数据源以及基于HDFS的实时wordcount程序
大数据

输入DStream之基础数据源以及基于HDFS的实时wordcount程序

阅读(2128)

Socket:之前的wordcount例子,已经演示过了,StreamingContext.socketTextStream()HDFS文件基于HDFS文件的实时计算,其实就是,监控一个HDFS目录,只要其中有新文件出现,就实时处理。相当于处理实时的文件流。streamingContext.fileStream<KeyClass, ValueClass, InputFormatClass>(dataDirectory) streamingContext.fil...

输入DStream和Receiver详解原理介绍
大数据

输入DStream和Receiver详解原理介绍

阅读(2179)

输入DStream代表了来自数据源的输入数据流。在之前的wordcount例子中,lines就是一个输入DStream(JavaReceiverInputDStream),代表了从netcat(nc)服务接收到的数据流。除了文件数据流之外,所有的输入DStream都会绑定一个Receiver对象,该对象是一个关键的组件,用来从数据源接收数据,并将其存储在Spark的内存中,以供后续处理。Spark St...

StreamingContext详解
大数据

StreamingContext详解

阅读(3072)

有两种创建StreamingContext的方式:val conf = new SparkConf().setAppName(appName).setMaster(master);val ssc = new StreamingContext(conf, Seconds(1));StreamingContext,还可以使用已有的SparkContext来创建val sc = new SparkContext(conf)val ssc =&nb...

实时wordcount程序开发
大数据

实时wordcount程序开发

阅读(2480)

安装nc工具:yum install nc如果遇到错误nc: Protocol not available,是因为版本太高删除原来的ncyum erase nc下载较低版本的nc的.rpm文件wget http://vault.centos.org/6.3/os/i386/Packages/nc-1.84-22.el6.i686.rpm安装rpm -iUv nc-1.84-22.el6.i686.rpm测试nc -lk 9999开发实时wordcount程序Java版本...