대규모 데이터 처리 및 분석을 위한 새로운 방법
처리 하 고 대용량 데이터를 분석 하는 방법은 여러 가지가 있지만 대부분 몇 가지 공통 기능을 보유. 즉, 그들은 사용 하 여 하드웨어, 확장을 사용 하 여, 병렬 처리 기술, 비 관계형 데이터 저장소를 사용 하 여 구조화 및 반 구조화 된 데이터를 다루는 장점과 대용량 데이터에 대 한 고급 분석 및 데이터 시각화 기술 사용 하 여 최종 사용자에 게 통찰력을 전달 하.
Wikibon는 비즈니스 분석 및 데이터 관리 시장 변경 됩니다 3 개의 큰 데이터 메서드를 확인 했다.
둡
Hadoop은 처리, 저장, 및 다량의 분산, 구조화 되지 않은 데이터 분석에 대 한 오픈 소스 프레임 워크. 원래 야 후 더 그 커팅에 의해 만들어진, Hadoop MapReduce, MapReduce, 구글 인덱스 웹 페이지에 초 2000 년에 개발 하는 사용자 정의 함수에 의해 영감을 했다. PB 처리 하도록 설계 되었습니다-그리고 EB-수준의 데이터 병렬 여러 노드에 분산.
Hadoop 클러스터 하드웨어 확장 하 금융 압력 이므로 저렴 한 상용 하드웨어에서 실행 됩니다. Hadoop은 지금 아파치 소프트웨어 얼라이언스 (아파치 소프트웨어 재단), 프로젝트 참여자의 핵심 기술이 끊임없이 정제의 수백. 기본 개념: 대용량 데이터를 단일 컴퓨터에 제한 됩니다 방법 달리 Hadoop 큰 데이터 부분으로 나누어 각 부분을 처리 하 고 동시에 분석할 수 있도록.
Hadoop이 작동 하는 방법
고객은 원본 로그 파일, 소셜 미디어 피드 등 내부 데이터 저장소에서에서 구조화 및 반 구조화 된 데이터를 가져옵니다. 그것은 으로"" 상업 하드웨어의 여러 노드의 파일 시스템에 로드 되는 데이터를 끊는다. 하 둡에 대 한 기본 파일 저장 시스템은 Hadoop 분산 파일 시스템. HDFs, 같은 파일 시스템은 관계형 행과 열에 데이터를 구성 하지 않아도 때문에 대량의 구조화 및 반 구조화 된 데이터 저장에 좋은.
"부분"는 여러 번 복사 하 고 파일 시스템에 로드 됩니다. 따라서 한 노드에 오류가 발생 하는 경우 다른 노드에 오류가 발생 한 노드의 데이터의 복사본을 포함 합니다. 이름 노드 중재자 역할을 하며 어떤 노드를 사용할 수 있습니다, 일부 데이터는 클러스터에 저장 됩니다 및 노드 실패 등의 정보 통신에 대 한 책임 이다.
데이터는 클러스터에 로드 되 면 MapReduce 프레임 워크를 통해 구문 분석할 준비가 되어 있습니다. 고객 작업 추적기 라는 노드를 "일치" 작업 (일반적으로 쿼리 문은 자바로 작성 된)를 전송 합니다. 작업 추적 이름 노드 확인 데이터 작업을 완료 하는 데 필요한 클러스터에 데이터 저장를 참조 합니다. 일단 결정 하면, 작업 추적기 관련 노드에 쿼리를 전송 합니다. 각 노드는 모든 데이터를 한 위치에 집중 하는 대신 동시에, 동시에 처리 됩니다. 이 Hadoop의 필수적인 기능입니다.
각 노드는 지정된 된 작업을 처리 완료, 결과 저장 합니다. 고객 작업 추적기를 통해 "감소" 작업을 시작합니다. 요약 지도 단계 각 노드에서 결과 데이터를 저장, 원본 쿼리에 대답 가져오고 클러스터의 다른 노드로에 대답을 로드. 고객은 다양 한 분석을 위한 분석 환경에 로드할 수 있는 이러한 결과 액세스할 수 있습니다. MapReduce의 작업이 이루어집니다.
Mapreduce 단계 완료 되 면 데이터 과학자와 다른 고급 데이터 분석 기법 처리 된 데이터를 더 분석을 사용할 수 있습니다. 이러한 데이터를 모델링할 수 있다 또한, Hadoop 클러스터에서 데이터 전송 기존 관계형 데이터베이스, 데이터 웨어하우징 및 다른 전통에 추가 분석을 위해 시스템.
Hadoop의 기술 구성 요소
Hadoop 스택 여러 구성 요소로 이루어집니다. 포함 하 여:
· 하 둡 분산 파일 시스템 (HDFS): 기본 스토리지 레이어의 모든 Hadoop 클러스터;
· 이름 노드:에서 Hadoop 클러스터, 노드를 데이터 저장 위치 및 노드 실패 정보를 제공 합니다.
· 수준 2 노드: 이름 노드 주기적으로 복제 하 고 이름을 노드에 오류가 발생 하는 경우에 이름 노드에 대 한 데이터를 저장 하는 백업.
· 작업 추적기: mapreduce 작업 또는 데이터 처리 작업을 조정 하는 Hadoop 클러스터의 노드.
· 노드의: 일반적인 노드 Hadoop 클러스터 노드에서 데이터를 저장 하 고 데이터 처리 명령 작업 추적기에서 가져옵니다.
이외에, 많은 무료 하위를 Hadoop 에코 시스템에 포함 되어 있습니다. NoSQL 데이터 저장 시스템, HBase, 카산드라와 Hadoop의 MapReduce 작업 결과 저장에 사용 됩니다. 자바, 뿐만 아니라 많은 MapReduce 작업 및 기타 Hadoop 기능은 언어로 작성 돼지, 돼지는 Hadoop을 위해 설계 된 오픈 소스 언어. 하이브는 원래 Hadoop 모델링 될 수 있습니다 페이스 북에 의해 개발 된 오픈 소스 데이터 웨어하우스.
문서 참조: Hadoop 구성 요소와 사용 설명서를 하위 프로젝트: Hbase, sqoop, 수조 등: Apache Hadoop 정의 (http://wikibon.org/wiki/v/HBase, _Sqoop, _Flume_and_ 더: _apache_hadoop_defined)
Hadoop: 장점과 단점
Hadoop의 주요 장점은 기업 처리 하 고 비용 효과적이 고 효율적인 방식으로 대량의 구조화 및 반 구조화 된 데이터를 분석할 수 있습니다 그리고 그 데이터는 지금까지 처리 되지 다른 방식에서입니다. 페타 바이트 또는 심지어 EB 수준 데이터를 Hadoop 클러스터를 확장할 수 없습니다, 때문에 기업 더 이상 샘플 데이터 집합을 처리 하 고 모든 관련 데이터를 분석에 의존 해야 합니다. 데이터 과학자는 분석, 지속적으로 개선 하 고 따라서 이전에 알려지지 않은 통찰력을 발견 테스트 쿼리 문을 반복 메서드를 사용할 수 있습니다. Hadoop을 사용 하 여 비용 저렴 한입니다. 개발자는 아파치 하 둡 분산된 플랫폼을 무료로 다운로드 하 고 하루 미만에 Hadoop을 경험 하기 시작 수 있습니다.
Hadoop 및 무수 한 부품의 단점은 미 숙 하 고 발달 단계에 아직도 다는 것입니다. 모든 새, 원래 기술, 구현 및 고급 분석 구조화 되지 않은 데이터의 큰 금액의 Hadoop 클러스터의 관리 같은 전문 지식, 기술, 및 훈련의 큰 거래를 필요 합니다. 불행 하 게도, 하 둡 개발자와 데이터 과학자의 현재 부족 복잡 한 hadoop 클러스터를 유지 하 고 그들의 장점을 활용 하는 많은 기업 들에 대 한 허무 하 게 했다. 또한, 기술 커뮤니티를 통해 Hadoop의 많은 구성 요소를 개선 하 고 새로운 구성 요소를 지속적으로 생성 되는, 거기는 또한 실패의 위험이 미 성숙한 오픈 소스 기술입니다. 마지막으로, Hadoop은 일괄 지향 프레임 워크, 실시간 데이터 처리 및 분석 지원 하지 않는다는 것을 의미.
좋은 소식은 그것은 사람들이 어떤 스마트 Apache Hadoop 프로젝트에 지속적으로 기여 하 둡 개발자와 데이터 과학자의 새로운 세대는 성숙. 그 결과, 기술 진화 하고있다, 더 강력 하 고 쉽게 구현 하 고 관리 되 고. 공급 업체 (Hadoop 신생 포함 Cloudera 및 Hortonworks), 또한 정교한 그것 백본 기업 IBM과 마이크로소프트 등으로, 상업 Hadoop 분산 플랫폼, 도구 및 서비스는 기업에 게 제공을 개발 하기 위해 노력 배포 및 관리가 기술을 사용할 수 있는 전통적인 엔터프라이즈의 진짜 현실이 될 하자. 다른 신생 nosql (아니라 SQL) 데이터 시스템, Hadoop 근처 실시간 분석 솔루션을 결합 하 여 수정 하는 최선을 다하고 있습니다.
NoSQL
새로운 형태의 데이터베이스 NoSQL (아니라 SQL) 라는 구조화 된 데이터의 많은 수를 처리 하기 위해 Hadoop 처럼 떠오르고 있다. 그러나 Hadoop은 대규모, 지원에서 좋은 경우, 배치 스타일 역사적 분석, 대부분 (와 몇 가지 예외)의 경우, NoSQL 데이터베이스의 목적은 개별 데이터의 많은 최종 사용자에 대 한 여러 구조적된 데이터에 저장 된 및 대용량 데이터 응용 프로그램을 자동화를 제공 하는. 이 기능은 관계형 데이터베이스에서 부족 하 고 그것은 단순히 큰 데이터 비늘에 기본적인 성능 수준을 유지할 수 없습니다.
어떤 경우에 하 둡과 NoSQL 함께 작동합니다. 예를 들어 HBase 하 둡에 대 한 낮은 대기 시간 빠른 조회를 제공 하는 HDFS (Hadoop 분산 파일 시스템), 일반적으로 배포 하는 Google의 bigtable 후 인기 있는 NoSQL 데이터베이스입니다.
현재 가능한 NoSQL 데이터베이스는 다음과 같습니다.
· HBase
· 카산드라
· MarkLogic
· Aerospike
· MongoDB
· Accumulo
· Riak
· CouchDB
· DynamoDB
대부분의 NoSQL 데이터베이스의 단점은 오늘 그들은 성능 및 확장성에 대 한 acid (원자성, 일관성, 격리, 지 속성) 원칙 준수입니다. 많은 NoSQL 데이터베이스는 또한 정교한 관리 및 모니터링 도구 부족 합니다. 이러한 단점 오픈소스 NoSQL 커뮤니티의 노력 및 공급 업체, Datastax, sqrrl, 10gen, aerospike, Couchbase, 등 다양 한 NoSQL 데이터베이스를 상용화 하려고 하는 누가의 소수에 의해 극복 되 고 있다.
대규모 병렬 분석 데이터베이스
일반적인 데이터 웨어하우스와 달리 대규모 병렬 분석 데이터베이스 빠르게 구조화 된 데이터의 큰 금액을 확보 하는 수 고 TB 또는 심지어 페타 모델링 최소 필요한 데이터와 데이터의 크기에 맞게 확장 될 수 있다.
최종 사용자에 게 가장 중요 한 데이터베이스 지원 근처 실시간 복잡 한 SQL 쿼리 결과 대화형 쿼리 기능으로 알려진 hadoop의 중요 한 부족은 그 대규모 병렬 분석 이다. 경우에 따라 대규모 병렬 분석 데이터베이스 실시간으로 근처 큰 데이터 응용 프로그램을 지원합니다. 대규모 병렬 분석 데이터베이스의 기본 기능은 다음과 같습니다.
대규모 병렬 처리 능력: 그 이름에서 알 수 있듯이, 대규모 병렬 분석 데이터 수집, 처리, 및 여러 컴퓨터에서 쿼리를 지원 하기 위해 대규모 병렬 처리를 사용 하는 데이터베이스. 빠른 성능으로 일반적인 데이터 웨어하우스 비교, 단일 컴퓨터에서 실행 되는 전통적인 데이터 웨어하우스가 단일 병목 제한의 데이터 수집 됩니다.
없음 공유 스키마: 없음 공유 스키마 확인 분석 데이터베이스 환경에서 실패의 단일 지점이 없는. 컴퓨터 실패 하면, 다른 기계 실행을 계속할 수 있다 그래서이 아키텍처에서 각 노드는 다른 노드의 무관 합니다. 이것은 대규모 병렬 처리 환경, 병렬, 데이터를 처리 하는 컴퓨터의 수백 및 하나 이상의 컴퓨터의 가끔 실패는 피할 수 없다 특히 중요 합니다.
열 저장 구조: 가장 대규모 병렬 분석 대부분 관계형 데이터베이스 저장 및 행 구조에서 데이터를 처리 하는 동안 열 저장 구조를 사용 하는 데이터베이스. 열 스토리지 환경에서 쿼리 문의 "답변" 쿼리 결과 즉석에서 결과 데이터의 전체 행 대신 필요한 데이터를 포함 하는 열에 의해 결정 됩니다. 이 또한 데이터 전통적인 관계형 데이터베이스 처럼 깔끔한 테이블로 구성 될 필요가 없습니다 의미 합니다.
강력한 데이터 압축 기능: 그들은 분석 데이터베이스 수집 하 고 더 많은 양의 데이터를 저장할 수 있도록 하 고 기존의 데이터베이스 보다 적은 하드웨어 리소스를 소비. 예를 들어 10:1 압축 기능으로 데이터베이스 테라바이트의 데이터 1 TB를 압축할 수 있습니다. 데이터 코딩 방대한 양의 데이터를 효과적으로 확장 하는 열쇠 이다 (를 포함 하 여 데이터 압축 및 관련된 기술).
상용 하드웨어: Hadoop 클러스터 같은 대부분 (물론 모든) 대규모 병렬 분석 데이터베이스는 Dell 및 IBM, 비용 효율적인 방식으로 확장할 수 있도록 같은 공급 업체에서 상용 상용 하드웨어에서 실행.
메모리에 데이터 처리: 일부 (물론 모든) 대규모 병렬 분석 데이터베이스 사용 하는 동적 RAM 또는 플래시 메모리 실시간 데이터 처리에 대 한. SAP 하나 등 Aerospike, 일부는 저렴 하지만 성능 디스크 메모리 덜 "차가운" 데이터를 처리 하 고 동적 RAM 또는 플래시 메모리를 사용 하 여 "뜨거운" 데이터를 처리 하는 혼합된 방법을 사용 하는 동안 메모리에 완전히 데이터를 실행 합니다.
그러나, 대규모 병렬 분석 데이터베이스에는 몇 가지 맹점. 특히, 그들은 프로세스, 저장 및 반구조적 및 구조화 되지 않은 데이터를 분석 하도록 설계 되었습니다는.