2018.03.23

김진철의 How-to-Big Data | 빅데이터 주요 기술의 조건 (1)

김진철 | CIO KR


빅데이터 문제 해결의 기본적인 도구 – 병렬 처리 프레임워크
하둡은 최근 IT 산업계에서의 빅데이터 붐을 일으킨 장본인으로서 아직도 그 인기는 여전하다. 스파크가 크게 주목받으면서 상대적으로 덜 언급되기는 하지만, 그래도 데이터 기반 비즈니스에서 빅데이터를 처리한다고 하면 우선 하둡을 떠올리게 할 정도로 최근 빅데이터 붐을 이끌어온 기술이다.

한 대의 서버로 처리하기 어려운 빅데이터를 처리하기 위해서는 여러 대의 서버에 데이터 처리를 분산해서 많은 데이터를 처리하게 하는 빅데이터 병렬 처리 프레임워크는 필수적이다. 이 때문에 오픈 소스 소프트웨어로 접근이 쉽고, 맵과 리듀스 패턴으로 데이터 병렬 처리를 단순화하여 병렬 처리 알고리즘 개발을 쉽게 한 하둡은 빅데이터 활용이 확산되도록 IT 산업계에 큰 공헌을 한 기술임은 누구도 부인할 수 없을 것이다.

다만 필자가 지금까지 여러 번 언급했듯이, 빅데이터 비즈니스의 모든 문제가 하둡과 같은 빅데이터 기술만 잘 활용하면 해결된다는 식으로 IT 업계 분위기가 한동안 흘러갔던 것은 이제 좀 바뀌어야 하지 않을까 싶다. 다행히도 최근에는 데이터 기반 비즈니스의 성공 사례가 국내외에서 점점 늘어나고 있고, 빅데이터를 위한 다양한 기술들이 등장하고 적용되면서 하나의 빅데이터 기술이 빅데이터 비즈니스의 모든 것을 해결한다는 인식은 점점 사라지고 있는 듯하다.

CERN에서도 LHC 빅데이터를 처리하기 위해 병렬 처리를 위한 기술은 필수적으로 확보해야 했다. LHC를 건설하던 당시 병렬 처리나 고성능 컴퓨팅의 대부분은 물리학이나 화학, 엔지니어링 및 공학 분야에서 편미분 방정식의 해를 찾거나 시뮬레이션을 위한 병렬 계산이 대부분이었다. 병렬 처리 기술 대부분이 이런 병렬 계산을 위한 MPI(Message Passing Interface) 기반의 메시지 기반 병렬 처리 연산의 속도를 높이는 데에 초점이 맞추어져 있었다. LHC 빅데이터의 워크로드 패턴이 비즈니스 빅데이터 워크로드 패턴과 유사한 고처리량 연산 형태인 것, LHC 건설 초반에 많은 관심을 받았던 그리드 컴퓨팅 기술 초기에 고처리량 연산 형태의 워크로드를 위한 작업 스케줄러 기술이 많이 개발되었던 것은 LHC 실험 연구자들에게는 행운이었다.

빅데이터 처리가 복잡하고 어려우며 문제에 따라서 다양한 해결 방법이 있을 수 있겠지만, 비즈니스 빅데이터 처리를 위한 워크로드 패턴은 많이 쓰이는 몇 가지의 패턴으로 정리될 수 있다. 이런 워크로드 패턴들을 이용해 빅데이터 처리 논리 개발을 단순화하고, 데이터 과학자나 빅데이터 응용 프로그램을 개발하는 소프트웨어 엔지니어들이 비즈니스 고유의 요구사항에 집중할 수 있게 해주는 빅데이터 병렬, 분산 처리 프로그래밍 모델과 이를 구현한 프레임워크는 빅데이터의 모든 것이 아닐지라도 분명 중요한 기술 요소다.

지난 열 세번째 글에서도 잠시 언급했던 아파치 HAMA 등에서 맵리듀스 프로그래밍 모델을 좀더 일반화한 Bulk Synchronous Parallel(BSP) 모델, 최근 딥러닝 프레임워크로 각광받고 있는 텐서플로(TensorFlow)에서 사용하고 있는 데이터 플로우 모델(Dataflow programming model) 등의 프로그래밍 모델이 최근 많이 연구되면서 소프트웨어 엔지니어들이 활용할 수 있는 빅데이터 프로그래밍 모델과 이를 지원하는 소프트웨어 기술이 점점 많아지고 있어 해결할 수 있는 빅데이터 비즈니스 문제의 범위가 점점 넓어지고 있다. 이렇게 빅데이터 기술의 발전으로 해결할 수 있는 비즈니스 문제의 범위가 넓어지는 것은 분명 새로운 비즈니스 기회로 이어질 수 있다.

빅데이터 처리를 위해 병렬, 분산 처리 기술을 활용하면서 다음의 네 가지를 꼭 기억하자.

첫 번째로, 거듭 강조하는 것이지만, 비즈니스의 목표에 부합하고, 빅데이터를 이용한 비즈니스의 문제를 해결하는데 적합한 빅데이터 병렬, 분산 처리 기술을 선별해서 사용해야 한다.

하둡이나 스파크가 분명히 좋은 병렬, 분산 처리 기술이지만, 분명히 두 기술 모두 나름의 특성이 있고 한계를 가지고 있다. 하둡은 많은 데이터를 디스크와 같은 영속저장장치(persistent storage)에 두고 병렬, 분산화된 작업이 서로 독립적으로 실행될 수 있는 빅데이터 처리에 적합하다. 하둡의 특성상 디스크 I/O가 많으면 성능이 떨어지게 마련이라 스파크를 같이 활용하는 경우가 많다.

