Spark IMF课程:第56课:Spark SQL和DataFrame的本质http://lqding.blog.51cto.com/9123978/1751056第57课:Spark SQL on Hive配置及实战http://lqding.blog.51cto.com/9123978/1751100第93课:SparkStreaming updateStateByKey 基本操作综合案例实
使用Patroni构建PostgreSQLHA集群实践前言PostgreSQL是一款功能,性能,可靠性都可以和高端的国外商业数据库相媲美的开源数据库。而且PostgreSQL的许可和生态完全开放,不被任何一个单一的公司或国家所操控,保证了使用者没有后顾之忧。国内越来越多的企业开始用PostgreSQL代替原来昂贵的国外商业数据库。在部署PostgreSQL到生产环境中时,选择适合的高可用方案是
MongoDB认证与授权目录toc要想了解MongoDB的权限必须先了解如下一些关键字:user:用户,用于提供客户端连接MongoDB的认证账户;role:角色,数据权限的集合,创建用户的时候必须要指定对应的角色,否则用户无法操作数据库;resource:资源,包括database或collection也可以是database和collection的组合;如{db:<db,collection:
postgresql权限详解角色前言PostgreSQL使用角色的概念管理数据库访问权限。根据角色的设置方式,可以将角色视为数据库用户或数据库用户组。角色可以拥有数据库对象(例如,表和函数),并可以将对这些对象的权限分配给其他角色,以控制谁有权访问哪些对象。此外,还可以将角色的成员资格授予另一个角色,从而允许成员角色使用分配给另一个角色的权限。角色的概念包含了“用户”和“组”的概念。在8.1之前的
天涯客的blog
本期内容:Spark Streaming资源动态分配Spark Streaming动态控制消费速率为什么需要动态?Spark默认情况下粗粒度的,先分配好资源再计算。而Spark Streaming有高峰值和低峰值,但是他们需要的资源是不一样的,如果按照高峰值的角度的话,就会有大量的资源浪费。Spark Streaming不断的运行,对资源消耗和管理也是我们要考虑的因素。Spark Streamin
本期内容:Spark Streaming数据清理原因和现象Spark Streaming数据清理代码解析对Spark Streaming解析了这么多课之后,我们越来越能感知,Spark Streaming只是基于Spark Core的一个应用程序,因此掌握Spark Streaming对于我们怎么编写Spark应用是绝对有好处的。Spark Streaming 不像Spark Core的应用程序,
本期内容:Direct AccessKafka前面有几期我们讲了带Receiver的Spark Streaming 应用的相关源码解读。但是现在开发Spark Streaming的应用越来越多的采用No Receivers(Direct Approach)的方式,No Receiver的方式的优势: 1. 更强的控制自由度 2. 语义一致性 其实No Receiver
什么是state(状态)管理?我们以wordcount为例。每个batchInterval会计算当前batch的单词计数,那如果需要单词计数一直的累加下去,该如何实现呢?SparkStreaming提供了两种方法:updateStateByKey和mapWithState 。mapWithState 是1.6版本新增功能,目前属于实验阶段。mapWithState具官方说性能较upd
本期内容:ReceivedBlockTracker容错安全性DStream和JobGenerator容错安全性Driver的容错有两个层面:1. Receiver接收数据的元数据 2. Driver管理的各组件信息(调度和驱动层面)元数据采用了WAL的容错机制case AddBlock(receivedBlockInfo) => if (
Receiver接收到的数据交由ReceiverSupervisorImpl来管理。ReceiverSupervisorImpl接收到数据后,会数据存储并且将数据的元数据报告给ReceiverTracker 。Executor的数据容错可以有三种方式:WAL日志数据副本接收receiver的数据流回放/** Store block and report&nb
上节课将到了Receiver是如何不断的接收数据的,并且接收到的数据的元数据会汇报给ReceiverTracker,下面我们看看ReceiverTracker具体的功能及实现。一、 ReceiverTracker主要的功能:在Executor上启动Receivers。停止Receivers 。更新Receiver接收数据的速率(也就是限流)不断的等待Receivers的运行状态,只要Receive
上一课我们讲解了Receiver启动的流程。Receiver是通过ReceiverSupervisor的start方法启动的:/** Start the supervisor */ def start() { onStart() startReceiver() }首先会调用ReceiverS
在Spark Streaming中对于ReceiverInputDStream来说,都是现实一个Receiver,用来接收数据。而Receiver可以有很多个,并且运行在不同的worker节点上。这些Receiver都是由ReceiverTracker来管理的。在ReceiverTracker的start方法中,会创建一个消息通信体ReceiverTrackerEndpoint:/**
DStream是RDD的模板,每隔一个batchInterval会根据DStream模板生成一个对应的RDD。然后将RDD存储到DStream中的generatedRDDs数据结构中:// RDDs generated, marked as private[streaming] so that tests
接着上一节,JobGenerator每隔batchInterval时间会动态的生成JobSet提交给JobScheduler。JobScheduler接收到JobSet后,如何处理呢?def submitJobSet(jobSet: JobSet) { if (jobSet.jobs.isEmpty) { &nb
上一节我们从总体上讲解了Spark Streaming job的运行机制。本节我们针对job如何生成进行详细的阐述,请看下图:在Spark Streaming里,总体负责动态作业调度的具体类是JobScheduler:/** * This class schedules jobs to be run on&
Spark Streaming的Job到底是如何运行的,我们下面以一个例子来解析一下:package com.dt.spark.streaming import com.dt.spark.common.ConnectPool import org.apache.spark.SparkConf import org.apache.spark.streamin
Spark 是分布式计算框架,多台机器之间必然存在着通信。Spark在早期版本采用Akka实现。现在在Akka的上层抽象出了一个RpcEnv。RpcEnv负责管理机器之间的通信。RpcEnv包含了如下三大核心:RpcEndpoint 消息循环体,负责接收并处理消息。Spark中的Master、Worker都是RpcEndpoint 。RpcEndpointRef :RpcE
代码如下:package com.dt.spark.streaming import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.streaming.{StreamingConte
G1 垃圾收集器是Jdk7的新特性之一、Jdk7+版本都可以自主配置G1作为JVM GC选项;作为JVM GC算法的一次重大升级、JDK7u后G1已相对稳定、且未来计划替代CMS、所以有必要深入了解下:不同于其他的分代回收算法、G1将堆空间划分成了互相独立的区块。每块区域既有可能属于O区、也有可能是Y区,且每类区域空间可以是不连续的(对比CMS的O区和Y区都必须是连续的)。这种将O区划分成多块的理
Spark Streaming的事务处理和关系型数据库的事务的概念有所不同,关系型数据库事务关注的是语句级别的一致性,例如银行转账。而Spark Streaming的事务关注的是某次job执行的一致性。也就是如何保证Job在处理数据的过程中做到如下两点:不丢失数据不重复处理数据SparkStreaming程序执行架构大致如下:一、我们先来说说丢失数据的情况:Receiver接收到数据
本期内容:解密Spark Streaming Job架构和运行机制解密Spark Streaming容错架构和运行机制理解SparkStreaming的Job的整个架构和运行机制对于精通SparkStreaming是至关重要的。我们知道对于一般的Spark应用程序来说,是RDD的action操作触发了Job的运行。那对于SparkStreaming来说,Job是怎么样运行的呢?我们在编写Spark
Spark Streaming的DStream为我们提供了一个updateStateByKey方法,它的主要功能是可以随着时间的流逝在Spark Streaming中为每一个key维护一份state状态,通过更新函数对该key的状态不断更新。对每一个新的batch而言,Spark Streaming会在使用updateStateByKey的时候为已经存在的key进行sta
本期内容技术实现解析实现实战SparkStreaming的DStream提供了一个dstream.foreachRDD方法,该方法是一个功能强大的原始的API,它允许将数据发送到外部系统。然而,重要的是要了解如何正确有效地使用这种原始方法。一些常见的错误,以避免如下:写数据到外部系统,需要建立一个数据连接对象(例如TCP连接到远程的服务器),使用它将数据发送到外部存储系统。为此开发者可能会在Dri
本期内容:解密Spark Streaming 运行机制解密Spark Streaming 框架Spark Streaming是Spark的一个子框架,但是它更像是运行在Spark Core上的一个应用程序。Spark Streaming在启动时运行了很多的job,并且job之间相互配合。Job围绕了两个方面:1. 对输入数据流进行计算的Job2. 框架自身运行需要的Job,例如Receiver启动
背景描述:在社交网络(例如微博)、电子商务(例如京东)、搜索引擎(例如百度)等人们核心关注的内容之一就是我所关注的内容中大家正在最关注什么或者说当前的热点是什么,这在实际企业级应用中是非常有价值的。例如我们关系过去30分钟大家正在热搜索什么,并且每5分钟更新一次,这就使得热点内容是动态更新,当然也是更有价值。我们知道在SparkStreaming中可以设置batchInterval,让SparkS
本期内容:SparkStreaming在线另类实验瞬间理解SparkStreaming的本质 SparkStreaming 是Spark Core上的一个子框架,如果我们能够完全精通了一个子框架,我们就能够更好的驾驭Spark。SparkStreaming和Spark SQL是目前最流行的框架,从研究角度而言,Spark SQL有太多涉及到SQL优化的问题,不太适应用来深入研究。而Sp
本期课程内容:在线黑名单过滤实现解析SparkStreaming实现在线黑名单过滤 广告计费系统,是电商必不可少的一个功能点。为了防止恶意的广告点击(假设商户A和B同时在某电商做了广告,A和B为竞争对手,那么如果A使用点击机器人进行对B的广告的恶意点击,那么B的广告费用将很快被用完),必须对广告点击进行黑名单过滤。 可以使用leftouter join
1,首先需要安装hive,参考http://lqding.blog.51cto.com/9123978/1750967 2,在spark的配置目录下添加配置文件,让Spark可以访问hive的metastore。root@spark-master:/usr/local/spark/spark-1.6.0-bin-hadoop2.6/conf# vi hive-site.xml
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号