복붙노트

[HADOOP] Hadoop Map Reduce가 누구에게 유용할까요?

HADOOP

Hadoop Map Reduce가 누구에게 유용할까요?

나는 캐스 케이 딩을 시도해 왔지만, 작문 작업에 대한 고전적인 맵 축소 접근법보다 어떤 이점도 볼 수 없다.

Map Reduce job은 나에게 더 많은 자유를 주며, Cascading은 많은 장애물을 내고있는 것으로 보인다.

단순한 일을 단순하게 만들지 만 복잡한 일은 잘할 수 있습니다.

내가 빠진 것이 있니? 고전적 접근 방식보다 계단식 연결의 장점이 있습니까?

고전적인 접근 방법을 통해 어떤 시나리오를 선택해야합니까? 그것을 사용하는 어떤 사람과 행복?

해결법

  1. ==============================

    1.나는 몇 년 동안 계단식을 사용 해왔다. 나는 그것을 매우 도움이되는 것으로 안다. 궁극적으로 생산성 향상에 관한 것입니다. 평범한 Java 코드와 비교하여 M / R 작업을 만들고 유지 관리하는 데 훨씬 효율적입니다. 그 이유는 다음과 같습니다.

    나는 몇 년 동안 계단식을 사용 해왔다. 나는 그것을 매우 도움이되는 것으로 안다. 궁극적으로 생산성 향상에 관한 것입니다. 평범한 Java 코드와 비교하여 M / R 작업을 만들고 유지 관리하는 데 훨씬 효율적입니다. 그 이유는 다음과 같습니다.

    함께 작성할 수있는 사전 빌드 된 구성 요소가 많이 있지만 처리 로직의 특정 섹션이 Java로 작성하는 것이 더 쉬운 것처럼 보일 경우 항상이를 감싸는 계단식 함수를 만들 수 있습니다. 이것은 Cascading의 이점을 가질 수있게 해 주지만, 매우 커스텀 연산은 곧은 Java 함수 (Cascading 인터페이스를 구현)로 작성 될 수 있습니다.

  2. ==============================

    2.캐스 케이 딩의 저자입니다 ...

    캐스 케이 딩의 저자입니다 ...

    제 제안은 돼지 나 하이브를 사용하는 것이 당신의 문제를 이해하는 것이라면, 돼지입니다.

    그러나 통찰력을 얻기 위해 데이터를 둘러 보는 것이 아니라 데이터를 다루는 비즈니스라면, 계단식 접근 방식이 원시 MapReduce보다 대부분의 문제에 훨씬 더 적합하다는 것을 알게 될 것입니다.

    원시 MapReduce의 첫 번째 장애물은 MapReduce에서 생각할 것입니다. 간단한 문제는 MapReduce에서 간단하지만 문제 도메인에 더 쉽게 매핑 할 수있는 모델로 작업 할 수 있다면 복잡한 애플리케이션을 개발하는 것이 훨씬 쉽습니다 (필터링, 구문 분석, 정렬, 나머지 결합 등).

    다음으로 Hadoop의 일반적인 작업 단위는 여러 MapReduce 작업으로 구성된다는 것을 알게 될 것입니다. 작업을 하나로 묶는 것은 해결할 수있는 문제이지만 응용 프로그램의 도메인 수준 코드로 누출되어서는 안되며 숨겨져 있고 투명해야합니다.

    또한 매퍼와 리듀서간에 기능을 지속적으로 이동해야하는 경우 리팩토링 및 재사용 가능한 코드 작성이 훨씬 어려워집니다. 또는 매퍼에서 이전 감속기로 최적화를 얻습니다. 이것은 취성의 문제로 이어진다.

    캐스 케이 딩은 가능한 한 빨리 실패 할 것이라고 생각합니다. 플래너는 Hadoop 클러스터가 작업에 종사하기 전에 모든 필드 이름 간의 종속성을 해결하고 만족 시키려고 시도합니다. 즉, 모든 문제 중 90 % 이상이 실행 중 대기 시간 내에 발견되어 작업을 찾을 수 있습니다.

    Person 또는 Document와 같은 도메인 객체를 생성하여 Raw MapReduce 코드에서이를 완화 할 수 있지만 많은 응용 프로그램이 모든 필드를 다운 스트림으로 처리 할 필요는 없습니다. 모든 남성의 평균 연령이 필요한지 고려하십시오. 당신이 필요로하는 것이 이진 성 (binary gender)과 숫자 나이 (age age) 일 때 전체 Person을 네트워크를 통과시키는 IO 벌칙을 지불하고 싶지는 않습니다.

    fail fast semantics와 싱크와 소스의 게으른 바인딩으로, 캐스 캐이 딩 (Cascading) 프레임 워크 (많은 Hadoop MapReduce 작업이 됨)를 만드는 캐스케이드 프레임 워크를 만드는 것이 매우 쉽습니다. 제가 현재 참여하고있는 프로젝트는 실행 당 100 개의 MapReduce 작업으로 끝납니다. 많은 작업은 처리중인 데이터의 피드백을 기반으로 진행됩니다. Cascalog를 검색하여 복잡한 프로세스를 간단하게 작성하기위한 Clojure 기반 프레임 워크의 예를 확인하십시오. Nix보다 사용자 정의하기가 훨씬 쉬운 웹 마이닝 툴킷 및 프레임 워크의 경우 Bixo입니다.

    마지막으로 Hadoop은 혼자 사용되지 않습니다. 즉, 데이터가 항상 외부 소스에서 가져와 처리 후 다른 곳으로 푸시됩니다. Hadoop에 대한 더러운 비밀은 매우 효과적인 ETL 프레임 워크라는 것입니다. 따라서 ETL 공급 업체가 Hadoop에 /로부터 데이터를 푸시 / 풀 (pull)하기 위해 툴을 사용하는 것에 대해 이야기하는 것을 바보스럽게 생각합니다. 계단식 연결은 통합 엔드 포인트와 독립적으로 작업, 응용 프로그램 및 단위 테스트를 작성할 수있게함으로써이 고통을 다소 완화합니다. 계단식 배열은 Membase, Memcached, Aster Data, Elastic Search, HBase, Hypertable, Cassandra 등과 같은 시스템을로드하기 위해 프로덕션에서 사용됩니다 (불행히도 모든 어댑터가 작성자에 의해 출시되지는 않았습니다).

    그럴 경우 인터페이스에서 겪고있는 문제 목록을 보내주십시오. API와 문서를 개선하는 더 나은 방법을 끊임없이 찾고 있으며 사용자 커뮤니티는 언제나 도움이 될 것입니다.

  3. ==============================

    3.Bixo와 함께 Cascading을 사용하여 대규모 소셜 네트워크를위한 완벽한 스팸 방지 링크 분류 파이프 라인을 작성했습니다.

    Bixo와 함께 Cascading을 사용하여 대규모 소셜 네트워크를위한 완벽한 스팸 방지 링크 분류 파이프 라인을 작성했습니다.

    Cascading 파이프 라인은 27 건의 MR 작업을 발생 시켰고, 이는 일반 MR에서 유지하기가 매우 어려웠습니다. 이전에 MR 작업을 작성했지만 Cascading과 같은 것을 사용하면 Assembler에서 Java (insert_fav_language_here)로 전환하는 것처럼 느껴집니다.

    Hive 또는 Pig IMHO보다 큰 장점 중 하나는 계단식이 하나의 항아리라는 점입니다. 돼지와 하이브는 더 많은 의존성 (예 : MySQL)을 가지고 있거나 포함하기 쉽지 않습니다.

    면책 조항 : 나는 Chris Wensel을 개인적으로 알고 있지만, 실제로 Cascading은 **이라고 생각합니다. 그것의 복잡성을 고려할 때, 나는 그것을 사용하는 하나의 버그를 찾지 못했음이 대단히 인상적이다.

  4. ==============================

    4.Scale Unlimited의 Hadoop Boot Camp 코스를 가르치고 Bixo의 Cascading을 광범위하게 사용하고 Bixo Labs에서 웹 마이닝 어플리케이션을 개발했습니다. 그래서 두 가지 접근에 대해 좋은 평가를 얻었습니다.

    Scale Unlimited의 Hadoop Boot Camp 코스를 가르치고 Bixo의 Cascading을 광범위하게 사용하고 Bixo Labs에서 웹 마이닝 어플리케이션을 개발했습니다. 그래서 두 가지 접근에 대해 좋은 평가를 얻었습니다.

    Cascading에서 볼 수있는 가장 큰 단일 장점은 필드 작업과 관련하여 데이터 처리 워크 플로우에 대해 생각할 수 있고,이 세상의 시각을 키 / 값 모델로 변환하는 방법에 대한 걱정을 피할 수 있다는 것입니다. 본질적으로 모든지도 축소 구현의 일부입니다.

    캐스 캐이 딩의 가장 큰 문제점은 데이터 처리 워크 플로우에 대해 다른 생각을하는 것인데, 모든 개념을 이해하기 전에 해결해야 할 개념적 "고비 (hump)"가 있다는 것입니다. 게다가 오류 메시지는 lex / yacc ( "conflict in shift / reduce")의 출력 중 하나를 생각 나게 할 수 있습니다 :)

    - 켄

  5. ==============================

    5.Cascading의 장점은 소스 코드에서 모두 분리되어 있어야하지만 모두 매퍼 또는 감속기의 컴포지션으로 수집 될 수있는 단순한 기능의 더미가있는 인스턴스라고 생각합니다. 그것들을 모아서 기본 map-reduce 코드를 읽기 어려워지면 프로그램을 느리게 만들 수 있습니다. 캐스 케이 딩의 옵티마이 저는 별도로 쓰는 경우에도 함께 사용할 수 있습니다. 돼지도 어느 정도까지는 Hive도이 작업을 수행 할 수 있지만 대규모 프로그램의 경우 Cascading이 유지 관리의 이점을 가지고 있다고 생각합니다.

    Cascading의 장점은 소스 코드에서 모두 분리되어 있어야하지만 모두 매퍼 또는 감속기의 컴포지션으로 수집 될 수있는 단순한 기능의 더미가있는 인스턴스라고 생각합니다. 그것들을 모아서 기본 map-reduce 코드를 읽기 어려워지면 프로그램을 느리게 만들 수 있습니다. 캐스 케이 딩의 옵티마이 저는 별도로 쓰는 경우에도 함께 사용할 수 있습니다. 돼지도 어느 정도까지는 Hive도이 작업을 수행 할 수 있지만 대규모 프로그램의 경우 Cascading이 유지 관리의 이점을 가지고 있다고 생각합니다.

    몇 달 안에 Plume은 표현력 경쟁자가 될 수 있지만 프로덕션 환경에서 작성하고 실행할 수있는 실제 프로그램이있는 경우 계단식 배치가 가장 좋은 방법 일 것입니다.

  6. ==============================

    6.계단식 배열을 사용하면 Hadoop에서 제공하는 기본 유형 대신 간단한 필드 이름과 튜플을 사용할 수 있습니다. "다른 개발자와 공유 할 수있는 정교하고 구성 가능한 코드를 만들기위한 잘못된 수준의 세분화 경향이 있습니다." Tom White, Hadoop The Definitive Guide). 캐스 캐이 딩은 이러한 문제를 해결하도록 설계되었습니다. Cascading, Hive, Pig 등의 응용 프로그램 중 일부는 병렬로 개발되었으며 때로는 동일한 작업을 수행합니다. 캐스케이드가 좋지 않거나 혼란 스럽다면 다른 것을 사용하는 것이 더 나을 것입니다.

    계단식 배열을 사용하면 Hadoop에서 제공하는 기본 유형 대신 간단한 필드 이름과 튜플을 사용할 수 있습니다. "다른 개발자와 공유 할 수있는 정교하고 구성 가능한 코드를 만들기위한 잘못된 수준의 세분화 경향이 있습니다." Tom White, Hadoop The Definitive Guide). 캐스 캐이 딩은 이러한 문제를 해결하도록 설계되었습니다. Cascading, Hive, Pig 등의 응용 프로그램 중 일부는 병렬로 개발되었으며 때로는 동일한 작업을 수행합니다. 캐스케이드가 좋지 않거나 혼란 스럽다면 다른 것을 사용하는 것이 더 나을 것입니다.

    이미이 문서를 가지고있을 것입니다. 그러나 여기에 사용자 안내서가 있습니다 : http://www.cascading.org/1.1/userguide/pdf/userguide.pdf. 일반적인 계단식 응용 프로그램에서 데이터 흐름을 예의롭게 안내합니다.

  7. ==============================

    7.나는 몇 년 동안 계단식 작업을 해왔으며 그 아래 계단식으로 유용한 것들이있다.

    나는 몇 년 동안 계단식 작업을 해왔으며 그 아래 계단식으로 유용한 것들이있다.

    1. code testability
    2. easy integration with other tools
    3. easily extensibile
    4. you will focus only on business logic not on keys and values
    5. proven in production and used by even twitter.
    

    사람들이 대부분 계단식으로 사용하는 것이 좋습니다.

  8. ==============================

    8.Cascading은 Hadoop과 Tap 및 Sink를 제공하는 Hadoop과 관련된 래퍼입니다.

    Cascading은 Hadoop과 Tap 및 Sink를 제공하는 Hadoop과 관련된 래퍼입니다.

    모든 작업을 위해 Mappers와 Reducer를 작성하는 일은 지루할 것입니다. 캐스케이드 작업을 작성해보십시오. 그러면 모든 맵퍼 및 리듀서 작성을 피할 수 있습니다.

    계단식 탭과 스킴 (계단식 처리 작업에 데이터를 입력하는 방법)을 살펴보고 싶을 수도 있습니다.

    이 두 가지 기능, 즉 Reduced Ad Hoc Mapping Mappers 및 다양한 데이터 소스를 사용할 수있는 능력을 피하는 능력으로 많은 데이터 처리를 매우 빠르고 효과적으로 해결할 수 있습니다.

    Cascading은 hadoop을 둘러싼 단순한 래퍼 이상이다. 나는 답을 간단하게 유지하려고 노력하고있다. 예를 들어, 테라 바이트의 데이터가 포함 된 거대한 mysql 데이터베이스를 계단식 jdbc 탭을 사용하여 로그 파일에 포팅했습니다.

  9. from https://stackoverflow.com/questions/3681494/does-anyone-find-cascading-for-hadoop-map-reduce-useful by cc-by-sa and MIT license