메뉴 건너뛰기

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

번호 제목 날짜 조회 수
710 [Ranger]RangerAdminRESTClient Error gertting pplicies; Received NULL response!!, secureMode=true, user=rangerkms/node01.gooper.com@ GOOPER.COM (auth:KERBEROS), serviceName=cm_kms 2023.06.27 2034
709 [CDP7.1.3]Ranger WebUI에서 Error! Connection refused: Please check the KMS provider URL and whether the Ranager KMS is running발생시 조치 방법 2023.06.07 3208
708 [impala]insert into db명.table명 select a, b from db명.table명 쿼리 수행시 "Memory limit exceeded: Failed to allocate memory for Parquet page index"오류 조치 방법 2023.05.31 4961
707 Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 2023.05.19 2966
706 [Atlas Server]org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=atlas/node01.gooper.com@GOOPER.COM, scope=default:atlas_janus, params=[table=default:atlas_janus,], action-CREATE)] 2023.05.15 2677
705 [Solr in Cloudera]Solr Data Directory변경 방법/절차 2023.04.21 3064
704 [Ranger]계정에 admin권한(grant, create등)의 권한 부여 방법 2023.04.18 2744
703 [DataNode]org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/datanode03@GOOPER.COM from keytab hdfs.keytab오류 2023.04.18 8460
702 [KUDU] kudu tablet server여러가지 원인에 의해서 corrupted상태가 된 경우 복구방법 2023.03.28 3115
701 Hadoop Clsuter에 이미 포함된 host의 hostname변경시 처리 절차 2023.03.24 2917
700 [Kudu]ERROR: Unable to advance iterator for node with id '2' for Kudu table 'impala::core.pm0_abdasubjct': Network error: recv error from unknown peer: Transport endpoint is not connected (error 107) 2023.03.16 3809
699 hive의 메타정보 테이블을 MariaDB로 사용하는 경우 table comment나 column comment에 한글 입력시 깨지는 경우 utf8로 바꾸는 방법. 2023.03.10 3084
698 [Hive canary]Hive에 Metastore canary red alert및 hive log파일에 Duplicate entry '123456' for key 'NOTIFICATION_LOG_EVENT_ID'가 발생시 조치사항 2023.03.10 3067
697 호출 url현황 2023.02.21 1079
696 ./gradlew :composeDown 및 ./gradlew :composeUp 를 성공했을때의 메세지 2023.02.20 1044
695 [ftgo_application]Unable to infer base url오류 발생시 조치방법 2023.02.20 3548
694 [Impala TLS/SSL이슈]RangerAdminRESTClient.java:151] Failed to get response, Error is: TrustManager is not specified 2023.02.02 2504
693 [Kerberos]병렬 kinit 호출시 cache파일이 손상되어 Bad format in credentials cache 혹은 No credentials cache found 혹은 Internal credentials cache error 오류 발생시 2023.01.20 2767
692 [HA구성 이슈]oozie 2대를 L4로 HA구성했을때 발생하는 이슈 2023.01.17 3126
691 [Impala 3.2버젼]compute incremental stats db명.테이블명 수행시 ERROR: AnalysisException: Incremental stats size estimate exceeds 2000.00MB. 오류 발생원인및 조치방안 2022.11.30 2925
위로