/ / Събиране на броячи и показатели на отделни работни места за хаоп - java, hasoop, mapreduce, metrics

Събиране на броячи и показатели на отделните работни места за хаоп - java, hasoop, mapreduce, metrics

Търся начин да се съберат всички броячи и показатели на отделните работни места за хаоп, за да се съхранят всички тези данни в elasticsearch за по-нататъшно отстраняване на проблеми и анализи.

Понастоящем намерих няколко метода, които биха могли да изглеждат отговарящи на изискванията:

  1. По-специално, използвайки метрични износители, ContainerMetrics който позволява да се получи памет и CPU на контейнер и MRAppMetrics, но това агрегати всички показатели за всички задания.

  2. Извличане на данни от сървър за история на MR с него REST API това е доста ясно, но изисква много HTTP повиквания, за да се съберат всички броячи за работни места, задачи и техните опити.

  3. Включване на допълнителен потребителски интерфейс EventHandler в MRAppMasterна събитието диспечер, но MRAppMaster няма съответстващи механизми за регистриране на персонализирани събирачи.

  4. Използвайки черна магия на javaagents (java instrumentation api), байткод модификации и aop-подобна функционалност за прехващане на всички изпълнения на EventHandler # дръжка (Т) метод. По този начин трябва да е в състояние да разреши всички изисквания, но се нуждае от допълнителна конфигурация на MR-jobs, разработване и регистрация на javaagent и като цяло изглежда доста сложна.

Така че, бих искал да попитам дали има по-прости начини за събиране на показатели и броячи на отделни работни места за хаоп?

Отговори:

1 за отговор № 1

Можете да насочвате показателите си към всеки получател всъщност: да внедрите свой собствен MetricsSink и да конфигурирате хаоп, за да го използвате.

Или можете да използвате MetricsSink, вече свързан с Hadoop distro, като GraphiteSink и да получите показателите си в Graphite.

Имайте предвид, че някои броячи не са налични, докато заданието не приключи (успешно или не).

Също така, вариант 2 е също така риск да попадне на HistoryServer в неприятности (когато правите анкета за работа с милион картографи, може би OOM).