2010-07-28 1 views
0

집계 된 로그에서 데이터를 검색하는 방법을 알고 싶습니다. 이것은 내가 무엇을 가지고 :
- 30 기가 바이트 HDFS에로드 압축되지 않은 로그 데이터의 일상 (이것은 1백기가바이트에 대해 곧 성장할 것)에 대한
이 내 생각이다 :
-이 데이터가 돼지
로 처리되어 매일 밤 - (로그 데이터를 무한대로 저장됩니다)집계 된 웹 로그 데이터에서 정보를 검색하는 방법?

HBase를에 로그 항목 및 하중이에서 - timestampurl, user_id이 (말할 수, 이것이 내가 필요한 모든)
: 로그는, 분할을 읽고, 사용자 정의 UDF는 같은 데이터를 검색하는

그런 다음 주어진 시간 범위 내에서 특정 페이지를 보았던 사용자를 알고 싶다면 wh를 검색하지 않고 HBase를 신속하게 쿼리 할 수 ​​있습니다 각 쿼리와 함께 로그 데이터를 기록합니다 (그리고 빠른 응답을 원합니다 - 분만 허용됩니다). 동시에 여러 쿼리가 수행됩니다.

이 워크 플로에 대해 어떻게 생각하십니까? 이 정보를 HBase에로드하는 것이 합리적일까요? 다른 옵션은 무엇이며 어떻게 내 솔루션과 비교합니까? 모든 의견/질문과 대답에 감사드립니다. 미리 감사드립니다.

답변

0

Hadoop을 사용하면 항상 두 가지 중 하나 (처리 또는 쿼리 중 하나)를 수행합니다.

당신이 찾고있는 것을 위해 나는 HIVE http://hadoop.apache.org/hive/을 사용할 것을 제안 할 것입니다. 데이터를 가져 와서 M/R 작업을 만들어 처리하고 HIVE 테이블로 원하는 데이터를 밀어 넣을 수 있습니다. 거기에서 (당신이 말할 필요가없는 데이터를 보지 않으려면 속도면에서 적절할 수 있으므로 데이터를 파티션 할 수도 있습니다.) 여기에서 원하는대로 데이터 결과를 쿼리 할 수 ​​있습니다. 여기에 아주 좋은 온라인 튜토리얼이 있습니다. http://www.cloudera.com/videos/hive_tutorial

이 문제를 해결할 수있는 방법은 많이 있지만 HBase는 배우기 위해 연습에 필요한 모든 서버를 설정하고 싶지 않으면 HBase가 약간 과장된 것처럼 들립니다. 수천 명의 사람들이 동시에 정보를 얻으 려한다면 HBase가 좋을 것입니다.

Cloudera의 새로운 가져 오기 서버 인 FLUME을 조사하고 싶을 수도 있습니다. 어떤 장소에서 HDFS로 바로 파일을 가져옵니다. http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/

+0

저는 하이브에 익숙하며 쿼리를 위해 사용했습니다.하지만 너무 느립니다. 한달 동안의 로그 분석 (최대 3TB)은 현재 하드웨어에서 약 2-3 시간이 소요되며 결과는 분 (10 분) 이내로 유지하려고합니다. 지금 Hive 또는 Pig를 사용하고 있습니다. (다른 항목이 없기 때문에) 임시 쿼리를 수행하고 있지만 다른 솔루션이나 아이디어를 찾고 있습니다. – wlk