2017-12-18 15 views
-1

저는 각각 200GB의 크기를 포함하는 약 10 개의 파일을받는 한 프로젝트에서 작업하고 있습니다. 내 프로젝트 요구 사항은 각 파일에서 데이터를 추출하고 다른 파일과 결합하여 데이터를 추출하는 것입니다.Java에서 빅 데이터 처리

E.G 나는 계정 ID가있는 파일 1.txt를 가지고 있으며 계정 ID와 계정 이름이있는 파일 2.txt를 가지고 있습니다. 첫 번째 파일의 계정 ID를 기반으로 두 번째 파일에서 데이터를 추출해야합니다.

이렇게하면 10 개의 파일 각각에 대해 조작을 수행하고 최종 출력 파일을 만들어야합니다.

저는 현재 자바에서이 과정을 진행하고 있습니다. 대략 4 ~ 5 시간이 걸립니다.

변경으로 성능을 향상시킬 수 있습니까? 자바와 통합하여 성능을 향상시킬 수있는 기술이나 도구 또는 프레임 워크가 있습니까?

다음 접근 방식을 사용했습니다.

1) Apache 드릴 - 조인 쿼리를 수행 중입니다. 결과 : 파일 크기가 너무 많아서 드릴 드릴 다운 예외가 발생합니다.

2) Apache Beam- 병렬 처리를 사용하여 파일에 대한 결합을 수행하고 있습니다. 결과 : 그룹별로 기능 부족으로 메모리 부족 예외가 표시됩니다.

이 데이터는 hadoop에서 읽습니다.

+0

왜 자바 지역의 처리를 위해 데이터를 다운로드해야합니까? 대신 Hive와 같은 도구를 사용하여 데이터를 직접 처리 할 수 ​​있습니까? –

+0

빔 실행자 또는 드릴 비트 힙 크기를 늘렸습니까? Hive, Spark 또는 Pig는 대부분의 하프 배포본에서 일반적인 훌륭한 도구입니다. –

+0

Beam 코드를 포함하고 Beam SDK의 버전과 사용중인 러너를 명확히하십시오. – jkff

답변

-1

Spark가 Map Reduce보다 빠른 메모리 내장 모델을 사용하기 때문에 Hadoop과 Spark를 사용하는 것이 좋습니다. 어쩌면이 두 링크는 ​​당신을 도울 것입니다 :

https://content.pivotal.io/blog/3-key-capabilities-necessary-for-text-analytics-natural-language-processing-in-the-era-of-big-data

https://community.hortonworks.com/articles/84781/spark-text-analytics-uncovering-data-driven-topics.html

+0

Drill은 또한 hadoop 데이터 처리에 메모리 모델을 사용합니다. –

+0

@ cricket_007 OP가 내 대답 후에 몇 가지 추가 정보 (드릴 및 빔 정보 포함)를 추가했습니다. 그래서 나는 그가 사용하는 도구를 알 수 없었다. 왜 나를 downvoting ??? – Uata

+0

제 잘못입니다. "스파크 제안"+ [일부 링크는 전적으로 답변이 아닙니다] (https : //meta.stackexchange.co.kr/questions/8231/are-answers-that-just-contain-links-other-really-good-answers)를 사용하십시오. 또한 MapReduce가 사용되고 있다고 제안하지 않았습니다. "Java 프로세스"는 이미 Spark이 될 수 있습니다. –