[HADOOP] 돼지 & 카산드라 & DataStax 컨트롤 분할
HADOOP돼지 & 카산드라 & DataStax 컨트롤 분할
나는 카산드라 자료를 가지고 돼지를 사용하여 명령 적으로 작성하는 것이 거의 불가능한 모든 종류의 놀라운 그룹화를했습니다. DataStax와 Hadoop & Cassandra의 통합을 사용하고 있습니다. 아주 인상적이라고 할 수 있습니다. 그 녀석들에게 모자라 !!
나는 꽤 작은 샌드 박스 클러스터 (2- 노드)를 가지고 있는데,이 시스템을 몇 가지 테스트를 통해 퍼팅하고있다. 53M 행 (350 바이트 정도)의 CQL 테이블이 있는데, 나중에 Mapper가이 53M 행을 처리하는 데 매우 오랜 시간이 걸린다는 것을 알게되었습니다. 나는 로그를 파고 들기 시작했고 맵이 반복적으로 쏟아지고있는 것을 볼 수있다. (나는 매퍼로부터 177 개의 유출 물을 봤다.) 이것이 문제의 일부라고 생각한다.
CassandraInputFormat과 JobConfig의 조합은 단일 매퍼 만 작성하므로이 매퍼는 테이블에서 100 %의 행을 읽어야합니다. 나는 이것을 역 평행이라고 부른다. :)
이제이 그림에서 작동하는 많은 기어가 있습니다.
아무도 더 많은 매퍼를 실행할 수 있도록 더 많은 입력 분할을 만들기 위해 돼지를 얻는 방법에 대해 알려줄 수 있습니까? 23 개의 슬롯이 있습니다. 항상 하나만 사용하는 것이 유감입니다.
아니면 완전히 화가 났으며 문제를 이해하지 못합니까? 나는 두 종류의 답을 환영한다!
해결법
-
==============================
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.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.pig.noSplitCombination = true로 설정하면 다른 극단으로 이동합니다.이 플래그로 769 개의지도 작업을 시작했습니다.
pig.noSplitCombination = true로 설정하면 다른 극단으로 이동합니다.이 플래그로 769 개의지도 작업을 시작했습니다.
from https://stackoverflow.com/questions/19575475/pig-cassandra-datastax-splits-control by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 R에서 스트리밍 mapreduce 작업에서 파일 이름을 얻을 수 있습니까? (0) | 2019.06.24 |
---|---|
[HADOOP] 지도에서 데이터를 정렬하는 방법은? (0) | 2019.06.24 |
[HADOOP] Name.Node 또는 Tasktracker ID를 표시하지 않는 jps 명령 실행. start.sh 명령을 사용할 때 statrs가 실행됩니다. (0) | 2019.06.24 |
[HADOOP] Hadoop 0.95 또는 1.75에서 적절한 수의 감소가있는 이유는 무엇입니까? (0) | 2019.06.24 |
[HADOOP] HDFS에 대한 원격 액세스는 Kubernets에 있습니다. (0) | 2019.06.24 |