• sparkR을 또 공부해보자

    2017. 8. 18. 16:00

    by. 위지원

    왜이렇게 자꾸 햇갈리는지 모르겠다. 

    오늘은 https://www.slideshare.net/databricks/enabling-exploratory-data-science-with-spark-and-r 이것을 보고 공부를 해봤다.


    sparkR이 무엇인가?

    -spark에 R 프론트엔드를 제공함

    -R의 단점인 데규모 데이터셋에대한 메모리관리를 spark가 커버쳐줌 (그래서 로컬 메모리 필요x) ( spark의 분산처리를 r이 쓸수있도록함)

    -R과 spark 데이터프레임사이에 편리한 상호작용을 제공



    아키텍쳐

    드라이버

    -2가지의 구성요소 ( 드라이버,워커 )

    -분산된 데이터 자체는 jvm에 있음!!!!!

    -R에서 jvm에 바인딩되어(묶이다라는 뜻으로 R에서 jvm의 함수를 호출할 수 있도록 하는.. )

     즉 sparkR이라면 R에서 jvm에 바인딩 되어 spark의 함수를 사용할 수 있도록 하는것

    -sparkR의 api



    -바인딩은 socket기반 sparkR 내장 api를 가지고 한다.  ( java 객체를 참조하는 R의 class 'jobj'를 이용함!!! )



    워커

    - 초기에는 R함수를 실행할때마다 fork하는 방식이였는데, 이는 필요 입력을 전송시 고정된 오버헤드가 발생하여 비용이 큼

    -R연산 수행을 파이프라인으로 실행함 

    -파이프라인 : 프로세서로 가는 명령어들의 움직임, 명령어를 수행하기 위해 취해진 산술적인 단계가 연속/중복

    -파이프라인을 쓴다! 라는것은 연산을 수행할때 메모리에서 연산수행에 관련된 명령어를 프로세서가 연산을 수행하는동안 미리 가져와서 근처 버퍼에 가져다놓는것임!! ( 파이프라인을 안쓰면 연산이 다~끝나야 명령어를 가져오고..) 그래서 주어진 시간동안 수행 될 수 있는 명령어의 수가 증가됨

    -데몬 R프로세스를 만듬

    -데몬 R프로세스는 worker에서 R이 spark를 사용하여 작업을 수행하는동안 worker R을 관리하는 기능을 가지고 있음 




    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