首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sparkstreaming从HDFS获取数据

使用Sparkstreaming从HDFS获取数据
EN

Stack Overflow用户
提问于 2016-10-04 03:28:15
回答 1查看 868关注 0票数 0

我正在尝试使用spark streaming从HDFS读取数据。下面是我的代码。

代码语言:javascript
复制
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.hadoop.fs._
import org.apache.hadoop.io.{LongWritable, Text}
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat

val sparkConf = new SparkConf()
val ssc = new StreamingContext(sparkConf, Seconds(10))

val directory ="hdfs://pc-XXXX:9000/hdfs/watchdirectory/"
val lines=ssc.fileStream[LongWritable, Text, TextInputFormat](directory, (t:Path) => true, true).map(_._2.toString)
lines.count()
lines.print()
ssc.start
ssc.awaitTermination()

代码会运行,但不会从HDFS读取任何数据。每隔10秒,我就会得到一个空行。

我已经浏览了fileStream的文档,并且我知道我已经将文件移到了监视目录。但它对我不起作用。我也尝试过textFileStream,但没有成功。

我使用的是使用Scala 2.11.8构建的spark 2.0.0

有什么建议请提出来。

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 06:31:25

请在下面尝试

代码语言:javascript
复制
val sparkConf = new SparkConf()
val ssc = new StreamingContext(sparkConf, Seconds(10))

val lines= ssc.textFileStream("hdfs://pc-XXXX:9000/hdfs/watchdirectory/").map(_._2.toString)
lines.count()
lines.print()
ssc.start
ssc.awaitTermination()

执行此操作后,将文件移动到

代码语言:javascript
复制
/hdfs/watchdirectory/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39839009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档