2011-12-29 4 views
2

우리는 실시간으로 검색해야하는 여러 웹 서버에 거대한 로그 파일 (~ 100s of Gigs)을 가지고 있습니다. 이 로그 파일은 여러 앱에서 여러 번 기록됩니다. 최근에 일부 서버에 hadoop 클러스터를 설치했습니다. 이러한 로그에 대한 검색을 구현하기 위해 필자는이 디자인에 대해 생각해 보았습니다. 웹 서버에서 실행되는 프로세스로 로그의 역 색인을 생성하고 (웹 서버 자체에서) 메모리에 캐시하고 flume을 통해 HDFS로 푸시합니다 캐시가 가득 차면 Hive에 저장됩니다 (LRU 캐시와 비슷합니다). 이것은 무엇인가가 검색 될 때 두 가지 방법으로 도움이됩니다. 대부분의 최근 로그는 메모리 캐시에서 반환되며 빠르며 오래된 로그가 디스크에서 반환됩니다. 그리고 사용자는 최신 로그를 먼저보고 싶어하므로이 기술이 효과적입니다. 이 디자인이 제대로 작동하고 확장되는지 누군가가 확인할 수 있습니까? 더 좋은 대안이 있습니까?hadoop을 사용한 로그 검색

감사

답변

0

당신은 당신의 오래된 로그에 더 많은 실시간 액세스를 제공하는 HBase와의 역 색인을 저장할 수 있습니다.

HBase는 메모리 캐시의 대체 가능한 대안이기도합니다. 스토리지 플랫폼을 분할하지 않고 통합하려는 경우이 작업을 수행 할 수 있습니다. memcached 또는 redis보다 분명히 느립니다.


완전히 다른 접근 방식은 Lucene/Solr을 사용하여 로그를 색인화 할 수 있습니다. 이것은 검색을위한 좋은 기능을 많이 가지고 있습니다.