스파크의 경우는 인메모리 빅데이터 처리 기술이기 때문에 저지연(low latency) 데이터 처리가 가능하지만 반대로 한번에 처리할 수 있는 데이터의 양이 메모리 용량에 좀더 제약을 받을 수밖에 없고, 스칼라 언어를 기반으로 하고 있다는 것을 고려해서 도입을 고려해야 할 것이다.

특히 스파크의 경우 하둡과 같이 쓰게 되는 경우가 많은데, 스파크가 기반을 둔 스칼라가 자바 가상 머신에 기반을 둔 언어이기 때문에 이런 사용 방법이 상대적으로 쉬운 것이지, Java가 아닌 다른 프로그래밍 언어를 비즈니스 IT 시스템의 기반 플랫폼으로 사용하고 있는 조직에서는 스파크를 도입하기 전에 좀더 신중하게 검토할 필요가 있다. 서로 다른 프로그래밍 언어를 사용하는 이종 개발 환경에서의 비즈니스 시스템 개발, 관리 과정에서 올 수 있는 문제와, 스칼라 언어 자체가 복잡하고 어렵기 때문에 스칼라 언어의 특성을 최대한으로 활용할 수 있도록 소프트웨어 엔지니어들을 훈련시키는데 생각보다 많은 노력이 들 수 있다는 점을 고려할 필요가 있다.

다행히도 요즘은 이런 이종 프로그래밍 언어를 사용하면서 오는 문제는 거의 없는 편이다. 하둡과 스파크도 Java와 스칼라외의 Python과 같은 다른 언어로의 인터페이스를 제공하는 라이브러리들이 많이 개발, 공개되어서 요즘은 서로 다른 프로그래밍 언어를 써서 빅데이터 비즈니스 시스템을 개발하는 문제는 생각보다 장벽이 높지 않다. 이런 최근의 경향 때문에 C++기반의 분석 플랫폼인 ROOT를 주로 쓰는 CERN에서도 하둡과 스파크를 적극적으로 활용하려 한다.

하둡과 스파크가 해결할 수 있는 문제의 범위는 넓은 편이다. 그렇지만, 빅데이터 비즈니스의 모든 기술적인 문제를 해결할 수 있는 것은 아니다. 빅데이터 비즈니스를 위한 IT 시스템은 하둡, 스파크 시스템을 포함한 전체 데이터 처리 파이프라인을 위한 시스템으로 구성해야 한다는 사실을 잊지 않도록 하자.

두 번째로, 빅데이터 분석 플랫폼과의 통합이 용이해야 한다. 분석 플랫폼에서 병렬, 분산 처리 기술을 위한 인터페이스가 제공되는지, 만약 제공되지 않는다면 빅데이터 분석 소프트웨어가 분석 데이터 가공을 위한 병렬, 분산 처리 과정이 쉽게 분석 로직과 통합이 될 수 있을지 신중하게 검토되어야 한다.

데이터과학팀에 빅데이터 병렬, 분산 처리 기술을 포함한 빅데이터 관련 IT 기술에 상당히 밝은 데이터과학자가 많아서 빅데이터 가공, 분석, 해석까지 직접 설계, 수행할 수 있다면 문제가 없겠지만, 빅데이터 가공을 전담하는 데이터 엔지니어와 빅데이터 분석과 해석을 담당하는 데이터분석가가 나뉘어 있는 데이터과학팀의 경우에는 빅데이터 분석 플랫폼에서 간편하게 빅데이터 병렬, 분산 처리를 할 수 있는지가 팀의 개발, 분석 속도와 생산성에 크게 영향을 줄 수 있다. CERN의 경우, PROOF를 통해 ROOT에서 병렬, 분산 처리를 쉽게 할 수 없었다면 LHC 데이터 분석을 통해 힉스 입자를 발견하는데 더 많은 시간이 걸렸을 가능성이 높다. LHC 실험의 데이터과학자인 입자물리학자들이 상대적으로 다른 과학 분야에 비해 IT 기술에 밝기는 하지만, 그래도 병렬, 분산 처리를 깊게 알고 능숙하게 다룰 수 있는 사람은 적기 때문에 ROOT상에서 PROOF를 통한 병렬 처리를 쉽게 할 수 있었다는 것은 큰 장점이었다.

세 번째로, 빅데이터 병렬, 분산 처리 소프트웨어와 인프라에서 데이터 소스에의 접근과 활용이 용이해야 한다. 이는 빅데이터 병렬, 분산 처리 기술이 쓰이는 주된 용도가 빅데이터를 가공해서 원하는 정보만을 추출하고 분석에 필요한 데이터의 양을 줄이는데 많이 쓰이기 때문이다.

빅데이터를 처리하기 위한 병렬, 분산 처리 소프트웨어가 원시 빅데이터에 쉽게 접근하여 원하는 데이터를 얻지 못한다면 아무리 빠르게 병렬, 분산 처리를 할 수 있다고 해도 빅데이터 처리 자체가 매우 어려워질 것이다.

원시 빅데이터 접근을 용이하게 하는 것은 단순히 병렬, 분산 처리 소프트웨어에서 다양한 종류의 원시 빅데이터에의 접근을 위한 API를 제공하는 것만의 문제가 아니다. 원시 빅데이터에 접근하여 원하는 데이터만을 선별하는데 많은 시간이 걸리거나, 원하는 데이터만을 골라 필요한 위치로 전송하고 옮기는데 많은 지연이 생기지 않도록 빅데이터 인프라내의 네트워크가 적절하게 디자인되고 관리되는 문제도 포함한다. 원시 빅데이터 접근을 고려하여 빅데이터 인프라의 네트워크와 테크니컬 아키텍처가 디자인되어야 빅데이터 처리와 분석 과정에서의 병렬, 분산 처리 소프트웨어의 역할이 더욱 빛날 수 있다.

