使用Sparkstreaming从HDFS获取数据

时间:2016-10-03 19:28:15

标签: apache-spark spark-streaming

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

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的文档,我知道我已将文件移动到watch目录。 但它对我不起作用。 我也尝试过使用textFileStream,但没有运气。

我正在使用使用Scala 2.11.8构建的spark 2.0.0

请提出任何建议。

1 个答案:

答案 0 :(得分:0)

请尝试以下

new StyleLintPlugin({
  configFile: './stylelint.json',
  context: "./src",
  files: "**/*.scss"
})

执行此操作后,将文件移至

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()