编程那点事编程那点事

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

大数据

大数据

接收flume实时数据流

codingwhy 阅读(1)

flume风格的基于push的方式Flume被设计为可以在agent之间推送数据,而不一定是从agent将数据传输到sink中。在这种方式下,Spark Streaming需要启动一个作为Avro Agent的Receiver,来让flume可以推送数据过来。下面是我们的整合步骤:前提需要选择一台机器:Spark Streaming与Flume都可以在这台机器上启动,Spark的其中一个Worker必须运行在这...

大数据

高阶技术之自定义Receiver

codingwhy 阅读(1)

spark streaming可以从任何数据源来接收数据,哪怕是除了它内置支持的数据源以外的其他数据源(比如flume、kafka、socket等)。如果我们想要从spark streaming没有内置支持的数据源中接收实时数据,那么我们需要自己实现一个receiver。实现一个自定义的receiver一个自定义的receiver必须实现以下两个方法:onStart()、onStop()。onStart()和on...

大数据

接收flume实时数据流

codingwhy 阅读(1)

flume风格的基于push的方式Flume被设计为可以在agent之间推送数据,而不一定是从agent将数据传输到sink中。在这种方式下,Spark Streaming需要启动一个作为Avro Agent的Receiver,来让flume可以推送数据过来。下面是我们的整合步骤:前提需要选择一台机器:Spark Streaming与Flume都可以在这台机器上启动,Spark的其中一个Worker必须运行在这...

大数据

flume安装

codingwhy 阅读(1)

安装flume下载flume解压到/usr/local目录下重命名为mv apache-flume-1.5.0-cdh5.3.6-bin flume配置环境变量修改配置文件vi conf/flume-conf.properties#agent1表示代理名称agent1.sources=source1 agent1.sinks=sink1 agent1.channels=channel1#配置source1agent1.sources.source1.type=spooldir agent1.sources.source1.spoolDir=/us...

大数据

性能调优

codingwhy 阅读(1)

数据接收并行度调优通过网络接收数据时(比如Kafka、Flume),会将数据反序列化,并存储在Spark的内存中。如果数据接收称为系统的瓶颈,那么可以考虑并行化数据接收。每一个输入DStream都会在某个Worker的Executor上启动一个Receiver,该Receiver接收一个数据流。因此可以通过创建多个输入DStream,并且配置它们接收数据源不同的分区数据,达...

大数据

容错机制以及事务语义详解

codingwhy 阅读(1)

容错机制的背景要理解Spark Streaming提供的容错机制,先回忆一下Spark RDD的基础容错语义:RDD,Ressilient Distributed Dataset,是不可变的、确定的、可重新计算的、分布式的数据集。每个RDD都会记住确定好的计算操作的血缘关系,(val lines = sc.textFile(hdfs file); val words = lines.flatMap(); val pairs = words.map(); val wordCo...

大数据

部署、升级和监控应用程序

codingwhy 阅读(1)

部署应用程序有一个集群资源管理器,比如standalone模式下的Spark集群,Yarn模式下的Yarn集群等。打包应用程序为一个jar包,课程中一直都有演示。为executor配置充足的内存,因为Receiver接受到的数据,是要存储在Executor的内存中的,所以Executor必须配置足够的内存来保存接受到的数据。要注意的是,如果你要执行窗口长度为10分钟的窗口操作...

大数据

Checkpoint机制

codingwhy 阅读(1)

概述每一个Spark Streaming应用,正常来说,都是要7 * 24小时运转的,这就是实时计算程序的特点。因为要持续不断的对数据进行计算。因此,对实时计算应用的要求,应该是必须要能够对与应用程序逻辑无关的失败,进行容错。如果要实现这个目标,Spark Streaming程序就必须将足够的信息checkpoint到容错的存储系统上,从而让它能够从失败中进行恢...

大数据

缓存、持久化机制

codingwhy 阅读(1)

与RDD类似,Spark Streaming也可以让开发人员手动控制,将数据流中的数据持久化到内存中。对DStream调用persist()方法,就可以让Spark Streaming自动将该数据流中的所有产生的RDD,都持久化到内存中。如果要对一个DStream多次执行操作,那么,对DStream持久化是非常有用的。因为多次操作,可以共享使用内存中的一份缓存数据。对于基于窗口的操...

大数据

Stream的output操作以及foreachRDD详解

codingwhy 阅读(1)

output操作OutputMeaningprint打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么output操作时,用于简单触发一下job。saveAsTextFile(prefix, [suffix])将每个batch的数据保存到文件中。每个batch的文件的命名格式为:prefix-TIME_IN_MS[.suffix]saveAsObjectFile同上,但是将每个batch的数据以序列化对象的方式,保存到Seque...