네 번째로, 빅데이터 가공, 분석 과정을 하나의 전체 파이프라인으로 구성, 관리할 수 있게 해주는 워크플로우와 오케스트레이션 관리 도구가 있고, 이런 워크플로우와 오케스트레이션 도구를 통해 빅데이터 병렬, 분산 처리 과정이 통합되는 것이 바람직하다.

이후 연재에서 좀더 자세하게 소개하겠지만, CERN의 LCG에서는 그리드 워크플로우 기술이 개발되어 쓰였다. 이런 그리드 워크플로우 기술은 그리드 자원에서의 정보처리 과정이 그리드 자원 관리와 연계되어 적절한 자원에 스케줄링되어 실행될 수 있도록 체계적으로 관리하게 된다. 이렇게 그리드 워크플로우 기술과 통합된 병렬, 분산 처리 과정은 빅데이터 인프라 자원을 사용성을 높이는 데에도 도움이 되지만, 데이터 가공 및 분석 전체 과정을 조망하면서 데이터 가공, 처리를 할 수 있도록 데이터 엔지니어를 돕기 때문에 복잡한 빅데이터 처리 개발 과정의 생산성을 높일 수 있다.

워크플로우 형태로 표현된 빅데이터 프로세스는 데이터 엔지니어, 도메인 전문가, 데이터과학자가 팀을 이룬 데이터과학팀에서 빅데이터 분석 협업과 프로세스 통합, 조율을 용이하게 할 수 있다. 대개의 경우 데이터과학자가 빅데이터 분석에 필요한 모든 업무와 기술을 소화하기는 쉽지 않기 때문에 팀 단위의 협업을 할 수밖에 없는데, 팀 단위의 협업을 구체적이고 명료한 업무로 만드는데 워크플로우와 오케스트레이션 기술은 효과적으로 활용된다.

빅데이터 처리 프로세스를 위한 워크플로우와 오케스트레이션 도구는 데이터 수집, 가공, 분석 전 과정을 하나의 프로세스 단위로 묶어 주기 때문에 데이터 소스 접근부터 빅데이터 병렬, 분산 처리까지 전 프로세스의 디자인과 구현이 신속하고 정확하게 이루어질 수 있다. 보통 이런 워크플로우는 그림과 도형으로 표현이 되는 GUI 형태로 만드는데, 이렇게 GUI로 도식적으로 표현된 워크플로우는 데이터과학팀 모두가 만들어야 하는 데이터 가공 및 분석 과정에 대한 명료한 비전과 목표를 워크플로우 단위로 제시할 수 있게 한다. 빅데이터 워크플로우는 빅데이터 가공, 분석 과정을 자동화하고 구현하기 편하게 할 뿐만 아니라, 팀단위의 협업도 용이하게 하는 것이다.

분산, 병렬 처리 소프트웨어 프레임워크가 스칼라와 같은 함수형 언어와 결합되어 있는 경우 워크플로우 기술을 통해 기술된 빅데이터 가공, 처리 프로세스는 더욱 강력해진다. 스칼라와 같이 반영(reflection)과 같은 메타프로그래밍이 지원되는 함수형 언어로 기술되는 분산, 병렬 처리 과정은 워크플로우 기술로 표현, 통합되기에 용이하다. 이 때문에 스칼라 언어로 작성된 스파크와 같은 분산, 병렬 처리 소프트웨어로 기술된 빅데이터 처리 과정은 워크플로우 형태로 관리하고 자산화하기 좋다.

애초에 IT 산업계에서 빅데이터라는 말이 화두가 되었던 것은 빅데이터 처리를 위한 자원 관리와 조율을 위한 클라우드 기술과 구글의 맵리듀스, 아파치 하둡과 같은 분산, 병렬 처리 프레임워크 기술 덕분이었다. 이런 이유로 빅데이터 문제를 클라우드와 하둡기술만 쓰면 다 해결할 수 있는 것 같은 인식이 한동안 IT 업계에 널리 퍼져 있었지만, 사실은 빅데이터가 빅데이터를 활용하는 비즈니스에서 가치를 더하기 위해서는 다양한 IT 기술을 적절하게 활용해야 한다는 것을 다시 한번 강조하고 싶다.

그럼에도 불구하고, 빅데이터 붐을 일으킨 하둡과 같은 분산, 병렬 처리 소프트웨어 기술이 여전히 빅데이터 비즈니스의 핵심 기술 중의 하나인 것은 분명하다. 위에서 언급한 네 가지 사항을 염두에 두고, 빅데이터에서 비즈니스 가치를 뽑아내기 위한 현실적인 준비와 실행을 하도록 하자. 더 이상 하둡이나 스파크 인프라를 한번 구축하고 끝나는 식의 빅데이터 기술 붐이 아니라, 빅데이터를 기반으로 한 지능형 서비스와 비즈니스 효율화, 자동화로 우리 사회가 더욱 풍성하고 편리하게 발전하도록 돕는 빅데이터 활용이 되었으면 한다.

