map reduce를 사용하여 Apache 액세스 로그와 Tomcat 로그를 차례로 파싱해야한다는 요구 사항이 있습니다. Tomcat 로그에서 추출되는 필드와 아파치 로그에서 벗어나는 필드는 거의 없습니다. 추출한 필드를 타임 스탬프를 기준으로 병합/매핑하고 이러한 매핑 된 필드를 전통적인 관계형 데이터베이스 (예 : MySQL)로 내 보내야합니다.구문 분석 된 로그 데이터를 hadoop에 저장하고 관계형 데이터베이스로 내보내기
정규식이나 돼지를 사용하여 정보를 구문 분석하고 추출 할 수 있습니다. 내가 직면 한 과제는 두 로그의 추출 된 정보를 단일 집계 형식 또는 파일로 매핑하는 방법과이 데이터를 MYSQL로 내보내는 방법에 관한 것입니다.
거의 접근 나는
(1) 생각하고는) 맵의 출력은 별도의 파일에 모두 구문 분석 아파치 액세스 로그와 바람둥이 로그에서 줄이고 다시 타임 스탬프를 기반으로 하나의 파일()로 그 병합 작성합니다. 이 데이터를 MySQL로 내 보냅니다.
2) 하둡에서 테이블 형식의 데이터를 저장하고
3 MySQL의
에 그것을 수출) 직접지도의 출력이 JDBC를 사용하여 MySQL로 감소 작성 HBase를 또는 하이브를 사용합니다.어떤 접근 방식이 가장 실용적 일 수 있으며 알고있는 다른 대안 솔루션을 제안하십시오.
감사합니다. Eric mapreduce에서 데이터베이스에서 데이터를 병합하는 약간의 변경으로 파일 기반 접근 방식을 사용하고 있습니다. 두 로그의 구문 분석 된 데이터는 두 개의 별도 스테이징 테이블에 저장되며 이러한 스테이징 테이블은 조인되어 최종 테이블에 저장 될 최종 집계 데이터를 얻습니다. 이 많은 데이터를 데이터베이스에 저장하는 것이 적합한 지 여부에 대한 질문으로, 구문 분석 된 데이터는 필터링 된 유용한 데이터를 집계하여 로그 파일 레코드와 비교하면 훨씬 적습니다. 관계형 데이터베이스에 데이터를 저장하는 이유는 기존 앱이 해당 데이터에 액세스 할 수 있도록 허용하기 위해서입니다. –