Direct 方式的优缺点分析 :
介绍:他能够在driver失败的时候,通过读取checkpoint目录下的元数据,恢复当前streamingContext对象的状态;它能够察觉到driver进程异常退出之后,自动重启。
具体流程:当第一次运行程序时,发现checkpoint中没有数据,则根据定义的函数来第一次创建StreamingContext对象,当程序异常退出的时候,此时会根据checkpoint中的元数据恢复一个StreamingContext对象,达到异常退出之前的状态,而实现异常退出并自动启动则是sparkStreaming应用程序对driver进行监控,并且在他失败的时候感知,并进行重启。
必要条件:
- spark-submit提交作业的时候,必须是集群模式(cluster),并且必须在spark-standalong下。
spark-submit \
--class com.aura.mazh.spark.streaming.kafka.SparkStreamDemo_Direct \
//这里只能使用spark的standalong模式,所以配置为spark集群
--master spark://hadoop02:7077,hadoop04:7077 \
--driver-memory 512m \
--total-executor-cores 3 \
--executor-memory 512m \
#这句代码一定要加,他可以使异常退出的driver程序,重新启动
--supervise \
--name SparkStreamDemo_Direct \
--jars /home/hadoop/lib/kafka_2.11-0.8.2.1.jar,\
/home/hadoop/lib/metrics-core-2.2.0.jar,\
/home/hadoop/lib/spark-streaming_2.11-2.3.2.jar,\
/home/hadoop/lib/spark-streaming-kafka-0-8_2.11-2.3.2.jar,\
/home/hadoop/lib/zkclient-0.3.jar \
/home/hadoop/original-spark-1.0-SNAPSHOT.jar \
spark://hadoop02:7077,hadoop04:7077
- 需要添加--supervise \,才能实现失败自启动
- 需要配置checkpoint目录,并且是存储在hdfs上,jar也要放置在hdfs上
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。