美文网首页
Kafka+spark streaming

Kafka+spark streaming

作者: Phoebe_Liu | 来源:发表于2018-11-02 11:38 被阅读0次

1. spark接入kafka流时,offset的参数设置

  • 如果你将auto.offset.reset设为smallest (earliest),那么任务会从最开始的offset读取数据,相当于重播所有数据。这样的设置会使得你的任务重启时将该topic中仍然存在的数据再读取一遍。这将由你的消息保存周期来决定你是否会重复消费。

  • 相反地,如果你将auto.offset.reset 设置为largest (latest),那么你的应用启动时会从最新的offset开始读取,这将导致你丢失数据。这将依赖于你的应用对数据的严格性和语义需求,这或许是个可行的方案。

2. spark的master模式,有几种配置:

local 本地单线程
local[K] 本地多线程(指定K个内核)
local[*] 本地多线程(指定所有可用内核)
spark:////HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。
mesos:////HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。
yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
yarn-cluster集群模式 连接到 YARN 集群 。需要配置 HADOOP_CONF_DIR。

理解YARN-Client和YARN-Cluster深层次的区别之前先清楚一个概念:Application Master。

  • 在YARN中,每个Application实例都有一个ApplicationMaster进程,它是Application启动的第一个容器。它负责和ResourceManager打交道并请求资源,获取资源之后告诉NodeManager为其启动Container。从深层次的含义讲YARN-Cluster和YARN-Client模式的区别其实就是ApplicationMaster进程的区别
  • YARN-Cluster模式下,Driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行,因而YARN-Cluster模式不适合运行交互类型的作业
  • YARN-Client模式下,Application Master仅仅向YARN请求Executor,Client会和请求的Container通信来调度他们工作,也就是说Client不能离开

Run on a YARN cluster:
export HADOOP_CONF_DIR=XXX
./bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master yarn-cluster \ # can also be yarn-client for client mode
--executor-memory 20G
--num-executors 50
/path/to/examples.jar
1000

相关文章

网友评论

      本文标题:Kafka+spark streaming

      本文链接:https://www.haomeiwen.com/subject/huiqxqtx.html