기존에 만들었던 IMS 검색엔진의 아이디어들을 정리하면서 동시에 Mac과 친해질 겸 Mac 환경으로 진행할 예정. 그리고 기존 검색엔진은 ELK 6 버전에서 만들었었는데 7 버전에서 구현해보며 최신 버전 체험도 해보려고 한다. 서버에 있던 소스들을 Mac 로컬 환경으로 내려받아 구동해보려고 했더니 index 만드는 것부터 변경 사항이 있었고, Search API에도 type 구조가 드디어 없어지면서 달라진 부분이 바로 눈에 띄었다. […]
[Tibero] _TX_RECOVERY_SUSPEND=Y
_TX_RECOVERY_SUSPEND=Y 대용량 트랜잭션 수행 중 DB가 종료되었을 때, 복구 대상인 트랜잭션들을 undo segment에서 모두 찾아 해당 object에 반영해주는 작업을 수행하게 된다. 대용량 insert 또는 update 도중 DB가 종료된 경우 모두 rollback 처리가 선행되며 이 과정에서 해당 object에 대한 아무런 작업을 할 수 없고 모든 DDL이 수행되지 않는 상태가 되는데 이런 경우 _TX_RECOVERY_SUSPEND 파라미터를 적용해볼 수 […]
[oracle] 12c Silent 설치
Oracle 12c silent 모드 설치 사전 준비 커널 파라미터 설정 vi /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4056393728 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 sysctl -p User Limit 설정 vi […]
[Hadoop] Oozie 설치
Oozie 설치 아파치 우지(Apache Oozie)는 하둡의 잡(job)을 관리하기 위한 서버 기반의 워크플로 스케줄링 시스템이다. 사전 준비 다음과 같은 사전 준비 작업이 필요하다. Java java -version java version “1.8.0_181” Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) Maven mvn -version Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00) Maven home: /app/maven Java […]
[Hadoop] Hue 설치
Hue 설치 Hue(Hadoop User Experience)를 이용하면 다양한 Apache Hadoop 에코시스템을 Web Interface로 접근할 수 있다. 의존성 패키지 yum -y install python2-devel sqlite-devel libxml2-devel libxslt-devel libffi-devel openssl-devel openldap-devel gmp-devel execvp-devel gcc gcc-c++ MySQL django의 Repository DB로 mysql을 사용한다. hue를 컴파일할 때 mysqld_config 명령도 필요하므로 먼저 설치해놔야 한다. 참고 : mysql 설치 미리 설치된 mysql 데이터베이스에 아래와 […]
[Hadoop] Hive 설치
Hive 설치 Hive를 이용하면 HDFS에 저장된 데이터를 HiveQL이라는 SQL-Like 언어로 쿼리할 수 있다. 사전 준비 JDK Hadoop Hadoop 파일시스템에 데이터파일을 저장하기 때문에 파일 저장소로서 하둡이 필수적이고, Hive가 설치되는 서버에 Hadoop Client가 설치돼 있어야 한다. (Hadoop 서버의 디렉토리를 통채로 복사해놓으면 된다.) 참고 : Hadoop 설치 MySQL metastore db로 mysql을 이용하기 위해 사전에 설치가 돼 있어야 한다. […]
[PySpark] dataframe을 python 자료형(dict)으로 변형하기
[PySpark] dataframe을 python 자료형(dict)으로 변형하기 spark driver 에서 데이터를 바로 사용하는 경우, dataframe은 다루기가 어려운 것 같다. dataframe의 collect()와 asDict()를 이용하면 Python 자료형으로 변환할 수 있다. dataframe 생성 pyspark에서 elasticsearch index를 조회해 dataframe을 생성한다. >>> from pyspark.sql import SQLContext >>> sqlContext = SQLContext(sc) >>> df = sqlContext.read.format(“org.elasticsearch.spark.sql”).option(“es.nodes”,”192.168.179.141:9200″).option(“es.nodes.discovery”, “true”).load(“${INDEX}/${TYPE}”) >>> df.registerTempTable(“tab”) >>> df = sqlContext.sql(“SELECT distinct […]
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기 elasticsearch-hadoop connector 를 이용해서 spark dataframe을 생성한다. Spark 설치 spark 다운로드 및 환경설정 필요한 요소만 설치하고자 하는 경우 소스코드를 내려받아서 maven을 이용해 빌드해도 되지만 pre-compiled 바이너리를 이용한다. wget http://mirror.navercorp.com/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz tar -xvzf spark-2.3.2-bin-hadoop2.7.tgz -C /app/spark/. mv /app/spark/spark-2.3.2-bin-hadoop2.7 /app/spark/2.3.2 find /app/spark/2.3.2 -mindepth 1 -maxdepth 1 -type d | xargs -I {} […]
[ElasticSearch] Scroll API
[ElasticSearch] Scroll API elasticsearch에서 기본적인 search API는 한 페이지를 리턴하고나면 search context가 소멸된다. search API에서 from, to 값을 이용해 pagination을 구현한 것은 별개의 쿼리가 매번 수행된 것으로 RDBMS로 치면 cursor가 소멸된 것과 같다. 대량의 데이터를 조회하기 위해서는 다른 방식을 사용해야하는데, Elasticsearch에서 RDBMS의 cursor와 같은 기능을 하는게 Scroll API 이다. 사용 방법 curl을 이용해 간단히 scroll […]
[Hadoop] 가용성을 고려한 Hadoop 2.x Cluster 설치
가용성을 고려한 Hadoop Cluster 설치 Namenode와 Resourcemanager를 active node,standby node로 각각 두 벌씩 구성함으로써 고가용성을 고려한 Hadoop Cluster를 설치한다. 사전 준비 의존 패키지 설치 namenode와 resourcemanager가 장애 상황에서 standby -> active 상태로 전환될 때에 fuser 명령을 이용해서 장애노드의 프로세스들을 정리하므로 psmisc 패키지를 설치한다. yum -y install psmisc JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 페이지에서 JDK 8 버전 바이너리 다운로드하고 […]