2016-10-24 2 views
1

Cognos를 처음 사용하고 Hive JDBC 드라이버를 사용하여 Hadoop에 대한 보고서를 작성하려고합니다. JDBC를 통해 하이브에 연결할 수 있고 보고서를 생성 할 수 있지만 보고서가 매우 느리게 실행됩니다. DB2와 연결하는 동안 동일한 작업을 수행했으며 데이터는 Hadoop과 동일합니다. 보고서는 하이브 위에있는 보고서와 비교할 때 매우 빠르게 실행되었습니다. Hadoop과 DB2 모두에서 동일한 데이터 세트를 사용하고 있지만 Hadoop 상단의 보고서가 왜 느린 지 알 수 없습니다. Hadoop을 가상 분산 모드로 설치하고 JDBC를 통해 연결했습니다. Hive 데이터 소스에서 Cognos가보고하는 속도가 매우 느립니까?

나는 수정 팩 11,
  • 아파치 하둡 2.7.2,
  • 아파치 하이브 0.12와 소프트웨어의 내가 사용하는

    • 은 IBM Cognos 10.2.1 버전의 다음 설치.

    둘 다 서로 다른 시스템에 설치되어 있으며 Windows 7 위에는 Cognos가, Red Hat에는 Hadoop이 설치되어 있습니다.

    Cognos 또는 Hadoop 설정이 잘못된 부분을 말해 줄 수 있습니까? Hadoop 위에 Cognos에서 보고서 실행 시간을 단축 할 수있는 방법이 있습니까?

  • +0

    하이브는 일반적으로 RDBMS보다 느리게 진행됩니다. 하이브에서 직접 쿼리를 테스트 해 보셨습니까? – Andrew

    +0

    보고서가 매우 느리게 실행되기 때문에 속도를 높일 수있는 방법이 있습니까? 간단한 보고서의 경우 2 ~ 3 분이 소요됩니다. –

    답변

    1

    의사 배포 모드에서 Hadoop을 설치했다면 단일 서버에서만 Hadoop을 실행한다고 말하는 것입니까? 그렇다면 결코 DB2만큼 빠르지 않을 것입니다. Hadoop과 Hive는 클러스터에서 실행되고 확장되도록 설계되었습니다. 클러스터에서 3 개 또는 4 개의 서버를 실행하면 대규모 데이터 세트에서 인상적인 쿼리 속도를 볼 수 있습니다.

    Java 힙 (http://www-01.ibm.com/support/docview.wss?uid=swg21587457)의 기본 메모리 양을 초과하여 Cognos Query Service에 액세스 할 수 있는지 확인하십시오. 현재 8Gb의 초기 크기와 최대 12Gb를 실행하지만 이따금 블로깅 할 수 있습니다.

    다음으로 실행하게 될 문제는 Cognos가 Hive SQL 사양 (또는 내가 사용중인 Impala)을 알지 못한다는 것입니다. 즉, 기본이 아닌 쿼리는 select에서 select로 변환 될 것입니다. 커다란 누락 된 부분은 where 절이 될 것입니다. 이는 Cognos가 Hive 테이블의 모든 데이터를 빨아 들이고 Cognos가 속한 Hive로 전달하지 않고 Cognos에서 필터링을 수행한다는 것을 의미합니다. Cognos는 DB2 SQL 및 모든 특성을 작성하여 해당 워크로드를 통과시킬 수있는 방법을 알고 있습니다.

    쿼리가 더 복잡하거나 플랫폼 특정 함수 등이 일반적으로 Hive (날짜 함수, 분석 함수 등)에 전달되지 않으므로 데이터와 쿼리를 구조화하여 필터에 필요하도록하십시오.

    하이브 쿼리 로그를 사용하여 Cognos가 실행중인 쿼리를 모니터링합니다. 또한 쿼리에 필드를 추가 한 다음 모델에서 필터로 직접 이동하는 대신 해당 필드를 필터로 드래그하십시오. Cognos가 where 절에 필터를 포함시키는 데 도움이 될 수 있음을 발견했습니다.

    다른 옵션은 Report Studio에서 패스 스루 SQL 쿼리를 사용하고 하이브의 SQL에 모두 쓰는 것입니다. 나는 5 백만 행이있는 사실 테이블에서 상위 5 개의 스택을 필요로하는 대시 보드 집합에 대해이 작업을 수행했습니다. 5 행의 경우 Cognos는 5 백만 행을 모두 추출한 다음 Cognos에서 순위를 매겼습니다. 이 작업을 여러 번 반복하면 Cognos가 갑자기 고생 할 것입니다. 패스 스루 쿼리를 사용하면 임팔라 랭크() 함수를 사용할 수 있고 DB2가 내가 적절한 (그러나 작은) 클러스터에서 돌아가는 것을 보는 것보다 훨씬 빠르고 더 빨리 5 개의 행을 얻을 수 있습니다.

    하이브에 대한 또 다른 고려 사항은 맵 축소에 하이브를 사용하는지 아니면 TEZ에서 하이브를 사용하는지 여부입니다. 동료가 발견 한 것부터, TEZ의 Hive는 Cognos가 Map Reduce에서 실행하는 쿼리 유형보다 훨씬 빠릅니다.