heyrogs / BigData

bigdata learn source by self
0 stars 0 forks source link

SparkStreaming机制 #2

Open heyrogs opened 6 years ago

heyrogs commented 6 years ago

接收实时流的数据,并且根据一定的时间间隔分成一批批数据,然后通过Spark Engine处理这批数据,最终获得处理后的一批批数据。

通俗点说就是:数据流被分成一批批后,通过一个先进先出的队列,然后Spark Engine从该队列取出一个个批数据,把批数据封装成一个RDD,然后进行处理,这是一个典型的生产者和消费者模型。

heyrogs commented 6 years ago

输出描述

print() | 在Driver中打印出DStream中数据的前10个元素。

saveAsTextFiles(prefix, [suffix]) | 将DStream中的内容以文本的形式保存为文本文件,其中每次批处理间隔内产生的文件以prefix-TIME_IN_MS[.suffix]的方式命名。

saveAsObjectFiles(prefix, [suffix]) | 将DStream中的内容按对象序列化并且以SequenceFile的格式保存。其中每次批处理间隔内产生的文件以prefix-TIME_IN_MS[.suffix]的方式命名。

saveAsHadoopFiles(prefix, [suffix]) | 将DStream中的内容以文本的形式保存为Hadoop文件,其中每次批处理间隔内产生的文件以prefix-TIME_IN_MS[.suffix]的方式命名。

foreachRDD(func) | 最基本的输出操作,将func函数应用于DStream中的RDD上,这个操作会输出数据到 外部系统,比如保存RDD到文件或者网络数据库等。需要注意的是func函数是在运行该streaming应用的Driver进程里执行的。

heyrogs commented 6 years ago

打包测试命令: spark-submit \ --class com.jiang.MyKafkaStreaming \ --master local[2] \ --name streamingKafka \ --packages org.apache.spark:spark-streaming-kafka-0-8_2.11 \ /schema/developer/project/straming-kafka-receiver-demo/target/straming-kafka-receiver-demo-1.0.jar