메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


출처 : https://imp51.tistory.com/entry/Cloudera-Oracle-RAC-%EA%B5%AC%EC%84%B1


1. Hue 구성

Oracle RAC 환경 Hue 연동
- Hue는 Oracle과 연동할때 OCI 기반으로 django를 사용함 (참고1)
- Oracle RAC은 instance들을 하나로 묶어 cluster alias name 구성되어 있음 (tnsnames.ora 참고)

적용부분) CM의 Hue servcie 구성에서 hue_safety_valve_server.ini에대한 Hue Server 고급 구성 스니펫(안전밸브)
engine=oracle
port=0
user=test
password=test
name=(DESCRIPTION=(LOAD_VALANCE=off)
(DESCRIPTION=(LOAD_BALANCE=off)(FAILOVER=on)(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=Cluster_alias명)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PUDB)))

요약: 참고1 에서와 같이 Oracle connection string을 조합할때 hue.ini의 database 변수 중 user, password, name을 조합하여 Oracle과 connection을 함으로 RAC 기반에서 정의된 cluster alias name명이 포함된 tnsnames.ora의 TNS entry명의 value부분을 hue.ini의 name에 적용

참고1) django 에서 Oracle connection string 셋팅 부분
파일위치: hue/desktop/core/ext-py/Django-1.6.10/django/db/backends/oracle/base.py

def _connect_string(self):
        settings_dict = self.settings_dict
        if not settings_dict['HOST'].strip():
            settings_dict['HOST'] = 'localhost'
        if settings_dict['PORT'].strip():
            dsn = Database.makedsn(settings_dict['HOST'],
                                   int(settings_dict['PORT']),
                                   settings_dict['NAME'])
        else:
            dsn = settings_dict['NAME']
        return "%s/%s@%s" % (settings_dict['USER'],
                             settings_dict['PASSWORD'], dsn)

//--------------------------------------------------------------------------------


2. Cloudera Manager

You can configure Cloudera Manager to use Oracle RAC database with failover by overwriting the connection parameters for the Oracle Driver  in the /etc/cloudera-scm-server/db.properties file.


com.cloudera.cmf.db.type=oracle
com.cloudera.cmf.orm.hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
com.cloudera.cmf.orm.hibernate.connection.url=jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(FAILOVER=on) /  
(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=hostname1)(PORT=1521))  /  
(ADDRESS=(PROTOCOL=TCP)(HOST=hostname2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=bla)))
com.cloudera.cmf.orm.hibernate.connection.username=xxxx
com.cloudera.cmf.orm.hibernate.connection.password=yyyy

//--------------------------------------------------------------------------------


3. Hive Metastore DB

Cloudera Manager에서 Hive 구성에서 hive-site.xml에 대한 Metastore Server 고급 구성 스니펫(안전벨브)의 옵션에 하기의 4개의 옵션과 값을 입력

  1. javax.jdo.option.ConnectionURL
    • 값: JDBC URL 정보(transname.ora 정보)
  2. javax.jdo.option.ConnectionDriverName
    • 값: oracle.jdbc.driver.OracleDriver
  3. javax.jdo.option.ConnectionUserName
    • 값: Usr_Name
  4. javax.jdo.option.ConnectionPassword
    1. 값: Password

//--------------------------------------------------------------------------------



4. Oozie
Cloudera Manager에서 Oozie 구성에서 oozie-site.xml에 대한 Oozie Server 고급 구성 스니펫(안전벨브)의 옵션에 하기의 1개 옵션 추가
  • oozie.service.JPAService.jdbc.url 
  • 값: JDBC URL 정보(transname.ora 정보)

//--------------------------------------------------------------------------------



5. Sentry
Cloudera Manager에서 Sentry 구성에서 sentry-site.xml에 대한 Sentry 서비스 고급 구성 스니펫(안전벨브)의 옵션에 하기의 1개 옵션 추가
  • 옵션: sentry.store.jdbc.url
  • 값: JDBC URL 정보(transname.ora 정보)

//--------------------------------------------------------------------------------



6. Navigator Metadata Server 

Cloudera Manager 관리 콘솔에서 Navigator Metadata Server Advanced Configuration Snippet(Safety Value) for cloudera-navigator.properties의 옵션을 다음과 같이 지정

  • navms.db.url= JDBC URL 정보(transname.ora 정보)
  • navms.db.type=oracle

Oracle JDBC Driver를 다음 위치에 copy : /usr/share/cmf/cloudera-navigator-server/jars/ 


//--------------------------------------------------------------------------------

7. Navigator Audit Server

- 5.11에 RAC 구성을 위한 JDBC Custom URL 구성 옵션이 추가될 예정



출처: https://imp51.tistory.com/entry/Cloudera-Oracle-RAC-구성 [Slow but Surely!]

번호 제목 날짜 조회 수
360 [application수행 로그]Failed to read the application application_123456789012_123456시 조치 방법 2022.03.21 988
359 Hue impala에서 query결과를 HDFS 파일로 export시 AuthorizationException: User 'gooper1234' does not have privileges to access: db명.query_impala_123456 2022.03.17 883
358 [TLS]pkcs12형식의 인증서 생성및 jks형식 인증서 생성 커맨드 예시 2022.03.15 275
357 [TLS]TLS용 사설 인증서 변경 혹은 신규 지정시 No trusted certificate found 오류 발생시 확인및 조치사항 2022.03.15 1041
356 [CentOS 7.4]Hadoop NFS gateway기동시 Cannot connect to port 2049 오류 발생시 확인/조치 2022.03.02 1115
» Oracle RAC 구성된 DB서버에 대한 컴포넌트별 설정 방법 2022.02.12 914
354 service name방식의 oracle을 메타정보 저장소로 사용할때 Hue Configuration설정하는 방법 2022.02.12 1254
353 oracle 접속 방식에 따른 --connect 지정 방법 2022.02.11 488
352 kudu rebalance수행 command예시 2022.01.17 1197
351 Kudu tablet이 FAILED일때 원인 확인 방법 2022.01.17 905
350 Failed to write to server: (no server available): 2022.01.17 1121
349 Soft memory limit exceeded (at 100.05% of capacity) 오류 조치 2022.01.17 892
348 not leader of this config: current role FOLLOWER 오류 발생시 확인방법 2022.01.17 1078
347 Oracle NLOB type의 데이터를 import하는 경우 No Java type for SQL type 2011 for column rst와 같은 오류 발생시 조치사항 2022.01.14 213
346 kudu 테이블 metadata강제 삭제시 발생하는 오류 메세지 2022.01.12 933
345 hadoop nfs gateway설정 (Cloudera 6.3.4, CentOS 7.4 환경에서) 2022.01.07 1356
344 oracle 12에 sqoop해서 데이터 import하기 (console에서 sqoop import하는 방법) 2021.12.31 905
343 클러스터내의 전체 workflow및 coordinator현황을 사용자별로 추출하는 방법 2021.11.25 1169
342 hue.axes_accessattempt테이블의 username컬럼에 NULL 혹은 space가 들어갈수도 있음. 2021.11.03 3385
341 Query Status: Sender xxx.xxx.xxx.xxx timed out waiting for receiver fragment instance: 1234:cdsf, dest node: 10 의 오류 원인및 대응방안 2021.11.03 1080
위로