Flume Processors

8295 단어 Flume

Processor 개요

  • Processor는 Flume에서 장애 복구 및 로드 밸런싱을 위한 구성 요소입니다.
  • 엔터프라이즈급 개발에서 일반적으로 여러 개의 클라이언트 에이전트가 데이터를 수집하여 Hub Agent에 보냅니다. Hub Agent는 여러 개의 클라이언트 에이전트가 보냅니다. 부하가 비교적 높고 Hub Agent가 하나만 있으면 단일 노드 장애 위험을 초래할 수 있습니다.
  • 따라서 기업급 개발에서 Hub 서버 에이전트는 한 개에 그치지 않고 몇 개의 협동 작업을 한다. 이때 클라이언트 에이전트가 어떻게 데이터를 Hub 서버 에이전트에 분배하는지 문제가 된다.
  • 여러 개의 Hub 서버에 Sink를 설정하고 이 Sink를 Sink Group 그룹으로 구성하며 이 그룹에 Processor를 설정하고 처리 메커니즘과 다른 파라미터를 지정해야 한다.이후 이 Sink를 같은 채널에 연결하면 Processor는 채널의 방향을 바꾸어 데이터를 규칙에 따라 나누어 줄 수 있습니다.
  • processor의 작업 모드: 실패 복구(고장 전이)와 부하 균형 두 가지 모드. ==Failover Sink Processor(장애 복구) processor.type=failover가 여러 개 시작되었지만 작업은 하나뿐입니다. active 상태 프로세스가 죽어야 다른 작업이 바뀔 수 있습니다.그 많은sink가 도대체 누가 먼저 일을 하는지, 권중에 따라 누구의 권중이 높은지, 누가 먼저 일을 하는지, 일반적인 고장 전이를 하면 2개sink의 유형이 다르다(HDFSsink, filesink), 예를 들어 HDFS에 데이터를 쓰고, HDFS가 다운되고, 데이터가 분실되지 않으며, 파일에Loadbalancing Sink Processor(부하 균형)processor를 쓴다.type=load_balance processor.selector = round_robin(윤문) | random(랜덤) 부하 균형과 고장 전이는 하나만 실현할 수 있고 동시에 실현할 수 없습니다. 종종 부하 균형을 선택합니다==
  • 작성자: 집중식 백서 출처: CSDN 원문:https://blog.csdn.net/weixin_43652369/article/details/84646632판권 성명: 본고는 블로거의 오리지널 문장입니다. 전재하려면 블로거 링크를 첨부하세요!

    Flume Sink Processors


    Sink groups allow users to group multiple sinks into one entity. Sink processors can be used to provide load balancing capabilities over all sinks inside the group or to achieve fail over from one sink to another in case of temporal failure. 수신 그룹은 사용자가 여러 수신기를 하나의 실체로 그룹화할 수 있도록 합니다.수신기 프로세서는 그룹 내의 모든 수신기에 부하 균형 기능을 제공하거나 시간 고장 시 한 수신기에서 다른 수신기로의 고장 이동을 실현할 수 있다.Required properties are in bold.
    Property Name
    Default
    Description
    sinks

    Space-separated list of sinks that are participating in the group
    processor.type default
    The component type name, needs to be default , failover or load_balance
    Example for agent named a1:
    a1.sinkgroups = g1
    a1.sinkgroups.g1.sinks = k1 k2
    a1.sinkgroups.g1.processor.type = load_balance
    

    Default Sink Processor


    Default sink processor accepts only a single sink. User is not forced to create processor (sink group) for single sinks. Instead user can follow the source - channel - sink pattern that was explained above in this user guide. 기본 수신기는 수신기 하나만 받습니다.사용자는 단일 수신기에 대해 프로세서 (수신기 그룹) 를 만들 필요가 없습니다.반대로 사용자는 본 사용자 안내서에서 설명한 원본-채널-수신기 모드를 따를 수 있다.

    Failover Sink Processor


    Failover Sink Processor maintains a prioritized list of sinks, guaranteeing that so long as one is available events will be processed (delivered). 고장 전이 수신기는 우선 순위의 수신기 목록을 유지하고 사용할 수 있는 이벤트가 처리될 수 있도록 보증합니다.The failover mechanism works by relegating failed sinks to a pool where they are assigned a cool down period, increasing with sequential failures before they are retried. Once a sink successfully sends an event, it is restored to the live pool. The Sinks have a priority associated with them, larger the number, higher the priority. If a Sink fails while sending a Event the next Sink with highest priority shall be tried next for sending Events. For example, a sink with priority 100 is activated before the Sink with priority 80. If no priority is specified, thr priority is determined based on the order in which the Sinks are specified in configuration. 고장 전이 메커니즘의 작업 원리는 고장 수신기를 연못으로 강등시켜 연못에 냉각기를 분배하고 다시 시도하기 전에 순서에 따라 고장이 증가하는 것이다.수신기가 이벤트를 성공적으로 보내면 실시간 풀로 복구됩니다.수신기는 이와 관련된 우선순위를 가지고 있으며, 수량이 많을수록 우선순위가 높다.이벤트를 보낼 때 수신기에 장애가 발생하면 다음 우선 순위가 가장 높은 수신기를 시도해서 이벤트를 보냅니다.예를 들어, 우선 순위가 80인 수신기 전에 우선 순위가 100인 수신기를 활성화합니다.우선 순위가 지정되지 않으면 설정에서 지정한 수신기의 순서에 따라thr 우선 순위를 결정합니다.To configure, set a sink groups processor to failover and set priorities for all individual sinks. All specified priorities must be unique. Furthermore, upper limit to failover time can be set (in milliseconds) using maxpenalty property. 구성을 하려면 수신기 그룹 프로세서를 "failover"로 설정하고 모든 단일 수신기에 우선순위를 설정하십시오.지정된 모든 우선 순위는 고유해야 하며 maxpenalty 속성을 사용하여 장애 조치 시간의 상한선(밀리초)을 설정할 수 있습니다.Required properties are in bold.
    Property Name
    Default
    Description
    sinks

    Space-separated list of sinks that are participating in the group
    processor.type default
    The component type name, needs to be failover
    processor.priority.

    Priority value. must be one of the sink instances associated with the current sink group A higher priority value Sink gets activated earlier. A larger absolute value indicates higher priority
    processor.maxpenalty
    30000
    The maximum backoff period for the failed Sink (in millis)
    Example for agent named a1:
    a1.sinkgroups = g1
    a1.sinkgroups.g1.sinks = k1 k2
    a1.sinkgroups.g1.processor.type = failover
    a1.sinkgroups.g1.processor.priority.k1 = 5
    a1.sinkgroups.g1.processor.priority.k2 = 10
    a1.sinkgroups.g1.processor.maxpenalty = 10000
    

    Load balancing Sink Processor


    Load balancing sink processor provides the ability to load-balance flow over multiple sinks. It maintains an indexed list of active sinks on which the load must be distributed. Implementation supports distributing load using either via round_robin or random selection mechanisms. The choice of selection mechanism defaults to round_robin type, but can be overridden via configuration. Custom selection mechanisms are supported via custom classes that inherits from AbstractSinkSelector . 부하 균형 수신기 프로세서는 여러 수신기에서 부하 균형 유량을 진행하는 기능을 제공한다.인덱스의 활성 수신기 목록을 유지하고 부하를 분배해야 합니다.지원round_robin 또는 random 선택 메커니즘을 사용하여 부하를 분배합니다.선택 메커니즘의 선택은 기본적으로 round_robin 형식이지만 구성을 통해 덮어쓸 수 있습니다.AbstractSinkSelector의 사용자 정의 클래스를 계승하여 사용자 정의 선택 메커니즘을 지원합니다.When invoked, this selector picks the next sink using its configured selection mechanism and invokes it. For round_robin and random In case the selected sink fails to deliver the event, the processor picks the next available sink via its configured selection mechanism. This implementation does not blacklist the failing sink and instead continues to optimistically attempt every available sink. If all sinks invocations result in failure, the selector propagates the failure to the sink runner. 호출할 때, 이 선택기는 설정된 선택 메커니즘을 사용하여 다음 수신기를 선택하고 호출합니다.round_robinrandom 선택한 수신기에서 이벤트를 전달할 수 없으면 프로세서는 설정된 선택 메커니즘을 통해 다음 수신기를 선택합니다.이 실현은 실패한 수신기를 블랙리스트에 넣지 않고 사용할 수 있는 모든 수신기를 낙관적으로 시도하는 것이다.모든 수신기 호출이 실패할 경우, 선택기는 고장을 수신기 실행기에 전파합니다.If backoff is enabled, the sink processor will blacklist sinks that fail, removing them for selection for a given timeout. When the timeout ends, if the sink is still unresponsive timeout is increased exponentially to avoid potentially getting stuck in long waits on unresponsive sinks. Withthis disabled, inround-robin all the failed sinksload will be passed to the next sink in line andthus not evenly balanced를 사용하면 수신기 프로세서가 실패한 수신기를 블랙리스트에 넣고 시간 초과 선택을 제공하기 위해 삭제합니다.시간 초과가 끝났을 때, 수신기가 여전히 응답하지 않으면, 시간 초과는 응답이 없는 수신기에서 장시간 대기할 때 멈추지 않도록 지수 방식으로 증가한다.이 기능을 사용하지 않는 경우, 순환 중, 모든 실패한 수신기 부하가 다음 수신기로 전달되기 때문에, 불균형적Requiredproperties are in bold.
    Property Name
    Default
    Description
    processor.sinks

    Space-separated list of sinks that are participating in the group
    processor.type default
    The component type name, needs to be load_balance
    processor.backoff
    false
    Should failed sinks be backed off exponentially.
    processor.selector round_robin
    Selection mechanism. Must be either round_robin , random or FQCN of custom class that inherits from AbstractSinkSelector
    processor.selector.maxTimeOut
    30000
    Used by backoff selectors to limit exponential backoff (in milliseconds)
    Example for agent named a1:
    a1.sinkgroups = g1
    a1.sinkgroups.g1.sinks = k1 k2
    a1.sinkgroups.g1.processor.type = load_balance
    a1.sinkgroups.g1.processor.backoff = true
    a1.sinkgroups.g1.processor.selector = random
    

    좋은 웹페이지 즐겨찾기