Top

Hadoop과 Solr를 이용한 기업용 검색 시스템 구축 [빅데이터 처리 능력을 높이는]

  • 원서명Scaling Big Data with Hadoop and Solr (ISBN 9781783281374)
  • 지은이리쉬케쉬 카람벨카
  • 옮긴이양원국
  • ISBN : 9788960776302
  • 18,000원
  • 2014년 10월 31일 펴냄
  • 페이퍼백 | 172쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

솔라(Solr)를 사용해 빅데이터 검색을 할 수 있는 시스템을 구축하는 법을 알려준다. 검색 시스템이 다루는 데이터가 커짐에 따라 솔라만을 단독으로 사용했을 때 부족한 점을 하둡(Hadoop)이나 다른 솔루션으로 보완하는 다양한 방법도 설명한다. 검색 엔진의 핵심 요소인 색인이 빅데이터에서 어떻게 다뤄지는지를 이해하게 해주고, 실사용 시스템 구축 시 이슈가 되는 최적화 기술을 알려준다. 마지막으로 실사용 시스템을 구축하려는 독자에게 도움이 되도록 실제 구축 사례를 소개한다.

이 책에서 다루는 내용

아파치 하둡(Hadoop)과 하둡의 에코시스템, 아파치 솔라(Solr) 설명

기업용 빅데이터 검색을 설계하고 적용과 장점을 이해하면서 여러 산업 기반의 아키텍처를 학습

데이터를 확장하면서 빅데이터 검색을 세부 설정해 성능을 최대화

솔라를 NOSQL 데이터베이스로 사용

빅데이터 인스턴스를 설정해 실세계에 적용

사용 사례를 통해 실제 하둡과 솔라를 연동해 업무에 적용

데이터를 색인하는 맵리듀스(MapReduce) 태스크를 작성

오늘날 시장에서 사용할 수 있는 하둡과 솔라를 응용하는 기술에 대한 이해

이 책의 대상 독자

하둡과 솔라를 사용해 기업용 고속 검색 엔진 플랫폼을 구축하기 원하는 개발자를 위한 안내서다. 하둡과 솔라에 대한 경험은 없지만 하둡 플랫폼을 확장해 기업용 검색으로 사용하려는 자바 프로그래머를 대상으로 한다.

이 책의 구성

1장, ‘하둡과 맵리듀스를 이용한 데이터 처리’는 아파치 하둡과 하둡의 에코 시스템인 HDFS, 맵리듀스를 소개한다. 또한, 맵리듀스 프로그램 작성법, 하둡 클러스터 설정 방법, 설정파일, 클러스터 관리를 배운다.

2장, ‘솔라 이해’는 아파치 솔라를 소개한다. 솔라 인스턴스를 설정하는 법을 설명한다. 솔라 저장소에 데이터를 적재하고 색인(index)을 만드는 법과 솔라로 효율적으로 검색하는 법을 설명한다. 아파치 솔라의 흥미로운 기능을 논의한다.

3장, ‘하둡과 솔라를 사용한 빅데이터 처리’는 두 분야를 합쳐 빅데이터를 다루는 여러 접근방법을 보여주고 이 둘의 장점과 사용성을 논할 것이다.

4장, ‘빅데이터 기반 대형 색인 생성’은 NoSQL과 분산 검색의 개념을 설명한다. 빅데이터 검색을 다루는 알고리즘인 샤드(shard)와 색인 사용을 알아본다. 또한, 솔라클라우드(SolrCloud) 설정과 릴리(Lily)를 논의한다.

5장, ‘빅데이터 확장으로 검색 성능 향상’은 데이터가 증가함에 따라 빅데이터 검색 인스턴스 성능을 여러 단계에서 최적화하는 법을 다룬다. 배포한 인스턴스에 사용자가 구현하는 여러 성능 향상 기술을 다룬다.

부록 A, ‘빅데이터 검색 사용 사례’는 업계의 사용 사례와 하둡과 솔라를 사용한 빅데이터 연구 사례를 살펴본다.

부록 B, ‘아파치 솔라를 사용한 기업용 검색 구현’은 사용자가 아파치 솔라를 시험해 보도록 솔라 스키마(schema) 예제를 제공한다.

부록 C, ‘솔라 색인을 만드는 맵리듀스 프로그램 예제’는 솔라 색인를 생성하는 방식 중 한 방식인 분산 생성하는 맵리듀스 예제를 보여준다.

저자/역자 소개

저자 서문

이 책은 데이터를 확장하면서 고성능 기업 검색 엔진을 구축하는 단계별 안내서다. 아파치 하둡과 솔라 기초를 시작으로 검색을 최적화하는 고급 주제와 함께 흥미로운 실사용 사례와 자바 예제 코드를 깊이 있게 다룬다.

