메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, 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 [TLS]TLS용 사설 인증서 변경 혹은 신규 지정시 No trusted certificate found 오류 발생시 확인및 조치사항 총관리자 2022.03.15 60
359 [TLS/SSL]Kudu Master 설정하기 총관리자 2022.05.13 61
358 org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException 오류시 조치사항 총관리자 2016.07.14 62
357 권한회수 및 권한부여 명령 몇가지 총관리자 2017.11.16 63
356 "You are running Cloudera Manager in non-production mode.." warning메세지가 나타나지 않게 조치하는 방법 총관리자 2018.05.23 64
355 mysql sqoop작업을 위해서 mysql-connector-java.jar을 추가하는 경우 확실하게 인식시키는 방법 총관리자 2020.05.11 66
354 [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)] gooper 2023.05.15 66
353 Scala버젼 변경 혹은 상황에 맞게 Spark소스 컴파일하기 총관리자 2016.05.31 67
352 [impala]쿼리 수행중 발생하는 오류(due to memory pressure: the memory usage of this transaction, Failed to write to server) gooper 2022.10.05 67
351 [Hive canary]Hive에 Metastore canary red alert및 hive log파일에 Duplicate entry '123456' for key 'NOTIFICATION_LOG_EVENT_ID'가 발생시 조치사항 gooper 2023.03.10 67
350 hadoop 어플리케이션을 사용하는 사용자 변경시 바꿔줘야 하는 부분 총관리자 2016.09.23 68
349 Scala를 이용한 Streaming예제 총관리자 2018.03.08 69
348 kudu hms check 사용법(예시) 총관리자 2021.10.22 69
347 bin/cassandra -f -R로 startup할때 NullPointerException오류가 나면 조치할 내용 총관리자 2016.04.14 70
346 hbase startrow와 endrow를 지정하여 검색하기 샘플 총관리자 2016.12.07 70
345 Cloudera의 CMS각 컴포넌트의 역할 총관리자 2020.02.10 71
344 small file 한개 파일로 만들기(text file 혹은 parquet file의 테이블) gooper 2022.07.04 75
343 Hadoop 2.7.x에서 사용할 수 있는 파일/디렉토리 관련 util성 클래스 파일 총관리자 2017.09.28 76
342 [CentOS 7.4]Hadoop NFS gateway기동시 Cannot connect to port 2049 오류 발생시 확인/조치 총관리자 2022.03.02 76
341 How-to: Tune Your Apache Spark Jobs (Part 2) file 총관리자 2016.10.31 77

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로