我正在尝试使用spark streaming job从Kafka中读取流。有一个属性startingoffsets,它的值可以是最早的也可以是最新的。当startingoffsets被设置为最新时,我对它感到困惑。
我的假设是当startingoffsets设置为最早时,它从开始读取数据,当设置为最晚时,它在spark流作业或查询执行时间的开始时间之后从Kafka读取数据。然而,当它设置为最早时,它按预期工作,但当我设置为最晚并运行流应用程序时,它不从kafka读取任何数据。
我正在尝试使用spark streaming job从Kafka中读取流。有一个属性startingoffsets,它的值可以是最早的也可以是最新的。当startingoffsets被设置为最新时,我对它感到困惑。
我的假设是当startingoffsets设置为最早时,它从开始读取数据,当设置为最晚时,它在spark流作业或查询执行时间的开始时间之后从Kafka读取数据。然而,当它设置为最早时,它按预期工作,但当我设置为最晚并运行流应用程序时,它不从kafka读取任何数据。
1条答案
按热度按时间km0tfn4u1#
根据文件,属性会指定当伺服器上没有使用者位移时要执行的动作。
如果Kafka中没有初始偏移量,或者当前偏移量在服务器上不再存在(例如,因为数据已被删除),该怎么办:
earliest
会从一开始就读取主题中的数据,你说它按预期工作,而latest
没有,使用latest
,你必须在开始读取后推送数据。