클라우드라 임팔라

이 안내를 사용하는 언어

Cloudera Impala가 이 페이지에 설명된 데이터베이스 설정 요구사항을 공유합니다.

Cloudera Impala에 연결하도록 Looker 구성

Looker가 JDBC 연결을 통해 모든 데이터베이스에 연결합니다. 기본적으로 Cloudera Impala에서 이 서버는 포트 21050에서 impalad 데몬을 실행합니다.

Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

Looker 연결 구성은 사용 중인 보안에 따라 다릅니다.

Kerberos 또는 사용자 인증 없이 클러스터에 연결

Kerberos 또는 사용자 인증을 사용하지 않는 연결을 구성하려면 다음 안내를 따르세요.

  1. 연결 설정 페이지에서 사용자 이름비밀번호 입력란을 비워 둡니다. 필드 이름 옆에 있는 *는 이러한 필드가 필수임을 암시하지만 필수는 아닙니다.
  2. 추가 매개변수 필드에 ;auth=noSasl을 입력합니다.

연결 문자열 확인

로그 파일에서 JDBC 연결 문자열을 확인하려면 Looker 관리자 패널에서 왼쪽 메뉴의 로그를 클릭합니다. 그런 다음 jdbc 또는 noSasl와 같은 용어로 로그를 필터링합니다.

JDBC를 사용하도록 Cloudera Impala를 구성하는 방법에 대한 자세한 내용은 Cloudera 문서를 참조하세요.

LDAP 인증이 필요한 클러스터에 연결

Apache Sentry 및 Kerberos를 사용하는 클러스터를 포함하여 LDAP 인증이 필요한 클러스터의 경우 연결 설정 페이지에 Looker에서 액세스할 스키마에 액세스할 수 있는 사용자 이름비밀번호를 입력합니다.

Kerberos로 보호되지만 Apache Sentry를 사용하지 않는 클러스터에 연결

Looker 분석가가 올바르게 구성해야 할 필요가 있습니다.

일반적으로 Cloudera 환경을 사용한 Kerberos 인증은 Apache Sentry를 통해 처리됩니다. 자세한 내용은 Cloudera 문서를 참조하세요.

Kerberos 인증을 사용하여 Looker를 Cloudera Impala에 직접 연결하도록 구성하려면 이 페이지의 단계를 따르세요.

Kerberos 클라이언트 구성 설정

가장 먼저 해야 할 일은 여러 소프트웨어의 설치와 Looker 머신에 여러 파일의 존재를 확인하는 것입니다.

Kerberos 클라이언트

kinit을 실행하여 Looker 머신에 Kerberos 클라이언트가 설치되어 있는지 확인합니다. 그렇지 않으면 Kerberos 클라이언트의 바이너리를 설치하세요.

예를 들어 Redhat/CentOS에서는 다음과 같습니다.

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

자바 8

자바 8은 Looker 머신과 Looker 사용자의 PATHJAVA_HOME에 설치해야 합니다. 필요한 경우 looker 디렉터리에 로컬로 설치합니다.

자바 암호화 확장 프로그램
  1. Oracle 웹사이트에서 자바 8용 자바 암호화 확장 프로그램 (JCE)을 다운로드하여 설치하세요.

    • 자바 설치를 위한 jre/lib/security 디렉터리를 찾습니다.
    • 이 디렉터리에서 JAR 파일 local_policy.jarUS_export_policy.jar를 삭제합니다.
    • 이 두 파일을 JCE Unlimited Strength Jurisdiction Policy Files 다운로드에 포함된 JAR 파일로 바꿉니다.

    JCE가 설치된 자바 8 이전 버전의 자바를 사용할 수도 있지만, 권장되지 않습니다.

  2. ~looker/.bash_profile에서 JAVA_HOMEPATH를 업데이트하여 올바른 자바 및 source ~/.bash_profile 설치를 가리키거나 로그아웃했다가 다시 로그인합니다.

  3. java -version로 자바 버전을 확인합니다.

  4. echo $JAVA_HOME을 사용하여 JAVA_HOME 환경 변수를 확인합니다.

gss-jaas.conf

looker 디렉터리에 다음 콘텐츠가 포함된 gss-jaas.conf 파일을 만듭니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

테스트에 필요한 경우 다음과 같이 debug=true을 이 파일에 추가할 수 있습니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

Looker를 실행하는 서버에도 유효한 krb5.conf 파일이 있어야 합니다. 기본적으로 이 파일은 /etc/krb5.conf에 있습니다. 다른 위치에 있는 경우 환경 (셸 환경의 KRB5_CONFIG)에 표시되어야 합니다.

다른 Kerberos 클라이언트 시스템에서 복사해야 할 수도 있습니다.

lookerstart.cfg

looker 디렉터리 (looker 시작 스크립트가 포함된 디렉터리)에서 다음 줄이 포함된 lookerstart.cfg이라는 파일을 만들어 gss-jaas.confkrb5.conf 파일을 가리킵니다.

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

