MapReduce에서 Reuse JVM을 이용한 대규모 스몰파일 처리성능 향상 방법에 관한 연구 A Study on the Improving Performance of Massively Small File Using the Reuse JVM in MapReduce원문보기
With the widespread use of smartphones and IoT (Internet of Things), data are being generated on a large scale, and there is increased for the analysis of such data. Hence, distributed processing systems have gained much attention. Hadoop, which is a distributed processing system, saves the metadata...
With the widespread use of smartphones and IoT (Internet of Things), data are being generated on a large scale, and there is increased for the analysis of such data. Hence, distributed processing systems have gained much attention. Hadoop, which is a distributed processing system, saves the metadata of stored files in name nodes; in this case, the main problems are as follows: the memory becomes insufficient; load occurs because of massive small files; scheduling and file processing time increases because of the increased number of small files. In this paper, we propose a solution to address the increase in processing time because of massive small files, and thus improve the processing performance, using the Reuse JVM method provided by Hadoop. Through environment setting, the Reuse JVM method modifies the JVM produced conventionally for every task, so that multiple tasks are reused sequentially in one JVM. As a final outcome, the Reuse JVM method showed the best processing performance when used together with CombineFileInputFormat.
With the widespread use of smartphones and IoT (Internet of Things), data are being generated on a large scale, and there is increased for the analysis of such data. Hence, distributed processing systems have gained much attention. Hadoop, which is a distributed processing system, saves the metadata of stored files in name nodes; in this case, the main problems are as follows: the memory becomes insufficient; load occurs because of massive small files; scheduling and file processing time increases because of the increased number of small files. In this paper, we propose a solution to address the increase in processing time because of massive small files, and thus improve the processing performance, using the Reuse JVM method provided by Hadoop. Through environment setting, the Reuse JVM method modifies the JVM produced conventionally for every task, so that multiple tasks are reused sequentially in one JVM. As a final outcome, the Reuse JVM method showed the best processing performance when used together with CombineFileInputFormat.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 하둡에서 대량의 스몰파일이 갖는 문제점을 해결하기 위해 하둡 ReuseJVM을 이용한 대량의 스몰파일 처리성능 향상방법을 제안하였다. 하둡에서 제공하는 ReuseJVM을 사용하여 기존에 스몰 파일 하나마다 생성되던 JVM을 설정값을 수정하여 다수의 스몰파일이 하나의 JVM에서 처리되도록 하였다.
따라서 위 두 문제점을 극복하고 스몰 파일 처리성능 향상을 위해서는 처리 과정에서 불필요한 부분을 줄이고 처리 과정을 간소화하는 방법이 요구된다. 본 논문에서는 하둡에서 제공하는 ReuseJVM 방식을 이용하여 대량의 스몰파일 처리성능 향상 방법을 제안한다.
본 장에서는 하둡에서 대량의 스몰파일 처리성능을 향상하기 위하여 Reuse JVM을 이용한 방법을 제안한다.
제안 방법
HAR방식의 처리시간은 2분 39초, 2분 30초로 빅파일보다 향상된 처리속도를 보였지만 HAR파일로 변환하는 과정에 많은 시간이 소요되는 문제가 있다.6MB로 분할한 스몰파일 실험결과 3MB로 분할한 스몰파일 또한 HAR파일로 변환하시는 과정에 많은 시간이 소요될 것으로 예상하여 3MB로 분할한 스몰파일은 실험을 진행하지 않았다.
실험환경은 같은 성능의 컴퓨터 6대에 Table3과 같은 환경의 VMware가상머신을 생성하여 네임노드 1대, 보조 네임노드 1대, 데이터 노드 5대로 실험 환경을 구축하였다.논문에서 제안하는 Reuse JVM 방식의 처리시간을 비교 평가하기 위해 맵리듀스 프로그램을 사용하여 항공 출발 지연 건수를 연도별, 월별로 출력하는 실험을 진행하였다.
처리시간을 비교한다.또한, 기존 데이터 병합 방법과 CombineFileInputFormat방법에 Reuse JVM방법을 더하여 실험한 뒤 처리성능을 평가한다. 실험을 위해 사용한 데이터 셋은 미국 규격 협회 (American Standards Association)에서 제공하는 미국 항공편 운항 통계 데이터 셋으로 1987년도부터 2008년도까지 총 22개의 CSV(commaeparatedval-ues)파일이며 각 파일은 29개의 칼럼으로 구성되어있다.
Fig3은 임으로 Reuse JVM 파라미터 설정값을 3으로 설정 후 잡이 처리되는 과정을 나타내고 있다.본 논문에서는 위 Fig3에서 보이는 것과 같이 ReuseJVM을 사용하여 다수의 맵 태스크를 하나의 JVM에서 순차적으로 실행되게 한다. 처리 과정은 Fig2와 동일하게 2단계로 진행된다.
본 장에서는 기존 방식과 3장에서 제안한 Reuse JVM방식의 처리시간을 비교한다.또한, 기존 데이터 병합 방법과 CombineFileInputFormat방법에 Reuse JVM방법을 더하여 실험한 뒤 처리성능을 평가한다.
ReuseJVM의 설정값을 -1로 사용하였을 때 가장 좋은 처리성능을 보였고, Reuse JVM설정값 2부터 6까지는 점점 처리속도가 상승했지만, 그 후 ReuseJVM설정값 7부터 11까지는 04분 40초대로 비슷한 성능을 보이는 것을 알 수 있다. 추후 ReuseJVM을 사용한 모든 실험에는 처리성능이 가장 우수했던 -1로 ReuseJVM의 설정값을 적용하고 동일하게 실험을 진행하였다.
제안하였다. 하둡에서 제공하는 ReuseJVM을 사용하여 기존에 스몰 파일 하나마다 생성되던 JVM을 설정값을 수정하여 다수의 스몰파일이 하나의 JVM에서 처리되도록 하였다.3MB로 분할한 3835개의 스몰파일과 6 MB로 분할한 1922개의 스몰파일을 데이터 셋으로 ReuseJVM을 이용한 방법과 기존방식을 비교 평가한 결과 단일로 사용했을 때 ReuseJVM을 이용한 방식이 CombineFileInputFormat 다음으로 향상된 성능을 보였으며, 빅파일에도 성능향상의 효과가 있는 것을 알 수 있었다.
대상 데이터
실험에 필요한 스몰파일을 얻기 위해 리눅스 (Linux)Split명령어를 사용해서 기존 22개의 미국항공편 운항 통계 데이터 셋을 6MB와 3MB로 분할하여 Table2와 같은 데이터 셋을 생성하였다. 빅파일, 3MB로 분할한 스몰파일, 6MB로 분할한 스몰 파일 총 3가지 데이터 셋을 사용하여 실험을 진행한다. 실험환경은 같은 성능의 컴퓨터 6대에 Table3과 같은 환경의 VMware가상머신을 생성하여 네임노드 1대, 보조 네임노드 1대, 데이터 노드 5대로 실험 환경을 구축하였다.
실험을 위해 사용한 데이터 셋은 미국 규격 협회 (American Standards Association)에서 제공하는 미국 항공편 운항 통계 데이터 셋으로 1987년도부터 2008년도까지 총 22개의 CSV(commaeparatedval-ues)파일이며 각 파일은 29개의 칼럼으로 구성되어있다. 실험에 필요한 스몰파일을 얻기 위해 리눅스 (Linux)Split명령어를 사용해서 기존 22개의 미국항공편 운항 통계 데이터 셋을 6MB와 3MB로 분할하여 Table2와 같은 데이터 셋을 생성하였다. 빅파일, 3MB로 분할한 스몰파일, 6MB로 분할한 스몰 파일 총 3가지 데이터 셋을 사용하여 실험을 진행한다.
또한, 기존 데이터 병합 방법과 CombineFileInputFormat방법에 Reuse JVM방법을 더하여 실험한 뒤 처리성능을 평가한다. 실험을 위해 사용한 데이터 셋은 미국 규격 협회 (American Standards Association)에서 제공하는 미국 항공편 운항 통계 데이터 셋으로 1987년도부터 2008년도까지 총 22개의 CSV(commaeparatedval-ues)파일이며 각 파일은 29개의 칼럼으로 구성되어있다. 실험에 필요한 스몰파일을 얻기 위해 리눅스 (Linux)Split명령어를 사용해서 기존 22개의 미국항공편 운항 통계 데이터 셋을 6MB와 3MB로 분할하여 Table2와 같은 데이터 셋을 생성하였다.
빅파일, 3MB로 분할한 스몰파일, 6MB로 분할한 스몰 파일 총 3가지 데이터 셋을 사용하여 실험을 진행한다. 실험환경은 같은 성능의 컴퓨터 6대에 Table3과 같은 환경의 VMware가상머신을 생성하여 네임노드 1대, 보조 네임노드 1대, 데이터 노드 5대로 실험 환경을 구축하였다.논문에서 제안하는 Reuse JVM 방식의 처리시간을 비교 평가하기 위해 맵리듀스 프로그램을 사용하여 항공 출발 지연 건수를 연도별, 월별로 출력하는 실험을 진행하였다.
성능/효과
하둡에서 제공하는 ReuseJVM을 사용하여 기존에 스몰 파일 하나마다 생성되던 JVM을 설정값을 수정하여 다수의 스몰파일이 하나의 JVM에서 처리되도록 하였다.3MB로 분할한 3835개의 스몰파일과 6 MB로 분할한 1922개의 스몰파일을 데이터 셋으로 ReuseJVM을 이용한 방법과 기존방식을 비교 평가한 결과 단일로 사용했을 때 ReuseJVM을 이용한 방식이 CombineFileInputFormat 다음으로 향상된 성능을 보였으며, 빅파일에도 성능향상의 효과가 있는 것을 알 수 있었다. CombineFileInputFormat방식에 ReuseJVM을 이용한 방법을 추가하여 처리한 결과 기존 빅파일 처리와 비슷하거나 더욱더 향상된 우수한 성능을 보였다.
CombineFileInputFormat방식에 ReuseJVM을 적용한 결과 3MB분할한 스몰 파일은 각각 174개의 매퍼를 사용하여 03분 15초, 89개의 매퍼를 사용하여 03분 20초의 시간이 소요되었고, 6MB분할한 스몰파일은 각각 174개의 매퍼를 사용하여 03분 02초, 89개의 매퍼를 사용하여 03분의 시간이 소요되었다.CombineFileInputFormat과 Reuse JVM을 함께 사용한 결과 기존 빅파일 처리 시간과 비슷하거나 더욱더 향상된 성능을 보였다. 11GB크기보다 더욱 큰 대량의 스몰파일을 데이터 셋으로 실험한다면 지금보다 더 우수한 성능을 보일 것으로 예상한다.
3MB로 분할한 3835개의 스몰파일과 6 MB로 분할한 1922개의 스몰파일을 데이터 셋으로 ReuseJVM을 이용한 방법과 기존방식을 비교 평가한 결과 단일로 사용했을 때 ReuseJVM을 이용한 방식이 CombineFileInputFormat 다음으로 향상된 성능을 보였으며, 빅파일에도 성능향상의 효과가 있는 것을 알 수 있었다. CombineFileInputFormat방식에 ReuseJVM을 이용한 방법을 추가하여 처리한 결과 기존 빅파일 처리와 비슷하거나 더욱더 향상된 우수한 성능을 보였다.하둡아카이브 같은 경우 파일을 병합하여 스몰파일의 개수가 줄어들기 때문에 생성되는 JVM의 수가 많지 않아 ReuseJVM을 사용했을 경우 처리속도가 저하되었다.
CombineFileInputFormat방식은 기존 빅파일 처리 시간보다 성능이 저하되지만, 스몰파일을 데이터 셋으로 실험한 결과 중 단일로 실험했을 때 가장 우수한 처리성능을 보였다. CombineFileInputFormat방식에 ReuseJVM을 적용한 결과 3MB분할한 스몰 파일은 각각 174개의 매퍼를 사용하여 03분 15초, 89개의 매퍼를 사용하여 03분 20초의 시간이 소요되었고, 6MB분할한 스몰파일은 각각 174개의 매퍼를 사용하여 03분 02초, 89개의 매퍼를 사용하여 03분의 시간이 소요되었다.CombineFileInputFormat과 Reuse JVM을 함께 사용한 결과 기존 빅파일 처리 시간과 비슷하거나 더욱더 향상된 성능을 보였다.
소요되었다. CombineFileInputFormat방식은 기존 빅파일 처리 시간보다 성능이 저하되지만, 스몰파일을 데이터 셋으로 실험한 결과 중 단일로 실험했을 때 가장 우수한 처리성능을 보였다. CombineFileInputFormat방식에 ReuseJVM을 적용한 결과 3MB분할한 스몰 파일은 각각 174개의 매퍼를 사용하여 03분 15초, 89개의 매퍼를 사용하여 03분 20초의 시간이 소요되었고, 6MB분할한 스몰파일은 각각 174개의 매퍼를 사용하여 03분 02초, 89개의 매퍼를 사용하여 03분의 시간이 소요되었다.
실험결과를 얻었다.ReuseJVM의 설정값을 -1로 사용하였을 때 가장 좋은 처리성능을 보였고, Reuse JVM설정값 2부터 6까지는 점점 처리속도가 상승했지만, 그 후 ReuseJVM설정값 7부터 11까지는 04분 40초대로 비슷한 성능을 보이는 것을 알 수 있다. 추후 ReuseJVM을 사용한 모든 실험에는 처리성능이 가장 우수했던 -1로 ReuseJVM의 설정값을 적용하고 동일하게 실험을 진행하였다.
예를 들어 사용자가 SetValue를 10 으로 설정하였다면, 10개의 태스크가 하나의 JVM에서 순차적으로 실행된다.본 논문에서는 스몰 파일마다 JVM이 생성되는 기존방식과는 달리 ReuseJVM 을 이용하여 JVM생성시간을 감소시키고 처리성능을 향상한다.
후속연구
CombineFileInputFormat과 Reuse JVM을 함께 사용한 결과 기존 빅파일 처리 시간과 비슷하거나 더욱더 향상된 성능을 보였다. 11GB크기보다 더욱 큰 대량의 스몰파일을 데이터 셋으로 실험한다면 지금보다 더 우수한 성능을 보일 것으로 예상한다.
태스크마다 JVM이 실행되는 시간은 1초 내외로 짧은 시간이지만, 스몰 파일과 같이 짧은 시간 안에 수행하는 파일이 많은 경우 처리시간에 영향을 줄 수 있다. ReuseJVM을 이용한 방법을 통해 하둡 플랫폼에서 대량의 스몰파일에 대한 한계를 극복하고, 각각의 스몰파일에서 생성되는 JVM생성시간을 줄여 처리성능을 향상할 수 있을 것으로 예상한다.
하둡아카이브 같은 경우 파일을 병합하여 스몰파일의 개수가 줄어들기 때문에 생성되는 JVM의 수가 많지 않아 ReuseJVM을 사용했을 경우 처리속도가 저하되었다.본 논문은 대량의 스몰 파일 처리성능은 향상했지만 네임노드 메모리 부족 문제는 해결하지 못한 한계가 있다.향후에는 네임노드의 메모리 부족 문제를 해결하는 방법에 관련된 연구와 스몰파일의 개수에 따른 가장 최적화된 ReuseJVM파라미터 설정값을 찾는 알고리즘에 대해 연구할 예정이다.
본 논문은 대량의 스몰 파일 처리성능은 향상했지만 네임노드 메모리 부족 문제는 해결하지 못한 한계가 있다.향후에는 네임노드의 메모리 부족 문제를 해결하는 방법에 관련된 연구와 스몰파일의 개수에 따른 가장 최적화된 ReuseJVM파라미터 설정값을 찾는 알고리즘에 대해 연구할 예정이다.
C.B. Kim and J.P. Chung, "Processing Method of Mass Small File using Hadoop Platform," Journal of Advanced Navigation Technology, Vol. 18, No. 4, pp. 401-408, 2014.
W.J. Yi and S. Park, “A Data Merging Technique based on Clustering for Solving Problems of Massive Small Files in Hadoop with Performance Enhancement of Map/ Reduce,” Proceeding of the Winter Conference of the Korean Institute of Information Scientists and Engineers, pp. 180-182, 2014.
H.K. Oh, K.Y. Kim, J.M. Hwang, J.H. Park, J.T. Lim, K.S. Bok, et al., "A Distributed Cache Management Scheme for Efficient Accesses of Small Files in HDFS," Journal of the Korea Contents Association, Vol. 14, No. 11, pp. 28-38, 2014.
W. Tom, Hadoop : The Definitive Guide, Hanbit Media, Seoul, Korea, 2013.
K.Y. Han, Do it! Hadoop with Big Data, Easys Pub, Seoul, Korea, 2013.
IDG Korea, Open DB Framework for Big Data: Understanding Hadoop, IDG Tech Report, pp. 1-9, 2012.
D. Chandrasekar, R. Dakshinamurthy, P.G. Sechakumar, and B. Prabavathy, "A Novel Indexing Scheme for Efficient Handling of Small Files in Hadoop Distributed File System," Proceeding of International Conference on Computer Communication and Informatics, pp. 1-8, 2013.
B. Dong, J. Qiu, O. Zheng, X.Zhong, J.Li, and Y. Li, "A Novel Approach to Improving the Efficiency of Storing and Accessing Small Files on Hadoop:a Case Study by Power Point Files," Proceeding of Institute of Electrical and Electronics Engineers International Conference on Services Computing, pp. 65-72, 2010.
H.W. Kim, S.E. Park, and S.Y. Euh, "The Distributed Encryption Processing System for Large Capacity Personal Information based on MapReduce," Journal of the Korea Institute of Information and Communication Engineering, Vol. 18, No. 3, pp. 576-585, 2014.
T.W. Kim, H.J. Chung, J.M. Kim, "The Creation and Placement of VMs and Tasks in Virtualized Hadoop Cluster Environment," Journal of Korea Multimedia Society, Vol. 15, No. 12, pp. 1-7, 2012.
U.G. Kim, J.Y. Kim, “Research on Object- Oriented Relational Database Model and its Utilization for Dynamic Geo-spatial Service through Next Generation Ship Navigation System,” IT CoNvergence PRActice (INPRA), Vol. 1, No. 2, pp. 1-10, 2013.
S. Vidalis, O. Angelopoulou, "Assessing Identity Theft in the Internet of Things," IT CoNvergence PRActice(INPRA), Vol. 2, No. 1, pp 15-21, 2014.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.