[참고문헌]
[1] 김진철, “LHC에서 배우는 빅데이터와 machine learning 활용 방안”, 2016년 9월 28일, A CIO Conversation for Technology Leadership – Breakfast Roundtable 발표 자료
[2] G. GANIS, “PROOF – Present and Future,” Technology Seminar, BNL, April 25 2008.
[3] B. Bellenot, R. Brun, G. Ganis, J. Iwaszkiewicz, F. Rademakers, M. Ballintijn, “PROOF: Parallel ROOT Facility – Poster Presentation.“
[4] Maarten Ballintijn, Gunther Roland, Rene Brun, Fons Rademakers, “The PROOF Distributed Parallel Analysis Framework based on ROOT,” ArXiv preprint: physics/0306110v1, https://arxiv.org/abs/physics/0306110v1.
[5] D. Piparo, “Expressing Parallelism with ROOT,” CHEP 2016.
[6] ROOT Documentation - The Event Display classes, https://root.cern.ch/root/html/GRAF3D_EVE_Index.html .
[7] ROOT Documentation - An event display based on ROOT GUI, https://root.cern/event-display-based-root-gui .
[8] Fabian Glaser, Helmut Neukircheny, Thomas Rings, Jens Grabowski, “Using 맵리듀스 for High Energy Physics Data Analysis,” Proceedings of the 2013 International Symposium on 맵리듀스 and Big Data Infrastructure (MR.BDI 2013), 03-05 December 2013, Sydney, Australia 2013. DOI: 10.1109/CSE.2013.189, IEEE 2013. (https://goo.gl/Fxf9vp)
[9] Jim Pivarski, “Lowering boundaries between data analysis ecosystems,” in Future Trends in Nuclear Physics Computing Workshop, at CEBAF Center, Jefferson Lab ( F113 ), May 3, 2017. (https://www.jlab.org/indico/event/213/)
[10] Evangelos Motesnitsalis, “Physics Data Analytics and Data Reduction with 아파치 스파크,” XLDB 2017, 10 Oct. ~ 12 Oct., 2017.
[11] Oliver Gutsche, Luca Canali, Illia Cremer, Matteo Cremonesi, Peter Elmer, Ian Fisk, Maria Girone, Bo Jayatilaka, Jim Kowalkowski, Viktor Khristenko, Evangelos Motesnitsalis, Jim Pivarski, Saba Sehrish, Kacper Surdy, Alexey Svyatkovskiy, “CMS Analysis and Data Reduction with 아파치 스파크,” ArXiv Preprint:1711.00375, https://arxiv.org/abs/1711.00375 .
[12] Stefano Alberto Russo, “Using the 하둡/맵리듀스 approach for monitoring the CERN storage system and improving the ATLAS computing model,“ CERN Document Archive: CERN-THESIS-2013-067, 2013.
[13], CERN IT-DB, 하둡 and Analytics at CERN IT, Meeting with Microsoft, 7 November 2016. (https://goo.gl/JeGkWU)
[14] C Nieke, M Lassnig, L Menichetti, E Motesnitsalis, and D Duellmann, “Analysis of CERN computing infrastructure and monitoring data,” Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 052029, 2015.
[15] Jim Pivarski, “Reading ROOT data in Java and 스파크,” Princeton University – DIANA Seminar, 7 November, 2016.
[16] S. A. Russo, M. Pinamonti and M. Cobal, “Running a typical ROOT HEP analysis on 하둡 apReduce,” Proceedings of the 20th International Conference on Computing in High Energy and Nuclear Physics (CHEP2013), Journal of Physics: Conference Series 513, 032080, 2014.
[17] Andrew Hanushevsky and Daniel L. Wang, Scalla: Structured Cluster Architecture for Low Latency Access,” Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum, pp. 1168-1175, 2012. (doi>10.1109/IPDPSW.2012.141, https://goo.gl/ATwsoo)
[18] Boduo Li, Edward Mazur, Yanlei Diao, Andrew McGregor, Prashant Shenoy, “SCALLA: A Platform for 스칼라ble One-Pass Analytics using 맵리듀스,” ACM Transactions on Database Systems (TODS), Vol. 37 Iss. 4, December 2012. (https://goo.gl/LJT4o2 , https://goo.gl/UPAS1F)
[19] Z. Baranowski, L. Canali, R. Toebbicke, J. Hrivnac, D. Barberis, “A study of data representation in 하둡 to optimize data storage and search performance for the ATLAS EventIndex,” Journal of Physics: Conf. Series 898, 062020, 2017. (doi :10.1088/1742-6596/898/6/062020)
[20] C. Luzzi, L. Betev, F. Carminati, C. Grigoras, A. Manafov and P. Saiz, “Dynamic parallel ROOT facility clusters on the Alice Environment,” Proceedings of the International Conference on Computing in High Energy and Nuclear Physics 2012 (CHEP2012), Journal of Physics: Conference Series 396, 032068, 2012. (doi:10.1088/1742-6596/396/3/032068)
[21] P. Andrade, B. Fiorini, S. Murphy, L. Pigueiras, M. Santos, “Monitoring Evolution at CERN,” Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 052002, 2015. (doi:10.1088/1742-6596/664/5/052002)
[22] Zbigniew Baranowski, Maciej Grzybek, Luca Canali, Daniel Lanza Garcia, Kacper Surdy, “Scale out databases for CERN use cases,“ Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 042002, 2015. (doi:10.1088/1742-6596/664/4/042002)

 

 

*김진철 박사는 1997년 한국과학기술원에서 물리학 학사, 1999년 포항공과대학교에서 인공신경망에 대한 연구로 석사 학위를, 2005년 레이저-플라즈마 가속기에 대한 연구로 박사 학위를 받았다. 2005년부터 유럽입자물리학연구소(CERN)의 LHC 데이터 그리드 구축, 개발에 참여, LHC 빅데이터 인프라를 위한 미들웨어 및 데이터 분석 기술을 연구하였다. 이후 한국과학기술정보연구원(KISTI), 포항공과대학교, 삼성SDS를 거쳐 2013년부터 SK텔레콤에서 클라우드 컴퓨팅과 인공지능 기술을 연구하고 있다. 빅데이터와 인공지능 기술의 기업 활용 방안에 대해 최근 다수의 초청 강연 및 컨설팅을 수행하였다. ciokr@idg.co.kr
 



2018.03.23

김진철의 How-to-Big Data | 빅데이터 주요 기술의 조건 (1)

김진철 | CIO KR


빅데이터 문제 해결의 기본적인 도구 – 병렬 처리 프레임워크
하둡은 최근 IT 산업계에서의 빅데이터 붐을 일으킨 장본인으로서 아직도 그 인기는 여전하다. 스파크가 크게 주목받으면서 상대적으로 덜 언급되기는 하지만, 그래도 데이터 기반 비즈니스에서 빅데이터를 처리한다고 하면 우선 하둡을 떠올리게 할 정도로 최근 빅데이터 붐을 이끌어온 기술이다.

한 대의 서버로 처리하기 어려운 빅데이터를 처리하기 위해서는 여러 대의 서버에 데이터 처리를 분산해서 많은 데이터를 처리하게 하는 빅데이터 병렬 처리 프레임워크는 필수적이다. 이 때문에 오픈 소스 소프트웨어로 접근이 쉽고, 맵과 리듀스 패턴으로 데이터 병렬 처리를 단순화하여 병렬 처리 알고리즘 개발을 쉽게 한 하둡은 빅데이터 활용이 확산되도록 IT 산업계에 큰 공헌을 한 기술임은 누구도 부인할 수 없을 것이다.

다만 필자가 지금까지 여러 번 언급했듯이, 빅데이터 비즈니스의 모든 문제가 하둡과 같은 빅데이터 기술만 잘 활용하면 해결된다는 식으로 IT 업계 분위기가 한동안 흘러갔던 것은 이제 좀 바뀌어야 하지 않을까 싶다. 다행히도 최근에는 데이터 기반 비즈니스의 성공 사례가 국내외에서 점점 늘어나고 있고, 빅데이터를 위한 다양한 기술들이 등장하고 적용되면서 하나의 빅데이터 기술이 빅데이터 비즈니스의 모든 것을 해결한다는 인식은 점점 사라지고 있는 듯하다.

CERN에서도 LHC 빅데이터를 처리하기 위해 병렬 처리를 위한 기술은 필수적으로 확보해야 했다. LHC를 건설하던 당시 병렬 처리나 고성능 컴퓨팅의 대부분은 물리학이나 화학, 엔지니어링 및 공학 분야에서 편미분 방정식의 해를 찾거나 시뮬레이션을 위한 병렬 계산이 대부분이었다. 병렬 처리 기술 대부분이 이런 병렬 계산을 위한 MPI(Message Passing Interface) 기반의 메시지 기반 병렬 처리 연산의 속도를 높이는 데에 초점이 맞추어져 있었다. LHC 빅데이터의 워크로드 패턴이 비즈니스 빅데이터 워크로드 패턴과 유사한 고처리량 연산 형태인 것, LHC 건설 초반에 많은 관심을 받았던 그리드 컴퓨팅 기술 초기에 고처리량 연산 형태의 워크로드를 위한 작업 스케줄러 기술이 많이 개발되었던 것은 LHC 실험 연구자들에게는 행운이었다.

빅데이터 처리가 복잡하고 어려우며 문제에 따라서 다양한 해결 방법이 있을 수 있겠지만, 비즈니스 빅데이터 처리를 위한 워크로드 패턴은 많이 쓰이는 몇 가지의 패턴으로 정리될 수 있다. 이런 워크로드 패턴들을 이용해 빅데이터 처리 논리 개발을 단순화하고, 데이터 과학자나 빅데이터 응용 프로그램을 개발하는 소프트웨어 엔지니어들이 비즈니스 고유의 요구사항에 집중할 수 있게 해주는 빅데이터 병렬, 분산 처리 프로그래밍 모델과 이를 구현한 프레임워크는 빅데이터의 모든 것이 아닐지라도 분명 중요한 기술 요소다.

지난 열 세번째 글에서도 잠시 언급했던 아파치 HAMA 등에서 맵리듀스 프로그래밍 모델을 좀더 일반화한 Bulk Synchronous Parallel(BSP) 모델, 최근 딥러닝 프레임워크로 각광받고 있는 텐서플로(TensorFlow)에서 사용하고 있는 데이터 플로우 모델(Dataflow programming model) 등의 프로그래밍 모델이 최근 많이 연구되면서 소프트웨어 엔지니어들이 활용할 수 있는 빅데이터 프로그래밍 모델과 이를 지원하는 소프트웨어 기술이 점점 많아지고 있어 해결할 수 있는 빅데이터 비즈니스 문제의 범위가 점점 넓어지고 있다. 이렇게 빅데이터 기술의 발전으로 해결할 수 있는 비즈니스 문제의 범위가 넓어지는 것은 분명 새로운 비즈니스 기회로 이어질 수 있다.

빅데이터 처리를 위해 병렬, 분산 처리 기술을 활용하면서 다음의 네 가지를 꼭 기억하자.

첫 번째로, 거듭 강조하는 것이지만, 비즈니스의 목표에 부합하고, 빅데이터를 이용한 비즈니스의 문제를 해결하는데 적합한 빅데이터 병렬, 분산 처리 기술을 선별해서 사용해야 한다.

하둡이나 스파크가 분명히 좋은 병렬, 분산 처리 기술이지만, 분명히 두 기술 모두 나름의 특성이 있고 한계를 가지고 있다. 하둡은 많은 데이터를 디스크와 같은 영속저장장치(persistent storage)에 두고 병렬, 분산화된 작업이 서로 독립적으로 실행될 수 있는 빅데이터 처리에 적합하다. 하둡의 특성상 디스크 I/O가 많으면 성능이 떨어지게 마련이라 스파크를 같이 활용하는 경우가 많다.

스파크의 경우는 인메모리 빅데이터 처리 기술이기 때문에 저지연(low latency) 데이터 처리가 가능하지만 반대로 한번에 처리할 수 있는 데이터의 양이 메모리 용량에 좀더 제약을 받을 수밖에 없고, 스칼라 언어를 기반으로 하고 있다는 것을 고려해서 도입을 고려해야 할 것이다.

특히 스파크의 경우 하둡과 같이 쓰게 되는 경우가 많은데, 스파크가 기반을 둔 스칼라가 자바 가상 머신에 기반을 둔 언어이기 때문에 이런 사용 방법이 상대적으로 쉬운 것이지, Java가 아닌 다른 프로그래밍 언어를 비즈니스 IT 시스템의 기반 플랫폼으로 사용하고 있는 조직에서는 스파크를 도입하기 전에 좀더 신중하게 검토할 필요가 있다. 서로 다른 프로그래밍 언어를 사용하는 이종 개발 환경에서의 비즈니스 시스템 개발, 관리 과정에서 올 수 있는 문제와, 스칼라 언어 자체가 복잡하고 어렵기 때문에 스칼라 언어의 특성을 최대한으로 활용할 수 있도록 소프트웨어 엔지니어들을 훈련시키는데 생각보다 많은 노력이 들 수 있다는 점을 고려할 필요가 있다.

다행히도 요즘은 이런 이종 프로그래밍 언어를 사용하면서 오는 문제는 거의 없는 편이다. 하둡과 스파크도 Java와 스칼라외의 Python과 같은 다른 언어로의 인터페이스를 제공하는 라이브러리들이 많이 개발, 공개되어서 요즘은 서로 다른 프로그래밍 언어를 써서 빅데이터 비즈니스 시스템을 개발하는 문제는 생각보다 장벽이 높지 않다. 이런 최근의 경향 때문에 C++기반의 분석 플랫폼인 ROOT를 주로 쓰는 CERN에서도 하둡과 스파크를 적극적으로 활용하려 한다.

하둡과 스파크가 해결할 수 있는 문제의 범위는 넓은 편이다. 그렇지만, 빅데이터 비즈니스의 모든 기술적인 문제를 해결할 수 있는 것은 아니다. 빅데이터 비즈니스를 위한 IT 시스템은 하둡, 스파크 시스템을 포함한 전체 데이터 처리 파이프라인을 위한 시스템으로 구성해야 한다는 사실을 잊지 않도록 하자.

두 번째로, 빅데이터 분석 플랫폼과의 통합이 용이해야 한다. 분석 플랫폼에서 병렬, 분산 처리 기술을 위한 인터페이스가 제공되는지, 만약 제공되지 않는다면 빅데이터 분석 소프트웨어가 분석 데이터 가공을 위한 병렬, 분산 처리 과정이 쉽게 분석 로직과 통합이 될 수 있을지 신중하게 검토되어야 한다.

데이터과학팀에 빅데이터 병렬, 분산 처리 기술을 포함한 빅데이터 관련 IT 기술에 상당히 밝은 데이터과학자가 많아서 빅데이터 가공, 분석, 해석까지 직접 설계, 수행할 수 있다면 문제가 없겠지만, 빅데이터 가공을 전담하는 데이터 엔지니어와 빅데이터 분석과 해석을 담당하는 데이터분석가가 나뉘어 있는 데이터과학팀의 경우에는 빅데이터 분석 플랫폼에서 간편하게 빅데이터 병렬, 분산 처리를 할 수 있는지가 팀의 개발, 분석 속도와 생산성에 크게 영향을 줄 수 있다. CERN의 경우, PROOF를 통해 ROOT에서 병렬, 분산 처리를 쉽게 할 수 없었다면 LHC 데이터 분석을 통해 힉스 입자를 발견하는데 더 많은 시간이 걸렸을 가능성이 높다. LHC 실험의 데이터과학자인 입자물리학자들이 상대적으로 다른 과학 분야에 비해 IT 기술에 밝기는 하지만, 그래도 병렬, 분산 처리를 깊게 알고 능숙하게 다룰 수 있는 사람은 적기 때문에 ROOT상에서 PROOF를 통한 병렬 처리를 쉽게 할 수 있었다는 것은 큰 장점이었다.

세 번째로, 빅데이터 병렬, 분산 처리 소프트웨어와 인프라에서 데이터 소스에의 접근과 활용이 용이해야 한다. 이는 빅데이터 병렬, 분산 처리 기술이 쓰이는 주된 용도가 빅데이터를 가공해서 원하는 정보만을 추출하고 분석에 필요한 데이터의 양을 줄이는데 많이 쓰이기 때문이다.

빅데이터를 처리하기 위한 병렬, 분산 처리 소프트웨어가 원시 빅데이터에 쉽게 접근하여 원하는 데이터를 얻지 못한다면 아무리 빠르게 병렬, 분산 처리를 할 수 있다고 해도 빅데이터 처리 자체가 매우 어려워질 것이다.

원시 빅데이터 접근을 용이하게 하는 것은 단순히 병렬, 분산 처리 소프트웨어에서 다양한 종류의 원시 빅데이터에의 접근을 위한 API를 제공하는 것만의 문제가 아니다. 원시 빅데이터에 접근하여 원하는 데이터만을 선별하는데 많은 시간이 걸리거나, 원하는 데이터만을 골라 필요한 위치로 전송하고 옮기는데 많은 지연이 생기지 않도록 빅데이터 인프라내의 네트워크가 적절하게 디자인되고 관리되는 문제도 포함한다. 원시 빅데이터 접근을 고려하여 빅데이터 인프라의 네트워크와 테크니컬 아키텍처가 디자인되어야 빅데이터 처리와 분석 과정에서의 병렬, 분산 처리 소프트웨어의 역할이 더욱 빛날 수 있다.

네 번째로, 빅데이터 가공, 분석 과정을 하나의 전체 파이프라인으로 구성, 관리할 수 있게 해주는 워크플로우와 오케스트레이션 관리 도구가 있고, 이런 워크플로우와 오케스트레이션 도구를 통해 빅데이터 병렬, 분산 처리 과정이 통합되는 것이 바람직하다.

이후 연재에서 좀더 자세하게 소개하겠지만, CERN의 LCG에서는 그리드 워크플로우 기술이 개발되어 쓰였다. 이런 그리드 워크플로우 기술은 그리드 자원에서의 정보처리 과정이 그리드 자원 관리와 연계되어 적절한 자원에 스케줄링되어 실행될 수 있도록 체계적으로 관리하게 된다. 이렇게 그리드 워크플로우 기술과 통합된 병렬, 분산 처리 과정은 빅데이터 인프라 자원을 사용성을 높이는 데에도 도움이 되지만, 데이터 가공 및 분석 전체 과정을 조망하면서 데이터 가공, 처리를 할 수 있도록 데이터 엔지니어를 돕기 때문에 복잡한 빅데이터 처리 개발 과정의 생산성을 높일 수 있다.

워크플로우 형태로 표현된 빅데이터 프로세스는 데이터 엔지니어, 도메인 전문가, 데이터과학자가 팀을 이룬 데이터과학팀에서 빅데이터 분석 협업과 프로세스 통합, 조율을 용이하게 할 수 있다. 대개의 경우 데이터과학자가 빅데이터 분석에 필요한 모든 업무와 기술을 소화하기는 쉽지 않기 때문에 팀 단위의 협업을 할 수밖에 없는데, 팀 단위의 협업을 구체적이고 명료한 업무로 만드는데 워크플로우와 오케스트레이션 기술은 효과적으로 활용된다.

빅데이터 처리 프로세스를 위한 워크플로우와 오케스트레이션 도구는 데이터 수집, 가공, 분석 전 과정을 하나의 프로세스 단위로 묶어 주기 때문에 데이터 소스 접근부터 빅데이터 병렬, 분산 처리까지 전 프로세스의 디자인과 구현이 신속하고 정확하게 이루어질 수 있다. 보통 이런 워크플로우는 그림과 도형으로 표현이 되는 GUI 형태로 만드는데, 이렇게 GUI로 도식적으로 표현된 워크플로우는 데이터과학팀 모두가 만들어야 하는 데이터 가공 및 분석 과정에 대한 명료한 비전과 목표를 워크플로우 단위로 제시할 수 있게 한다. 빅데이터 워크플로우는 빅데이터 가공, 분석 과정을 자동화하고 구현하기 편하게 할 뿐만 아니라, 팀단위의 협업도 용이하게 하는 것이다.

분산, 병렬 처리 소프트웨어 프레임워크가 스칼라와 같은 함수형 언어와 결합되어 있는 경우 워크플로우 기술을 통해 기술된 빅데이터 가공, 처리 프로세스는 더욱 강력해진다. 스칼라와 같이 반영(reflection)과 같은 메타프로그래밍이 지원되는 함수형 언어로 기술되는 분산, 병렬 처리 과정은 워크플로우 기술로 표현, 통합되기에 용이하다. 이 때문에 스칼라 언어로 작성된 스파크와 같은 분산, 병렬 처리 소프트웨어로 기술된 빅데이터 처리 과정은 워크플로우 형태로 관리하고 자산화하기 좋다.

애초에 IT 산업계에서 빅데이터라는 말이 화두가 되었던 것은 빅데이터 처리를 위한 자원 관리와 조율을 위한 클라우드 기술과 구글의 맵리듀스, 아파치 하둡과 같은 분산, 병렬 처리 프레임워크 기술 덕분이었다. 이런 이유로 빅데이터 문제를 클라우드와 하둡기술만 쓰면 다 해결할 수 있는 것 같은 인식이 한동안 IT 업계에 널리 퍼져 있었지만, 사실은 빅데이터가 빅데이터를 활용하는 비즈니스에서 가치를 더하기 위해서는 다양한 IT 기술을 적절하게 활용해야 한다는 것을 다시 한번 강조하고 싶다.

그럼에도 불구하고, 빅데이터 붐을 일으킨 하둡과 같은 분산, 병렬 처리 소프트웨어 기술이 여전히 빅데이터 비즈니스의 핵심 기술 중의 하나인 것은 분명하다. 위에서 언급한 네 가지 사항을 염두에 두고, 빅데이터에서 비즈니스 가치를 뽑아내기 위한 현실적인 준비와 실행을 하도록 하자. 더 이상 하둡이나 스파크 인프라를 한번 구축하고 끝나는 식의 빅데이터 기술 붐이 아니라, 빅데이터를 기반으로 한 지능형 서비스와 비즈니스 효율화, 자동화로 우리 사회가 더욱 풍성하고 편리하게 발전하도록 돕는 빅데이터 활용이 되었으면 한다.

[참고문헌]
[1] 김진철, “LHC에서 배우는 빅데이터와 machine learning 활용 방안”, 2016년 9월 28일, A CIO Conversation for Technology Leadership – Breakfast Roundtable 발표 자료
[2] G. GANIS, “PROOF – Present and Future,” Technology Seminar, BNL, April 25 2008.
[3] B. Bellenot, R. Brun, G. Ganis, J. Iwaszkiewicz, F. Rademakers, M. Ballintijn, “PROOF: Parallel ROOT Facility – Poster Presentation.“
[4] Maarten Ballintijn, Gunther Roland, Rene Brun, Fons Rademakers, “The PROOF Distributed Parallel Analysis Framework based on ROOT,” ArXiv preprint: physics/0306110v1, https://arxiv.org/abs/physics/0306110v1.
[5] D. Piparo, “Expressing Parallelism with ROOT,” CHEP 2016.
[6] ROOT Documentation - The Event Display classes, https://root.cern.ch/root/html/GRAF3D_EVE_Index.html .
[7] ROOT Documentation - An event display based on ROOT GUI, https://root.cern/event-display-based-root-gui .
[8] Fabian Glaser, Helmut Neukircheny, Thomas Rings, Jens Grabowski, “Using 맵리듀스 for High Energy Physics Data Analysis,” Proceedings of the 2013 International Symposium on 맵리듀스 and Big Data Infrastructure (MR.BDI 2013), 03-05 December 2013, Sydney, Australia 2013. DOI: 10.1109/CSE.2013.189, IEEE 2013. (https://goo.gl/Fxf9vp)
[9] Jim Pivarski, “Lowering boundaries between data analysis ecosystems,” in Future Trends in Nuclear Physics Computing Workshop, at CEBAF Center, Jefferson Lab ( F113 ), May 3, 2017. (https://www.jlab.org/indico/event/213/)
[10] Evangelos Motesnitsalis, “Physics Data Analytics and Data Reduction with 아파치 스파크,” XLDB 2017, 10 Oct. ~ 12 Oct., 2017.
[11] Oliver Gutsche, Luca Canali, Illia Cremer, Matteo Cremonesi, Peter Elmer, Ian Fisk, Maria Girone, Bo Jayatilaka, Jim Kowalkowski, Viktor Khristenko, Evangelos Motesnitsalis, Jim Pivarski, Saba Sehrish, Kacper Surdy, Alexey Svyatkovskiy, “CMS Analysis and Data Reduction with 아파치 스파크,” ArXiv Preprint:1711.00375, https://arxiv.org/abs/1711.00375 .
[12] Stefano Alberto Russo, “Using the 하둡/맵리듀스 approach for monitoring the CERN storage system and improving the ATLAS computing model,“ CERN Document Archive: CERN-THESIS-2013-067, 2013.
[13], CERN IT-DB, 하둡 and Analytics at CERN IT, Meeting with Microsoft, 7 November 2016. (https://goo.gl/JeGkWU)
[14] C Nieke, M Lassnig, L Menichetti, E Motesnitsalis, and D Duellmann, “Analysis of CERN computing infrastructure and monitoring data,” Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 052029, 2015.
[15] Jim Pivarski, “Reading ROOT data in Java and 스파크,” Princeton University – DIANA Seminar, 7 November, 2016.
[16] S. A. Russo, M. Pinamonti and M. Cobal, “Running a typical ROOT HEP analysis on 하둡 apReduce,” Proceedings of the 20th International Conference on Computing in High Energy and Nuclear Physics (CHEP2013), Journal of Physics: Conference Series 513, 032080, 2014.
[17] Andrew Hanushevsky and Daniel L. Wang, Scalla: Structured Cluster Architecture for Low Latency Access,” Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum, pp. 1168-1175, 2012. (doi>10.1109/IPDPSW.2012.141, https://goo.gl/ATwsoo)
[18] Boduo Li, Edward Mazur, Yanlei Diao, Andrew McGregor, Prashant Shenoy, “SCALLA: A Platform for 스칼라ble One-Pass Analytics using 맵리듀스,” ACM Transactions on Database Systems (TODS), Vol. 37 Iss. 4, December 2012. (https://goo.gl/LJT4o2 , https://goo.gl/UPAS1F)
[19] Z. Baranowski, L. Canali, R. Toebbicke, J. Hrivnac, D. Barberis, “A study of data representation in 하둡 to optimize data storage and search performance for the ATLAS EventIndex,” Journal of Physics: Conf. Series 898, 062020, 2017. (doi :10.1088/1742-6596/898/6/062020)
[20] C. Luzzi, L. Betev, F. Carminati, C. Grigoras, A. Manafov and P. Saiz, “Dynamic parallel ROOT facility clusters on the Alice Environment,” Proceedings of the International Conference on Computing in High Energy and Nuclear Physics 2012 (CHEP2012), Journal of Physics: Conference Series 396, 032068, 2012. (doi:10.1088/1742-6596/396/3/032068)
[21] P. Andrade, B. Fiorini, S. Murphy, L. Pigueiras, M. Santos, “Monitoring Evolution at CERN,” Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 052002, 2015. (doi:10.1088/1742-6596/664/5/052002)
[22] Zbigniew Baranowski, Maciej Grzybek, Luca Canali, Daniel Lanza Garcia, Kacper Surdy, “Scale out databases for CERN use cases,“ Proceedings of the 21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015), Journal of Physics: Conference Series 664, 042002, 2015. (doi:10.1088/1742-6596/664/4/042002)

 

 

*김진철 박사는 1997년 한국과학기술원에서 물리학 학사, 1999년 포항공과대학교에서 인공신경망에 대한 연구로 석사 학위를, 2005년 레이저-플라즈마 가속기에 대한 연구로 박사 학위를 받았다. 2005년부터 유럽입자물리학연구소(CERN)의 LHC 데이터 그리드 구축, 개발에 참여, LHC 빅데이터 인프라를 위한 미들웨어 및 데이터 분석 기술을 연구하였다. 이후 한국과학기술정보연구원(KISTI), 포항공과대학교, 삼성SDS를 거쳐 2013년부터 SK텔레콤에서 클라우드 컴퓨팅과 인공지능 기술을 연구하고 있다. 빅데이터와 인공지능 기술의 기업 활용 방안에 대해 최근 다수의 초청 강연 및 컨설팅을 수행하였다. ciokr@idg.co.kr
 

X