이 책에서는 솔라와 하둡 그리고 하둡 에코 시스템을 비롯한 빅데이터 기술의 기본을 알려주고 하둡과 솔라로 빅데이터를 확장하는 여러 접근방식을 설명한다. 샤드와 색인이 빅데이터에 어떻게 작용하는지를 다룬 후 빅데이터 검색 성능 최적화를 설명한다. 마지막으로 빅데이터를 확장하는 실제 사례를 알아본다.

기업용 분산 검색 플랫폼 구축법과 제한된 자원을 최대한 활용해 검색 결과를 극대화하는 최적화 방식을 배울 수 있는 책이다.

저자 소개

리쉬케쉬 카람벨카(Hrishikesh Karambelkar)

전문 기술과 다양한 사업 경험이 있는 소프트웨어 아키텍트다. 아파치 하둡, 솔라 같은 기술을 다루고 다음 세대 솔루션 제품군을 설계하는 데 전문가다. 국제 회의에 데이터베이스, 그래프, 검색 분야에 다양한 논문을 냈다. 자신의 기술 노트에서 아파치 하둡과 솔라에 관련된, 쉽지 않은 문제를 많이 다뤘다.

옮긴이의 말

수년 전에 대용량 검색 요건을 해결하는 솔루션 개발팀에 속하면서 솔라를 처음 접하게 되었다. 이때 솔루션으로 고려한 오픈소스는 루씬 기반의 검색 플랫폼으로 아파치 솔라와 일래스틱서치(ElasticSearch)가 있었다. 두 오픈소스를 면밀히 검토 끝에 당시 요구 조건에 더 부합했던 새로 태어난 지 얼마 안 된 일래스틱서치를 선택했다. 그렇지만 당시에 솔라는 일래스틱서치에 비해 오랜 역사와 많은 사용자를 가지고 예측대로 동작한다는 점과 신뢰성을 지닌 장점이 있어서 엔터프라이즈 환경에 적합한 검색 플랫폼이란 것을 알게 되었다.

일래스틱서치가 나온 이후 솔라와 일래스틱서치는 서로의 장단점을 보완해 가며 많이 발전해왔고, 특히 솔라 4(일명 솔라클라우드)에서 대량의 데이터 처리를 위한 근실시간 분산검색, 고가용성 부분에 많은 향상이 있었다. 이처럼 솔라는 계속 발전 중이고, 앞으로도 다양한 대용량 검색 서비스의 검색 플랫폼으로 솔라를 사용할 것으로 예상된다.

이 책에서는 대용량 검색 엔진의 양대 산맥인 솔라와 일래스틱서치 중 솔라로 대용량 검색 시스템을 구축하는 방법을 알려준다. 또한, 하둡을 이용해 사용 영역을 넓히고 최적화하는 방법을 알려준다. 검색 플랫폼만을 프로젝트에 적용하다 보면 대량의 데이터를 단시간 안에 서비스에 올려야 하는 일에 직면하게 되는데, 이를 하둡으로 해결하는 방식은 주목할 만하다. 이 책이 솔라와 하둡을 연동해 응용하는 일을 주로 다루고 있으므로, 솔라 자체를 더 자세히 알고 싶다면 에이콘출판사에서 출간된 『아파치 Solr 4 구축과 관리』를 참고하길 바란다.

마지막으로 오픈소스로 대용량 검색을 처리하기 위해 같이 씨름했던 실시간 검색팀 여러분과, 번역을 하느라 약속에 많이 불참한 것을 이해해준 친구들, 말없이 지원해 주신 부모님께 감사의 말씀을 전한다.

옮긴이 소개

양원국

하둡 기반 응용 시스템 운용 경험과 다수의 빅데이터 관련 프로젝트 수행 경험이 있는 개발자다. 대용량 실시간/스트리밍 처리에 관심이 있다.

목차

