Spark结构化数据流StructuredStreaming.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spark结构化数据流StructuredStreaming

Spark结构化数据流StructuredStreaming是一个构建在Spark SQL之上的一个高容错可扩展的流处理引擎。当然你的流计算也可以用相同的方式对静态数据进行批处理计算。它可以不断更新持续流进来的递增数据,并且将计算结果也持续的更新。目前的Dataset/DataFrame的API支持的语言有Scala,Java和Python三种语言。可以实现流聚合,事件窗口,Join聚合等。结构化流处理是建立在Spark SQL优化引擎Catylist之上的又一引擎。所以,其性能也是非常好的。未来的发展的空间也是巨大的。该种流处理保证有且只处理数据一次,同时实现端到端的数据。通过检查点checkpoint和Write Ahead Logs机制实现高容错。在Spark2.1版本中,其API仍然还是试验性质的,接下来我们就来一起走进StructuredStreaming的殿堂吧。import org.apache.spark.sql.SparkSessionimport org.apache.spark.SparkConfobjectTest {defmain(args: Array[String]): Unit = {/* * 配置信息:配置应用名称*StructuredStreaming Test * Master为local[3] */valconf = new SparkConf().setAppName(StructuredStreaming Test).setMaster(local[3])valspark =SparkSession.builder().config(conf).getOrCreate()import spark.implicits._//获取一行一行的数据,注意,此时的host对应的、//master为数据源那台机器的主机名//并且已经配置好了hosts文件里的ip与主机映射//此时的lines是一个DataFrame对象vallines = spark .readStream .format(socket) .option(host, master) .option(port, 9999) .load()//用Dataset里的flatMap方法将每行转换为一个一//个的单词valwords = lines.as[String].flatMap(_.split( ))//单词计数valwordCounts = words.groupBy(value).count()//返回一个流查询对象valquery = wordCounts.writeStream.outputMode(complet).format(console).start()//等待终端query.awaitTermination() }}图1-1 StructuredNetworkWordCount代码实现以上这段代码是处理的数据源是一台主机名为master的9999端口。通过监听TCP端口实时监听获取流数据源。因此,我们需要通过以下的方式来开启TCP端口的监听nc -lk 9999通过观察console的终端输出的结果,我们可以判定,这段程序处理的是以10秒为单位的微批数据,也就是说,每隔10秒钟进行一次计算。此外,你还可以通过Spark官方提供的案例来运行你的第一个结构化流处理的应用程序。在Spark官方提供的二进制包里面的bin目录下有一个run-examples的脚本,当加上org.apache.spark.examples.sql.streaming.StructuredNetworkWordCount的参数后,运行这个脚本,这样也能运行您的第一个结构化流处理程序。运行了第一个结构化流程序之后,我们再回过头来看看Spark源码中提供给我们的三类案例。这三类案例在Spark源码包中的路径为examples/src/main/java/org.apache.spark.sql.streaming/streaming和examples/src/main/scala/org.apache.spark.sql.streaming/streaming(源码的导入方法详见第xxx章第xxx节)在Java代码包路径下,一共有三个案例,分别为JavaStructuredNetworkWordCount,JavaStructuredKafkaworkWordCount,JavaStructuredNetworkWordCountWindowed。在Scala代码包路径下,也是有三个案例,分别为StructuredNetworkWordCount,StructuredKafkaworkWo

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档