2013-06-25 3 views
41

HDFS의 데이터에 대해 "거의 실시간으로"데이터 분석 (OLAP 형)을하고 싶습니다.
필자의 연구에 따르면 세 가지 언급 된 프레임 워크가 Apache Hive에 비해 상당한 성능 향상을 보인 것으로 나타났습니다. 아무도 그 중 하나와 실용적인 경험을 가지고 있습니까? 성능뿐 아니라 안정성 측면에서도 그렇습니까?Fast Hadoop Analytics (Cloudera Impala 대 Spark/Shark 대 Apache Drill)

답변

58

하이브와 임팔라 또는 스파크 또는 드릴의 비교가 때때로 나에게 부적절하다고 들립니다. 하이브 개발의 목표와이 도구들은 달랐습니다. Hive는 메모리 처리에서 실시간으로 개발되지 않았으며 MapReduce를 기반으로합니다. 오프라인 일괄 처리를 위해 제작되었습니다. 거대한 데이터 세트에 조인 (join)과 같은 데이터 무거운 작업을 수행하는 장기 실행 작업이 필요할 때 가장 적합합니다.

반면에 이러한 도구는 real-timeness을 염두에두고 개발되었습니다. 매우 거대한 데이터를 쿼리 할 필요가있을 때 이동하십시오. 실시간으로 메모리에 맞출 수 있습니다. 이 도구를 사용하여 BigData에 대한 쿼리를 실행할 수 없다는 것을 말하는 것이 아니라 데이터 PB에 대해 실시간 쿼리를 실행하는 경우 한계를 넘길 것입니다.

특정 회사에 여러 개의 PB 데이터가 있고 고객의 실시간 요구 사항을 성공적으로 충족시키는 것을 보았을 (또는 읽은 경우가 많습니다. 그러나 실제로 이들 회사는 대부분의 경우 전체 데이터를 쿼리하지 않습니다. 따라서 중요한 것은 적절한 계획 인 when to use what입니다. 내가하려고하는 요점을 얻을 수 있기를 바랍니다.

실제 질문으로 돌아 가면, 내 생각에이 프로젝트의 대부분이 완료되지 않았으므로 합리적인 비교를 제공하기가 어렵습니다. 당신이 직접 (또는 어쩌면) 많은 일을 기꺼이하지 않는다면 그들은 아직 생산 준비가되어 있지 않습니다. 그리고이 프로젝트들 각각에 대해 특정 프로젝트에 매우 특정한 특정 목표가 있습니다.

For example 임팔라는 기존 Hive 인프라를 활용하기 위해 개발되었으므로 처음부터 다시 시작할 필요가 없습니다. Hive가 사용하는 것과 동일한 메타 데이터를 사용합니다. 목표는 기존 Hadoop웨어 하우스의 상단에서 실시간 쿼리를 실행하는 것입니다. 반면 드릴은 not only Hadoop 프로젝트로 개발되었습니다. 또한 MongoDB, Cassandra, Riak 및 Splunk를 비롯한 여러 대형 데이터 플랫폼에서 분산 쿼리 기능을 제공합니다. Shark는 Apache Hive와 호환되므로 Hive를 사용했을 때와 동일한 HiveQL 문을 사용하여 쿼리 할 수 ​​있습니다. 차이점은 Shark가 Hive에서 실행 된 동일한 쿼리보다 최대 30 배 빠른 결과를 반환 할 수 있다는 것입니다.

임팔라는 현재 잘하고 있으며 일부 사람들은 그것을 사용하고 있지만 나머지는 거의 확신하지 못합니다.이 모든 도구는 좋지만 공정한 비교는이 도구를 사용해 본 후에 만 ​​가능합니다. 데이터 및 처리 요구 사항에 따라 달라집니다. 하지만 내 경험에 따르면 임팔라는 지금이 순간에 가장 좋은 방법 일 것입니다. 나는 다른 도구가 좋지 않다는 말은 아니지만 아직 성숙하지는 못했다. 그러나 이미 실행중인 Hadoop 클러스터 (예 : Apache 용 hadoop)와 함께 사용하려면 Impala가 거의 모든 사람이 CDH 기능으로 사용하므로 몇 가지 추가 작업을해야 할 수도 있습니다.

참고 : 이러한 모든 사항은 내 경험에 의한 것입니다. 잘못되었거나 부적절한 것을 발견하면 알려주십시오. 의견 및 제안을 환영합니다. 그리고이 질문에 대한 답이되기를 바랍니다.

+2

종합적인 답변은 Thx입니다. 대부분의 점에서 내 연구 결과를 확인하는 것 같습니다. 지금은 Spark에서 사용 사례 중 일부를 직접 체험 해보고 있습니다.나에게 그것은 임팔라보다 더 잘 문서화되어있다. (그것에 관한 모든 학술 논문이 가능하다.) API는 깨끗하고 간결하다. 그러나 우리는 보게 될 것입니다. 또한 Hive를 실시간 프레임 워크와 비교했습니다. 왜냐하면 Hive는 서로를 비교하는 경향이 있기 때문입니다. 아마 좋은 성능 향상을 과시하기 위해. – user2306380

+0

오, 절대적으로 .. 당신은 요점을 가지고 :) .. 당신의 POC와 행운을 비네. – Tariq

+1

명심해야 할 한가지 - 임팔라에는 중대한 제한이 있습니다. 중간 쿼리가 메모리에 적합해야합니다. 따라서 검색어에 의한 그룹이 30GB (예 : 컴퓨터 램)를 초과하면 HAVING 절을 적용하여 효과적으로 1MB의 데이터로 정리하는 쿼리가 실패합니다. Apache Drill과 같은 다른 MPP 엔진에서는 그렇지 않습니다. –