메뉴 건너뛰기

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!]

번호 제목 날짜 조회 수
» Oracle RAC 구성된 DB서버에 대한 컴포넌트별 설정 방법 2022.02.12 1068
643 service name방식의 oracle을 메타정보 저장소로 사용할때 Hue Configuration설정하는 방법 2022.02.12 1700
642 oracle 접속 방식에 따른 --connect 지정 방법 2022.02.11 509
641 [vue storefrontui]외부 API통합하기 참고 문서 2022.02.09 237
640 vuestorefrontui.io를 이용한 front end project 생성하기 2022.02.06 212
639 eclipse editor 설정방법 2022.02.01 696
638 windows10 pro에서 microservice pattern책의 예제를 kubernetes에서 기동하는 방법 2022.01.30 472
637 [백업] 리눅스 시스템 백업하기 (Linux System Backup) - TAR 사용 시스템 전체 백업 2022.01.19 1961
636 kudu rebalance수행 command예시 2022.01.17 1298
635 Kudu tablet이 FAILED일때 원인 확인 방법 2022.01.17 986
634 Failed to write to server: (no server available): 2022.01.17 1248
633 Soft memory limit exceeded (at 100.05% of capacity) 오류 조치 2022.01.17 935
632 not leader of this config: current role FOLLOWER 오류 발생시 확인방법 2022.01.17 1178
631 Oracle NLOB type의 데이터를 import하는 경우 No Java type for SQL type 2011 for column rst와 같은 오류 발생시 조치사항 2022.01.14 338
630 kudu 테이블 metadata강제 삭제시 발생하는 오류 메세지 2022.01.12 1024
629 hadoop nfs gateway설정 (Cloudera 6.3.4, CentOS 7.4 환경에서) 2022.01.07 1411
628 oracle 12에 sqoop해서 데이터 import하기 (console에서 sqoop import하는 방법) 2021.12.31 1001
627 python2.7.4에서 Oracle DB(11.2)를 사용하기 위한 설정(RPM을 이용하여 RHEL 7.4에 설치) 2021.11.26 1140
626 클러스터내의 전체 workflow및 coordinator현황을 사용자별로 추출하는 방법 2021.11.25 1248
625 hue.axes_accessattempt테이블의 username컬럼에 NULL 혹은 space가 들어갈수도 있음. 2021.11.03 3475
위로