krb5.conf 파일이 /etc/krb5.conf에 없는 경우 다음 변수도 추가해야 합니다.

  -Djava.security.krb5.conf=/path/to/krb5.conf

디버깅을 위해 다음 변수를 추가합니다.

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

그런 다음 ./looker restart를 사용하여 Looker를 다시 시작합니다.

Kerberos로 인증

사용자 인증
  1. krb5.conf/etc/에 없으면 환경 변수 KRB5_CONFIG를 사용하여 위치를 나타냅니다.

  2. klist 명령어를 실행하여 Kerberos 티켓 캐시에 유효한 티켓이 있는지 확인합니다.

  3. 티켓이 없는 경우 kinit username@REALM 또는 kinit username를 실행하여 티켓을 만듭니다.

  4. Looker에서 사용하는 계정은 헤드리스일 가능성이 높으므로 Kerberos에서 keytab 파일을 가져와 장기적으로 사용할 사용자 인증 정보를 저장할 수 있습니다. kinit -k -t looker_user.keytab username@REALM과 같은 명령어를 사용하여 Kerberos 티켓을 가져옵니다.

티켓 자동 갱신

활성 티켓을 Kerberos 티켓 캐시에 유지하기 위해 매우 자주 실행되는 크론 작업을 설정합니다. 실행 빈도는 클러스터 구성에 따라 다릅니다. klist에서 티켓 만료 기간을 표시합니다.

Looker 연결 설정

Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

다음과 같이 연결 세부정보를 입력합니다. 자세한 내용은 데이터베이스에 Looker 연결 문서를 참조하세요.

  • 이름: 연결의 이름입니다. LookML 모델에서 연결이 참조되는 방식입니다.
  • 언어: Cloudera Impala 또는 Cloudera Impala 3.1 이상
  • 호스트: 호스트 이름.
  • 포트: 데이터베이스 포트 (기본값: 21050)
  • 데이터베이스: 모델링할 기본 스키마/데이터베이스입니다. 테이블에 데이터베이스가 지정되지 않은 경우 이 가정이 적용됩니다.
  • 사용자 이름: 비워 둡니다.
  • Password(비밀번호): 비워 둡니다.
  • 영구 파생 테이블: 영구 파생 테이블을 사용할 것인지 확인합니다.
  • 임시 데이터베이스: PDT를 저장하기 위한 임시 스키마/데이터베이스입니다. 사전에 생성해야 합니다.
  • 추가 매개변수: JDBC 문자열의 추가 매개변수입니다. Kerberos 주 구성원을 나타냅니다(예: ;principal=impala/impala.company.com@REALM). 세 부분으로 구성된 주 구성원은 표준입니다. 일반적으로 첫 번째(impala)는 서비스 이름이고 마지막(REALM)은 영역입니다.
  • SSL: SSL 연결을 사용하려면 선택합니다. 널리 인정되는 인증 기관에서 SSL 인증서를 발급하지 않고 맞춤 인증서를 사용하는 경우 다음을 수행해야 합니다.
    • 인증서 파일을 Looker 서버에 복사합니다. 고객이 호스팅하는 Looker 배포에만 사용할 수 있습니다.
    • 위에서 언급한 추가 매개변수 필드에 다음 매개변수를 추가합니다.
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Impala 데이터베이스의 올바른 JDBC 문자열을 구성하는 방법에 대한 자세한 내용은 Cloudera 문서를 참고하세요.

  • 데이터베이스 시간대: 데이터베이스에 저장된 데이터의 시간대입니다. 일반적으로 비워두거나 UTC로 설정할 수 있습니다.

서버 이름 (이 예에서는 impala.company.com)을 서버의 표준 이름과 IP 주소의 역방향 DNS 조회가 되도록 하는 것이 좋습니다. 하지만 서버 이름은 Kerberos 도메인 컨트롤러에 나열된 이름과 같아야 합니다.

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

서버 이름이 정규화된 도메인 이름이 아닌 호스트 이름으로 설정되는 경우가 있습니다. 이 경우 역방향 조회가 의도한 대로 확인되도록 /etc/hosts/etc/nsswitch.conf 파일을 수정해야 할 수도 있습니다.

연결을 테스트하여 올바르게 구성되었는지 확인합니다.

디버깅

리소스

참고

PDT용 스크래치 스키마에 연결하는 사용자에게 읽기/쓰기 권한이 있어야 합니다.

참조

자세한 내용은 Cloudera 문서의 JDBC를 사용하도록 Impala 구성 섹션을 참조하세요.

기능 지원

Looker에서 일부 기능을 지원하려면 데이터베이스 언어도 이 기능을 지원해야 합니다.

Looker 최신 출시 버전에서 Cloudera Impala는 다음과 같은 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 Cloudera Impala 3.1 이상에는 다음과 같은 Looker 기능이 지원됩니다.

다음 단계

데이터베이스를 Looker에 연결한 후 사용자의 로그인 옵션을 구성합니다.