- 博客(142)
- 收藏
- 关注
原创 SparkStreaming中使用DataFrame和SQL操作
一.简介可以轻松地对流数据使用DataFrames和SQL操作。StreamingContext和其使用的SparkContext必须来自同一个SparkSession。以便可以在驱动程序故障时重新启动它。这是通过创建SparkSession的延迟实例化单例实例来完成的。在下面的示例中,修改了前面的单词计数示例,以使用DataFrames和SQL生成单词计数。每个RDD都转换为一个DataFrame,注册为临时表,然后使用SQL查询。二.代码实战package spark2.streamingim
2020-07-13 15:50:00
812
原创 SparkStreaming之数据输出
一.简介输出操作允许将DStream的数据推出到外部系统,例如数据库或文件系统。由于输出操作实际上允许外部系统使用转换后的数据,因此它们会触发所有DStream转换的实际执行【类似于RDD的操作】。二.算子翻译:...
2020-07-11 18:23:50
717
原创 Spark获取HBase海量数据方式之Scan
一.简介Scan扫描,类似于数据库系统中的游标,底层依赖顺序存储的数据结构。扫描操作的作用跟get()方式非常类似,但由于扫描操作的工作方式类似于迭代器,所以用户无需调用scan()方法创建实例,只需调用HTable的getScanner()方法【或者使用new Scan()】,此方法在返回真正的扫描器scanner实例的同时,用户也可以使用它的迭代来获取数据。如下:ResultScanner getScanner(Scan scan) throws IOExceptionResultScanner
2020-07-07 20:13:08
1156
1
原创 SparkStreaming DStream关联操作【流流关联、流数据集关联】
一.流流关联1.普通流流连接 val lines = ssc.socketTextStream("master",9999) val words = lines.flatMap(_.split(" ")) .map(word => (word,1)) .reduceByKey(_ + _) val result = words.join(words)在此,在每个批处理间隔中,stream1的RDD将与stream2的RDD关联在一起。也可以做l
2020-07-04 17:38:20
985
原创 Flink流连接器之Kafka【二】【Kafka Offset设置、容错、主题和分区动态发现】
一.Kafka offset 配置Flink Kafka Consumer可以配置Kafka分区的起始位置。代码://获取数据源 kafkaval consumer : FlinkKafkaConsumer09[String] = new FlinkKafkaConsumer09[String]( "spark", new SimpleStringSchema(), properties)//val hashMap : util.Map[KafkaTopicPartition, java.la
2020-07-03 19:26:35
1476
原创 Spark ML基本算法【总结器】
一.简介通过使用Summarizer提供矢量列【向量、矩阵】汇总统计Dataframe。可用的指标是按列的最大值,最小值,平均值,总和,方差,std和非零数,以及总数。二.代码实战【以均值、方差为例】package spark2.mlimport org.apache.log4j.{Level, Logger}import org.apache.spark.ml.linalg.{Vector, Vectors}import org.apache.spark.sql.SparkSessioni
2020-07-03 15:03:44
3274
原创 Spark ML常见异常【Vector】
一.常见分析在Spark 机器学习中,Vector向量和Metricx矩阵是最常用的两种数据类型。特别是Vector向量类型,在使用Vector向量类型时,默认是不会导入Spark定义的Vector类型的。默认使用scala.collection.immutable.Vector,此时使用Spark ml算法就会报类型异常。代码:val (meanVal, varianceVal) = df.select(metrics("mean", "variance").summary($"features",
2020-07-03 14:20:10
885
原创 Spark ML基本算法【ChiSquareTest卡方检验】
一.简介假设检验是一种强大的统计工具,可用来确定结果是否具有统计学意义,以及该结果是否偶然发生。spark.ml当前支持Pearson的卡方测试独立性。ChiSquareTest针对标签上的每个功能进行Pearson的独立性测试。对于每个要素,(要素,标签)对将转换为列联矩阵,针对该列矩阵计算卡方统计量。所有标签和特征值必须是分类的。二.代码实战package spark2.mlimport org.apache.log4j.{Level, Logger}import org.apache.s
2020-07-02 20:38:59
1635
原创 Spark1.x升级Spark2.x常见异常Kafka篇【TopicMetadataRequest】
一.原因分析当Spark从1.x升级到2.x时,如果使用SparkStreaming加载Kafka的数据,即使Kafka版本没有变化【一般会有所升级】,对应的spark-streaming-kafka也必须升级到对应版本,访问方式也会有所变化。此处是从Spark1.6.0升级到Spark2.4.3,Kafka略有升级【从2.1.0升级到2.2.1】,初始使用的是:import org.apache.spark.streaming.kafka.KafkaUtilsval dframe = Kafka
2020-07-01 14:18:56
424
2
原创 使用Github搭建个人网站
一.创建新仓库二.指定仓库信息三.创建首页新建文件index.html四.登录五.设置网站点击:选择主题:保存:六.注意事项仅支持静态网页。只能是html文件。
2020-06-30 00:16:03
223
原创 Spark报Total size of serialized results of 12189 tasks is bigger than spark.driver.maxResultSize
一.异常信息Total size of serialized results of 12189 tasks is bigger than spark.driver.maxResultSize 1024M.Total size of serialized results of 12082 tasks is bigger than spark.driver.maxResultSize 1024M.Total size of serialized results of 12131 tasks is bigg
2020-06-29 17:21:54
6000
原创 Flink流连接器之Kafka【一】【Kafka安装、Kafka版本差异、序列化类型】
一.简介Flink提供了特殊的Kafka连接器,用于在Kafka主题之间读写数据。Flink Kafka Consumer与Flink的检查点机制集成在一起,以提供一次精确的处理语义。为了实现这一目标,Flink不仅依赖于Kafka的消费者组偏移量跟踪,而且在内部也跟踪并检查这些偏移量。对于大多数用户来说,FlinkKafkaConsumer08【08代表Kafka的版本】是合适的。具体如下:二.安装Apache Kafka参考博客:Kafka分布式安装备注:按照Kafka快速入门中的说明
2020-06-27 17:18:26
845
原创 Flink流连接器【数据源/接收器】
一.预定义的源和接收器Flink内置了一些基本数据源和接收器,它们始终可用。该预定义的数据源包括文件,目录和Socket,并可以加载集合和迭代器的数据。该预定义的数据接收器支持写入文件,输出信息和异常。二.捆绑式连接器连接器提供用于与各种第三方系统接口的代码。当前支持以下系统:Apache Kafka(源/接收器)Apache Cassandra(接收器)Amazon Kinesis Streams(源/接收器)Elasticsearch(接收器)Hadoop文件系统(接收器)Rabbi
2020-06-27 16:58:43
1054
原创 Git常用操作【管理Github、常用命令、管理远程仓库】
一.关联Github1.创建仓库目录2.进入目录,右键选择Git Bash Here3.关联Github账号和邮箱二.Git常用操作1.初始化生成.git目录:2.查看git状态3.创建文件并查看效果:4.添加文件到暂存区备注:此时该文件会 变成绿色,表示以添加到暂存区。5.提交到Git6.解决git中文乱码在配置文件etc/gitconfig中添加配置[gui] encoding = utf-8[i18n] commitencoding
2020-06-27 12:46:31
164
原创 Git快速安装
一.下载前往Git官网下载最新安装包:Git安装包下载如下:二.安装1.设置安装路径2.安装相关组件3.设置开始菜单4.设置默认编辑工具5.设置使用Git Bash下面的步骤默认安装即可:6.开始安装7.安装完成8.检测安装成功!...
2020-06-26 18:48:43
277
原创 Flink流计算状态与容错【键控状态、操作状态、托管状态】
有状态的函数和运算符在处理单个元素/事件的过程中存储数据,从而使状态成为任何类型的更精细操作的关键构建块。包括:当应用程序搜索某些事件模式时,状态将存储到目前为止遇到的事件序列。在每分钟/小时/天汇总事件时,状态将保留待处理的汇总。在数据点流上训练机器学习模型时,状态保持模型参数的当前版本。当需要管理历史数据时,该状态允许有效访问过去发生的事件。Flink需要了解状态,以便使用检查点使状态容错并允许流应用程序的保存点。状态还允许重新缩放Flink应用程序,这意味着Flink负责在并行实例之
2020-06-25 20:05:01
694
原创 Spark ML基本算法【Correlation相关性】
一.简介计算两个系列数据之间的相关性是“统计”中的常见操作。spark.ml 提供了很多系列中的灵活性,计算两两相关性。目前支持的相关方法是Pearson和Spearman的相关。Correlation 使用指定的方法为向量的输入数据集计算相关矩阵。输出将是一个DataFrame,其中包含向量列的相关矩阵。二.代码实战package big.data.analyse.mlimport org.apache.log4j.{Level, Logger}import org.apache.spark
2020-06-25 12:01:58
2915
原创 Spark 机器学习库【MLlib】编程指南
一.机器学习库MLlib是Spark的机器学习库【ML】。其目标是使实用的机器学习算法变得可扩展且容易使用。在较高级别,它提供了以下工具:机器学习算法:常见的机器学习算法,例如分类,回归,聚类和协同过滤。特征化:特征提取,变换,降维和选择。管道:用于构建,评估和调整ML管道的工具。持久性:保存和加载算法、模型和管道。实用程序:线性代数,统计信息,数据处理等。二.基于DataFrame的API基于MLlib RDD的API现在处于维护模式。从Spark 2.0开始,软件包中基于RDD的A
2020-06-23 21:30:13
2143
原创 Github创建子目录
一.点击创建目录按钮初始状态:二.填写多层目录【使用/分层】填写备注:效果:这样多层目录就创建好了,不能先创建src,再进入src目录下创建下层目录【没有创建目录按钮】,且创建时必须输入两层,单层被认为是文件!三.创建其它目录参照上面的创建方式就可以创建多层次目录。...
2020-06-23 15:36:52
2862
1
原创 Spark2.x常见异常【InvalidPathException】
一.异常详细信息java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters:./Spark2机器学习.jar...二.原因分析及解决方案由于中文名的文件,导致编译失败,解决方法如下:jar包的明细都使用英文或数字,规避使用中文。设置环境变量,指定编码:file.encoding = UTF-8。...
2020-06-22 17:26:29
498
原创 Github基本概念
一.仓库【Repository】仓库,即你项目存放的位置,要想在Github上开源一个项目,就必须创建一个新的Repository,多个项目对应多个仓库。二.收藏【Star】仓库主页star按钮,可以根据需要收藏自己感兴趣的项目,star数的多少也反映了项目的受欢迎程度。三.复制克隆项目【Fork】简单理解就是要想在现有的项目的基础上做二次开发,就可以先Fork这个项目,此时自己的Github主页上就会多出一个项目,这个项目就是基于你Fork的项目,此时你就可以随心所欲的修改这个项目,而不会对原
2020-06-20 19:11:01
273
原创 Spark Streaming窗口函数
一.简介Spark Streaming还提供了窗口计算,可以在数据的滑动窗口上应用转换。下图说明了此滑动窗口。如该图所示,每当窗口滑动在源DStream,落入窗口内的源RDDS被组合及操作以产生RDDS的窗口DStream。在这种特定情况下,该操作将应用于数据的最后3个时间单位,并以2个时间单位滑动。这表明任何窗口操作都需要指定两个参数。窗口长度 - 窗口的持续时间。滑动间隔 -进行窗口操作的间隔。这两个参数必须是源DStream的批处理间隔的倍数。让我们用一个例子来说明窗口操作。每10秒
2020-06-20 11:49:09
715
原创 Sparkstreaming常用算子详解
一.基本算子二.updateStateByKeyupdateStateByKey操作可以保持任意状态,同时不断用新信息更新它。要使用此功能,必须执行两个步骤。定义状态-状态可以是任意数据类型。定义状态更新功能-使用功能指定如何使用输入流中的先前状态和新值来更新状态。在每个批次中,Spark都会对所有现有密钥应用状态更新功能,而不管它们是否在批次中具有新数据。如果更新函数返回,None将删除键值对。让我们用一个例子来说明。假设要保持在文本数据流中看到的每个单词的连续计数。此处,运行计数是状态
2020-06-20 11:32:41
1814
原创 Spark2.x之SQL/join关联报CROSS JOIN错误
一.算子join在Spark中,两个dataframe关联分为使用算子join关联和使用视图SQL关联两种。在使用join算子关联时,一般的关联语句是这样的:words_df.join(words_df, words_df("word") === words_df("word")).show()words_df.join(words_df, words_df("word") === words_df("word"), joinType = "left").show()效果:当没有明确的关联字段
2020-06-18 20:38:15
2206
1
原创 Flink预定义时间戳提取器/水印发射器
一.简介Flink提供了抽象,允许程序员分配自己的时间戳并发出自己的水印。更具体地说,根据使用情况,可以通过实现AssignerWithPeriodicWatermarks和AssignerWithPunctuatedWatermarks接口之一来实现。简而言之,第一个将定期发出水印,而第二个则根据传入记录的某些属性发出水印,例如,每当流中遇到特殊元素时。为了进一步简化此类任务的编程工作,Flink附带了一些预先实现的时间戳分配器。二.时间戳递增的分配器定期生成水印的最简单的特殊情况是给定源任务看到
2020-06-16 17:32:52
471
原创 Flink整合Kafka实现WordCount
一.简介Flink的基本信息和API信息以及Kafka的基本信息在此不再赘述,需要了解的参考博客:Flink:Flink流处理API编程指南 Kafka:Kafka基本信息二.代码实战package cn.kafkaimport java.util.Propertiesimport org.apache.flink.api.common.serialization.SimpleStringSchemaimport org.apache.flink.streaming.api.window
2020-06-15 17:50:14
481
原创 Flink整合Kafka报objenesis
一.场景因Scala函数式和链式编程使用使得代码简介性相较Java有质的提升,因此,在Flink开发时还是使用Scala进行编程。但是在加载Kafka的数据时报objenesis异常,但是代码中没有使用POJO类。二.异常信息D:\Users\Administrator\jdk1.8.0_66\bin\java -Didea.launcher.port=7536 -Didea.launcher.bin.path=D:\Users\Administrator\IDEA15\bin -Dfile.enco
2020-06-15 17:25:44
284
原创 Kafka启动异常之InconsistentClusterIdException
一.场景kafka集群一般都是部署在zookeeper集群之上的,当Kafka出现异常时,强行关闭kafka集群或zookeeper集群时,重新启动时经常会出现异常InconsistentClusterIdException。二.异常信息ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)kafka.common.InconsistentClusterIdExcepti
2020-06-15 14:24:44
6941
5
原创 Flink生成时间戳/水印
一.概述生成时间戳/水印与在事件时间有关。有关事件时间, 处理时间和摄取时间,参考:事件时间概述为了处理事件时间,流式传输程序需要相应地设置时间特征。val env = StreamExecutionEnvironment.getExecutionEnvironmentenv.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)二.分配时间戳为了使用事件时间,Flink需要知道事件的时间戳,这意味着流中的每个元素都需要分配其事件时间
2020-06-12 18:53:56
3004
原创 Spark1.x升级Spark2.x常见异常HBase篇【hbase.rpc.timeout】
一.场景分析大数据环境频繁使用metastore连接HBase加载数据时,偶尔会抛出hbase.rpc.timeout异常导致任务直接失败的情况。异常信息:Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=2, waitTime=600020, operationTimeout=600000 expired. at org.apache.hadoop.hbase.ipc.Call.checkAndSetTi
2020-06-11 19:23:53
600
原创 Spark1.x升级Spark2.x常见异常HBase篇【CallQueueTooBigException】
一.HBase之CallQueueTooBigException查看RpcServer.java【路径:hbase-2.1.0-src\hbase-2.1.0\hbase-server\src\main\java\org\apache\hadoop\hbase\ipc】源代码可知,报CallQueueTooBigException异常的原因是,RPC队列过大!具体到此处的原因是:Spark升级到2.x版本后,性能大幅提升,同时因HBase升级大2.1导致使用Spark往HBase同步数据的效率大幅增加,进
2020-06-11 17:42:37
732
原创 uni-app基础知识【rich-text、progress】
一.rich-text富文本【很少使用】注意:app-nvue 平台 nodes 属性只支持使用 Array 类型。支付宝小程序 nodes 属性只支持使用 Array 类型。如果需要支持 HTML String,则需要自己将 HTML String转化为 nodes 数组,可使用 html-parser 转换。支持默认事件,包括:click、touchstart、touchmove、touchcancel、touchend、longpress。nodes 属性推荐使用 Array 类型,由
2020-06-10 20:40:16
1693
原创 uni-app基础知识【icon、text】
一.icon图标备注:由于icon组件各端表现存在差异,可以通过使用字体图标的方式来弥补各端差异。二.icon图标案例<view class="lab">图标</view><view> <icon class="icon" type="success"></icon> <icon class="icon" type="warn"></icon> <icon class="icon" type="do
2020-06-09 20:56:48
1569
原创 Solr7新特性【升级须知】
一.概述在开始迁移配置和索引之前,需要考虑 Solr 7 中的主要更改。可能需要了解的新功能,还包括默认行为和已删除的已否决功能的更改。然而,Solr 7 中有许多变化,因此,对 Solr 升级说明以及 Solr 实例中的 CHANGES.txt 文件进行彻底的审查将有助于向 Solr 7 迁移。还应该考虑在尚未升级到的任何版本中对 Solr 所做的所有更改。例如,如果当前正在使用 Solr 6.2,则除了 7.0 的更改之外,还应该查看所有后续 6.x 版本中所做的更改。将数据重新编入索引被认为是
2020-06-09 15:09:09
803
原创 Solr6新特性【升级须知】
一.概述在开始迁移您的配置和索引之前,Solr6 中有一些重大的改变需要考虑。有很多的更改,因此,对 Solr 升级注释部分以及 Solr 实例中的 CHANGES.txt 文件进行彻底的检查将有助于您计划向 Solr6 的迁移。二.Solr6 中新特性的亮点1.Streaming 表达式在 Solr5 中引入的 Streaming 表达式允许查询 Solr 并将结果作为数据流进行排序和聚合。Solr6 中添加了几种新的表达式类型:使用类似 MapReduce 的并行表达式来加快 high-
2020-06-08 17:48:12
481
原创 Spark Streaming编程指南【快速入门】
一.概述Spark Streaming是核心Spark API的扩展,可实现实时数据流【微批处理】的可伸缩,高吞吐量,容错流处理。数据可以从像kafka,flume,kinesis或TCP套接字许多来源摄入,并且可以使用高级函数例如map,reduce,join和window来表达复杂的算法。最后,可以将处理后的数据推送到文件系统,数据库和实时仪表板。实际上,可以在数据流上应用Spark的机器学习和 图计算算法。在内部,Spark Streaming接收实时输入数据流,并将数据分成批处理,然后由Spa
2020-06-08 15:14:37
230
原创 Spark结构化流之join
一.join操作结构化流支持将流数据集/数据帧与静态数据集/数据帧以及另一个流数据集/数据帧连接在一起。流连接的结果是增量生成的,类似于流聚合的结果。请注意,在所有受支持的联接类型中,使用流Dataset/DataFrame进行联接的结果将与使用包含流中相同数据的静态Dataset/DataFrame进行联接的结果完全相同。二.流静态联接自从Spark 2.0引入以来,结构化流已支持流和静态DataFrame / Dataset之间的联接(内部联接和某种类型的外部联接)。如下:val staticD
2020-06-06 21:31:05
673
原创 Spark结构化流之水印
一.处理后期数据和加水印现在考虑如果存在事件迟到了应用程序会发生什么。例如,应用程序在12:11接收在12:04(即事件时间)生成的单词。应用程序应使用12:04而不是12:11来更新窗口的旧计数12:00 - 12:10。这在基于窗口的分组中很自然地发生,结构化流可以长时间保持部分聚合的中间状态,以便后期数据可以正确更新旧窗口的聚合,如下所示。但是,要连续几天运行此查询,系统必须限制其累积的中间内存状态量。这意味着系统需要知道何时可以从内存中删除旧状态聚合,因为应用程序将不再接收该聚合的最新数据。为
2020-06-06 16:13:26
2374
原创 Flink迭代流代码实战及原理分析【包含完整代码】
一.简介参考:DataStream API编程指南二.代码实战package cn.streamingimport org.apache.flink.streaming.api.scala._import org.apache.flink.api.java.utils.ParameterToolimport org.apache.flink.streaming.api.scala.{DataStream, StreamExecutionEnvironment}/** * 统计不及格、及
2020-06-05 19:05:16
352
原创 Flink DataStream API编程指南
一.简介Flink中的DataStream程序是常规程序,可对数据流实施转换(例如,过滤,更新状态,定义窗口,聚合)。最初从各种来源(例如,消息队列,套接字流,文件)创建数据流。结果通过接收器返回,接收器可以例如将数据写入文件或标准输出(例如命令行终端)。Flink程序可以在各种上下文中运行,独立运行或嵌入其他程序中。执行可以在本地JVM或许多计算机的群集中进行。二.代码案例以下程序是流式窗口单词计数应用程序的一个完整的工作示例,该应用程序在5秒的窗口中对来自Socket套接字的单词进行计数。pac
2020-06-04 20:05:34
263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