2017/07/09 2

스파크 최적화 삽질 관련 2.

http://qkqhxla1.tistory.com/918 요 글에 이은 두번째 글이다. 실제 환경에서 어떻게 처리했는지 적었다. 일단 프로그램의 흐름은 hive에서 쿼리 결과를 가져와서 csv파일로 저장 -> 다른 하둡 서버에서 csv를 가져옴 -> 저장된 csv파일을 spark에서 읽어서 처리. 하는, 흐름만 보면 간단해보인다.(처음에는 더 복잡했는데 줄이고 압축하다보니 플로우가 줄었다.)지워야 할것같은건 다 지웠다. 현재 oozie의 워크플로우다. hive script로 sql을 실행하고, 그 아래의 shell은 현재 서버에서 다른 하둡서버로 distcp를 이용해 데이터를 쏜다. 그리고 작업이 성공적으로 끝나면 finish_successfully라는 스크립트를 실행시키는데, 내부에 슬랙으로 메시지를 ..

data engineering 2017.07.09

스파크 최적화 삽질 관련 1.

최근 하둡 에코시스템 관련해서 프로그래밍을 하면서 삽질을 엄청나게 많이 했었다. 삽질의 반은 구현에 관한 삽질이었고, 나머지 반은 성능을 향상시키기 위한 삽질이었다. http://qkqhxla1.tistory.com/907 요 글에서 스파크 기초에 관한 지식만 가지고 있었고, 내부적으로 병렬화가 어떻게 실행되는지는 아예 몰랐었다. 그냥 병렬화 관련된 map함수? 이런걸 쓰면 내부적으로 '알아서 잘 나뉘어져서' 병렬적으로 실행되는구나. 몰라도 되겠지. 정도였는데 최적화를 어떻게 하느냐에 따라 속도가 엄청나게 차이가 많이난다. 아래에 내가 여태까지 삽질한 결과를 적겠다. 아래에 처리한 내용들을 적기 전에 병렬화에서 가장 자원을 효율적으로 쓰면서 속도를 빠르게 내려면 어떻게 해야하는지 적어야 할 것 같다.삽질..

data engineering 2017.07.09