• spakrR과 R의 메모리

    2017. 9. 12. 15:24

    by. 위지원

    sparkR을 쓰는 이유는 R의 메모리문제에 대한 단점을 보안하기 위해서라 했다. 그런데 무슨 메모리 문제인지 자세히 알아보지 않았다. 자세히 알아보자!



    메모리가 문제되는 이유는 데이터를 '물리적 메모리'에 저장해야 하기때문이였다.  하지만 요즘 pc에 장착되는 메모리 용량이 증가함에따라 개선되어가고있다고한다..............? 그렇다면  sparkR을 쓰는것은?! 


    '물리적 메모리'에 저장이 문제인것같다.좀 더 찾아보니 이런 물리적 메모리에 모든 데이터를 상주시켜야 한다고한다 R은..그렇다면 막 1TB이런 데이터는 어떻게하는가..?


    텐서플로우에서도 이러한 문제점때문에 텐서큐를 이용하지 않는가? 오호! 뭔가 비슷한게 아닐까? 더찾아보자



    -하둡으로 분산 저장된 데이터를 로컬 컴퓨터에 저장하기 위해서 맵리듀스,하이브,피그,관계형DB가 필요하다고 한다.

    -맵리듀스 하이브 피그 

    -맵리듀스는 한번 공부한 적이 있다. http://weejw.tistory.com/35

    -하이브,피그는 맵리듀스가 진입장벽이 꽤나 높은 이유로 이걸 좀 쉽게 하기 위함이라고한다.

    -하이브는 사용자가 작성한 쿼리 (hive ql)을 컴파일하여 하둡클러스터에 맵리듀스job을 돌리게 한다

    -피그(스크립트언어)는 맵리듀스에서 처리할 수 없는 부분을 지원하고 데이터에 적용할 수 있는 변환 종류도 훨씬 더 강력하다고 한다


    ==>결론적으로 세가지 친구들 모두 대용량 데이터 셋을 다루는 친구들


    -데이터분석,시각화,최종 작업등을 R에서 로컬저장소에 저장된 데이터를 가져다가 한다.


    sparkR을 쓰면 위의 친구들을 써서 로컬데이터에 저장하는게아니라 대용량 분산 데이터 저장소와 R이 직접 의사소통하는 구조가 된다.

    -sparkR 이 분산데이터 저장소에서 가져온 '스파크 데이터프레임'과 'R데이터 프레임'을 상호호환성을 보장하기때문이다!!

    -전에도 알아본것과 같이 sparkR은 스파크에서 R이 프론트엔드로 있는것인것!



    뽀나스 R의 메모리에 관한 글을 더 찾아보자++


    1.R은 가비지 컬렉션이 있다  : 명령어 gc()로 사용하면 사용하지 않는 메모리를 해제한다.

    2.R에서 사용할 수 있는 메모리는  memory.limit()으로 확인할 수 있다. ( 자신의 pc 메모리가 나올것이다..)

    -memory.limit(원하는크기)로 늘려서 가상 메모리를 이용해서 용량을 늘릴 수 있다.(가상메모리는 속도가 느리므로 무작정 늘리는건 좋지 않다고한다.그냥 메모리 자체를 늘리는것이 속도면에서 좋다고한다.)


    3.블로그 주인분이 말씀하시길 크~~ㄴ 데이터를 다루려면 여러개의 cpu와 큰 메모리를 지니지 않는곳에서 대용량데이터를 다뤄버리면 너무 느릴것이라고했다.

    -컴맹인 나는 cpu 개념을 찾아보았다.(하드맹인..)

    :cpu는 중앙처리 장치라고도 하며 사람으로 치면 머리다. 하드 디스크,램같은곳에서 들어오는 정보를 모두처리해서 다시 뱉어내주는 역할을 한다.

    :cpu는 연산처리를 위한 트랜지스터를 많이 갖고있어서 발열때문에 쿨러를 가지고있는것이다

    :cpu 성능은 클럭으로 나타내며 숫자가 클수록 성능이좋은것이다 단위는 Ghz

    :코어는 cpu안에 있는 코어의 수를 나타낸다.





    '2017년 > Spark' 카테고리의 다른 글

    HDFS와 YARN  (0) 2017.10.11
    스칼라를 빠르게 공부해보자  (0) 2017.09.20
    sparkR 이제 좀 써보자..  (0) 2017.08.28
    sparkR을 또 공부해보자  (0) 2017.08.18
    R과 알고리즘  (0) 2017.08.18