Flume - 即使接收器无法运行,源也会接受事件吗?
Flume - Would a source accept events even when the sink is non-operational?
新 flume。
假设我有一个代理,它有一个 avero-source、一个 hdfs-sink 和一个文件通道。
假设接收器在某个时候无法写入 hdfs。源是否会继续接受事件,直到通道填满?
或者即使文件通道未满,源也会停止接受事件?
我对此进行了相当广泛的测试。您将很难应对这种情况。当接收器失败时,Flume 将开始抛出异常。根据流的速度,通道也会填满并导致更多异常。控制故障的最佳方法是使用 failover sink processor 并配置接收器组。这样,如果一个接收器发生故障,您将设置一个备份接收器,并且数据丢失非常少。根据我的经验,我已经设置了一个 Avro 接收器,该接收器转到我的拓扑中的第二个 Flume 代理跃点,如果该 Flume 代理出现故障,那么我的故障转移接收器是 2 个不同的 Hadoop 集群,我写Flume 事件通过 HDFS 接收器发送到 Hadoop 集群之一。然后您必须回填这些事件。我发现 netcat 源对此很有效。
新 flume。
假设我有一个代理,它有一个 avero-source、一个 hdfs-sink 和一个文件通道。
假设接收器在某个时候无法写入 hdfs。源是否会继续接受事件,直到通道填满?
或者即使文件通道未满,源也会停止接受事件?
我对此进行了相当广泛的测试。您将很难应对这种情况。当接收器失败时,Flume 将开始抛出异常。根据流的速度,通道也会填满并导致更多异常。控制故障的最佳方法是使用 failover sink processor 并配置接收器组。这样,如果一个接收器发生故障,您将设置一个备份接收器,并且数据丢失非常少。根据我的经验,我已经设置了一个 Avro 接收器,该接收器转到我的拓扑中的第二个 Flume 代理跃点,如果该 Flume 代理出现故障,那么我的故障转移接收器是 2 个不同的 Hadoop 集群,我写Flume 事件通过 HDFS 接收器发送到 Hadoop 集群之一。然后您必须回填这些事件。我发现 netcat 源对此很有效。