복붙노트

[HADOOP] 돼지 & 카산드라 & DataStax 컨트롤 분할

HADOOP

돼지 & 카산드라 & DataStax 컨트롤 분할

나는 카산드라 자료를 가지고 돼지를 사용하여 명령 적으로 작성하는 것이 거의 불가능한 모든 종류의 놀라운 그룹화를했습니다. DataStax와 Hadoop & Cassandra의 통합을 사용하고 있습니다. 아주 인상적이라고 할 수 있습니다. 그 녀석들에게 모자라 !!

나는 꽤 작은 샌드 박스 클러스터 (2- 노드)를 가지고 있는데,이 시스템을 몇 가지 테스트를 통해 퍼팅하고있다. 53M 행 (350 바이트 정도)의 CQL 테이블이 있는데, 나중에 Mapper가이 53M 행을 처리하는 데 매우 오랜 시간이 걸린다는 것을 알게되었습니다. 나는 로그를 파고 들기 시작했고 맵이 반복적으로 쏟아지고있는 것을 볼 수있다. (나는 매퍼로부터 177 개의 유출 물을 봤다.) 이것이 문제의 일부라고 생각한다.

CassandraInputFormat과 JobConfig의 조합은 단일 매퍼 만 작성하므로이 매퍼는 테이블에서 100 %의 행을 읽어야합니다. 나는 이것을 역 평행이라고 부른다. :)

이제이 그림에서 작동하는 많은 기어가 있습니다.

아무도 더 많은 매퍼를 실행할 수 있도록 더 많은 입력 분할을 만들기 위해 돼지를 얻는 방법에 대해 알려줄 수 있습니까? 23 개의 슬롯이 있습니다. 항상 하나만 사용하는 것이 유감입니다.

아니면 완전히 화가 났으며 문제를 이해하지 못합니까? 나는 두 종류의 답을 환영한다!

해결법

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

    1.pig.noSplitCombination = true로 설정해야합니다. 세 곳 중 하나에서이 작업을 수행 할 수 있습니다.

    pig.noSplitCombination = true로 설정해야합니다. 세 곳 중 하나에서이 작업을 수행 할 수 있습니다.

    스크립트를 호출 할 때 :

    dse pig -Dpig.noSplitCombination=true /path/to/script.pig
    

    돼지 스크립트 자체 :

    SET pig.noSplitCombination true
    table = LOAD 'cfs://ks/cf' USING CqlStorage();
    

    또는 영구적으로 /etc/dse/pig/pig.properties에 있습니다. 주석 처리 :

    pig.noSplitCombination=true
    

    그렇지 않으면 Pig가 총 입력 경로 (결합)를 다음과 같이 처리하도록 설정할 수 있습니다. 1.

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

    2.cassandra.input.split.size를 기본 분할 크기 인 64k보다 작게 설정할 수 있으므로 더 많은 분할을 얻을 수 있습니다. Cql 테이블의 노드 당 행 수는 얼마입니까? 테이블 스키마를 게시 할 수 있습니까?

    cassandra.input.split.size를 기본 분할 크기 인 64k보다 작게 설정할 수 있으므로 더 많은 분할을 얻을 수 있습니다. Cql 테이블의 노드 당 행 수는 얼마입니까? 테이블 스키마를 게시 할 수 있습니까?

    URL 매개 변수에 split_size를 추가하십시오.

    CassandraStorage의 경우 다음 매개 변수를 사용하십시오 cassandra : // [username : password @] / [slice_start = & slice_end = [& reversed = true] [& limit_limit = true] [& widerows = true] [& use_secondary = true] [& comparator =] [& split_size =] [& partitioner =] [& init_address =] [& rpc_port =]]

    CqlStorage의 경우 다음 매개 변수를 사용하십시오. cql : // [username : password @] / [? [page_size =] [& columns =] [& output_query =] [& where_clause =] [& split_size =] [& partitioner =] [& use_secondary = true | false] [& init_address =] [& rpc_port =]]

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

    3.pig.noSplitCombination = true로 설정하면 다른 극단으로 이동합니다.이 플래그로 769 개의지도 작업을 시작했습니다.

    pig.noSplitCombination = true로 설정하면 다른 극단으로 이동합니다.이 플래그로 769 개의지도 작업을 시작했습니다.

  4. from https://stackoverflow.com/questions/19575475/pig-cassandra-datastax-splits-control by cc-by-sa and MIT license