- 浏览: 74915 次
-
文章列表
前两天一直在忙本职工作, 最近才有时间闲下来看了一下SparkSql的执行过程, 记录一下。
主要是通过sqlContext.sql() 这个方法作为一个入口。
在这之前先得知道一句SQL传到 sql()这个方法里面后要经历好几次转换, 最终生成一个e ...
前面一片文章介绍了SocketTextStream 是如何从blockmanager里面获取block组成blockRDD的, 地址:
http://humingminghz.iteye.com/admin/blogs/2310003
那么接下来关注一下block是怎么存到blockmanager里面的。
还是从receiverTracker.start() 入手, 会执行ReceiverTracker的start方法:
def start(): Unit = synchronized {
if (isTrackerStarted) {
throw new Spa ...
前面一篇文章介绍了SparkStreaming是如何不停的循环submitJob的, 连接:
http://humingminghz.iteye.com/admin/blogs/2308711
既然已经知道了Spark Streaming如何循环处理, 那么我们就要看一下处理过程中是怎么获取到Dstream的, 用简单的socketTextStream 来做一个列子, 入口:
val lines = scc.socketTextStream(args(1), args(2).toInt, StorageLevel.MEMORY_AND_DISK)
在socketTextStream ...
前两天开始研究SparkSQL, 其主要分为HiveContext以及SQLContext
目前打算先学习SQLContent, 因为Hive环境还没搭好, 一步一步来 先把spark的原理弄明白后再去研究hadoop的组件。
这篇文章主要是讲如何使用SQLContext去读取csv文件, 然后根据表头注册表, 进行数据分析
要通过SQLContext去操作csv文件, 那么我们需要用到spark-csv_xxx.jar
sbt地址为:
// https://mvnrepository.com/artifact/com.databricks/spark-csv_2.10
libr ...
一直很好奇Sparkstreaming的ssc.start是怎么做到不停的一直定时循环处理数据的, 看了一下源码, 大致明白了整个过程, 记录分享一下。
入口为StreamingContext的start方法:
在构造StreamingContext的时候 state就初始化为INITIALIZED , 并且定义了一个JobScheduler scheduler
代码里面很明白, 在初始化的时候, 执行了JobScheduler的start方法。
def start(): Unit = synchronized {
state match {
case ...
在sparkstreaming中对窗口范围进行reduce主要有下面四个方法, 其他方法都是直接或者间接调用下面的方法来获取结果
在这之前, 最好了解我之前一篇博客内容:
http://humingminghz.iteye.com/blog/2308138
对非(K,V)形式的RDD 窗口化reduce:
1.r ...
林林总总玩了Spark快一个月了, 打算试一下kafka的消息系统加上Spark Streaming 进行实时推送数据的处理。
简单的写了一个类作为kafka的producer, 然后SparkStreaming的类作为consumer
Producer 的run方法产生数据:
public void run() {
KafkaProducer<Integer, String> producer = getProducer();
int messageNum = 0;
Random rd = new Random();
...