spark sql을 사용하여 S3의 ORC 형식으로 저장된 두 개의 다른 데이터 세트를 읽습니다. 그러나 거의 비슷한 크기의 데이터 세트에서 읽기 성능의 차이는 매우 큽니다.같은 크기이지만 다른 행 길이의 Spark 읽기 성능 차이
데이터 세트 1 : 50 와 열 212,000,000 기록 각각 포함 S3 버킷 오크 형식 에 15기가바이트을 총.
데이터 세트 2 : 150 와 열 29,000,000 레코드 각각 포함하고, 동일 S3 버킷 오크 형식 에 15기가바이트을 총.
데이터 세트 1은 2 분을 사용하여 spark sql을 읽습니다. 그리고 같은 인프라에서 동일한 스파크 읽기/계산 작업으로 데이터 세트 2를 읽는 데 12 분을 사용합니다.
각 행의 길이로 인해 큰 차이가 발생할 수 있습니다. 누구나이 데이터 세트를 읽는 데있어 거대한 성능 차이의 원인을 이해할 수 있습니까? 얼마나 많은() 일이 벌어지고 시크에 대한 클라이언트가 랜덤 IO 여부에 대한 영리한되고 있는지 여부 : (// 클라이언트가 S3의 아마존 EMR &을하지) 클라이언트 : 당신이 S3A를 사용하는 가정
아마존 EMR과 그들의 s3 클라이언트를 사용하고 있습니다. 성능을 테스트 할 수있는 것은 무엇입니까? 참고 : 파일 수가 데이터 세트 1에 더 있습니다 (데이터 세트 2에서 300에 대해 220). –
파일 건너 뛰기가 #of 파일보다 많다고 생각합니다. 그러나 파일을 더 많이 분할 할 수는 있습니다. 성능을 테스트하려면? , 아마도 Hadoop 2.8을 설치하고 "사용자 제공 JAR"https://spark.apache.org/downloads.html을 사용하여 시작하십시오. VM에 스틱을 붙여 두 번째 데이터 세트에 대해 검색을 시작하십시오 . 다른 전략. 로컬로 다운로드하고 벤치 마크 일 수있는 file : // ..의 perf를 비교하십시오. –