1

我正在构建一个 lambda 架构,我编写了流层,现在我正在做批处理层。为此,我使用 Spark 2 作为批处理器,使用 HDFS 作为主数据。

为了从 HDFS 读取数据,我编写了以下代码:

      SparkSession spark = SparkSession
                .builder()
                .appName("JavaWordCount")
                .master("local")
                .config("spark.sql.warehouse.dir", "file:///c:/tmp/spark-warehouse")
                .getOrCreate();

      JavaRDD<String> msg = spark.read().textFile("HDFS://mypath/*").javaRDD();

但是,使用此代码,在运行 Spark 后插入 HDFS 中的新数据不会被读取。我想知道我怎么可能做到这一点?

只有结构化流(http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html)的解决方案还是有其他解决方案?

4

1 回答 1

1

是的,在我看来,Spark 2.x Structure Streaming 可以做到这一点。

我建议您观看 2017 年 Spark 峰会的此演示文稿:https ://www.youtube.com/watch?list=PLTPXxbhUt-YVEyOqTmZ_X_tpzOlJLiU2k&v=IJmFTXvUZgY

于 2017-03-21T08:59:23.527 回答