목차
  • 1장 하둡과 맵리듀스를 이용한 데이터 처리
  • 아파치 하둡과 하둡 에코 시스템 이해
  • __아파치 하둡 에코 시스템
  • ____아파치 HBase
  • ____아파치 피그
  • ____아파치 하이브
  • ____아파치 주키퍼
  • ____아파치 머하웃
  • ____아파치 HCatalog
  • ____아파치 암바리
  • ____아파치 에이브로
  • ____아파치 스쿱
  • ____아파치 플룸
  • 대량 데이터를 HDFS에 저장
  • __HDFS 아키텍처
  • ____네임노드
  • ____데이터노드
  • ____세컨더리네임노드
  • ____데이터 조직화
  • ____HDFS 접근
  • 하둡데이터를 분석하는 맵리듀스 생성
  • __맵리듀스 아키텍처
  • ____잡트래커
  • ____태스크트래커
  • 하둡 설치 및 구동
  • __사전 요구 조건
  • __암호 입력 없는 SSH 설정
  • __장비에 하둡 설치
  • __하둡 설정
  • __하둡에서 프로그램 구동
  • 하둡 클러스터 관리
  • 요약

  • 2장 솔라 이해
  • 솔라 설치
  • 아파치 솔라 아키텍처
  • __저장소
  • __솔라 엔진
  • ____질의 구문 해석기
  • __상호작용
  • ____클라이언트 API와 SolrJ 클라이언트
  • ____다른 인터페이스
  • 아파치 솔라 검색 설정
  • __인스턴스의 스키마 정의
  • __솔라 인스턴스 설정
  • ____설정 파일
  • __요청 취급자와 검색 구성요소
  • ____파싯
  • ____MoreLikeThis
  • ____Highlight
  • ____SpellCheck
  • ____메타데이터 관리
  • 검색을 위한 데이터 적재
  • __ExtractingRequestHandler/솔라 셀
  • __SolrJ
  • 요약

  • 3장 하둡과 솔라를 사용한 빅데이터 처리
  • 문제
  • 데이터 처리 작업 흐름 이해
  • __독립 장비 구성
  • __분산 구성
  • __복제 모드
  • __샤드 모드
  • 솔라 1045 패치 사용 - 맵 쪽 색인
  • __장점과 단점
  • ____장점
  • ____단점
  • solr-1301 패치 사용: 리듀스 쪽 색인
  • __장점과 단점
  • ____장점
  • ____단점
  • 분산 검색에서 솔라클라우드 사용
  • __솔라클라우드 아키텍처
  • __솔라클라우드 설정
  • __솔라클라우드에 다중 코어 솔라 검색 사용
  • __장단점
  • ____장점
  • ____단점
  • 카타를 사용한 빅데이터 검색 (Solr-1395 패치)
  • __카타 아키텍처
  • __카타 클러스터 설정
  • __카타 색인 생성
  • __장점과 단점
  • ____장점
  • ____단점
  • 요약

  • 4장 빅데이터 기반 대형 색인 생성
  • NOSQL 개념 이해
  • CAP 이론
  • __NOSQL 데이터베이스란 무엇인가?
  • __키/값 저장소 또는 칼럼 기반 저장소
  • ____문서 기반 저장소
  • ____그래프 데이터베이스
  • __왜 빅데이터엔 NOSQL 데이터베이스인가?
  • __빅데이터 저장소로 솔라를 사용하는 법
  • 분산 검색 개념 이해
  • __분산 검색 아키텍처
  • __분산 검색 시나리오
  • 릴리: 솔라 하둡 동시 운용
  • __아키텍처
  • ____쓰기 전 기록(Write-ahead Logging,WAL)
  • ____메시지 큐
  • ____릴리를 사용한 질의
  • ____릴리를 사용한 레코드 갱신
  • __릴리 설치 및 구동
  • 파고 들기: 아파치 솔라의 샤드와 색인 데이터
  • __샤딩 알고리즘
  • __분산 샤드에 문서 추가
  • 대형 색인을 다루기 위한 솔라클라우드 설정
  • __주키퍼 앙상블 설정
  • __아파치 솔라 인스턴스 설정
  • __샤드, 컬렉션, 복제본을 솔라클라우드에 생성
  • 요약

  • 5장 빅데이터 확장에 따른 검색 성능 향상
  • 제약사항 이해
  • 검색 스키마 최적화
  • __기본 검색 필드 지정
  • __검색 스키마 필드 설정
  • __스톱 워드
  • __스테밍
  • 색인 최적화
  • __색인 버퍼 크기 제한
  • __언제 변경 사항을 커밋하는가?
  • __색인 병합 최적화
  • __색인 병합의 선택사항 최적화
  • __컨테이너 최적화
  • __병렬 클라이언트 최적화
  • __자바 가상 메모리 최적화
  • 검색 실행시간 최적화
  • __검색 질의를 통한 최적화
  • ____필더 쿼리
  • __솔라 캐시 최적화
  • ____필터 캐시
  • ____질의 결과 캐시
  • ____문서 캐시
  • ____필드 값 캐시
  • ____지연 필드 로딩
  • __하둡 검색 최적화
  • 솔라 인스턴스 모니터링
  • 솔라미터 사용
  • 요약

  • 부록 A 빅데이터 검색 사용사례
  • 부록 B 아파치 솔라를 사용한 기업용 검색 구현
  • 부록C 솔라 색인을 만드는 맵리듀스 프로그램 예제

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.34 : 5행]
64BM
->
64MB

[p.113 : 아래에서 2행]
아레 -> 아래