[Oozie] 명령어 모음

etc 2019.07.05 10:56

 

oozie : Apache Hadoop 작업을 관리하는 워크플로우 스케줄러 시스템이다.

-데이터 추출,변환,적재 작업인 ETL(Extraction Transformation Loading)을 수행하기 위해 사용합니다.

 

 

coordinator 등록

-coordinator job을 실행

oozie job -config $job.properties -run

 

coordinator 조회

-등록되어 있는 coordinator job 목록을 조회

oozie jobs -jobtype coord

 

coordinator update

-coordinator의 내용(coordinator.xml) 수정 후 업데이트

oozie job -config $job.properties -update $coordinator_job_id)
ex) oozie job -config aa_job.properties -update 0054885-170318140345166-oozie-hado-C


로그 조회

-job 로그 확인 (에러 내용 확인 가능)

oozie job -log $workflowID


job 재처리

-중지/실패한 job을 재수행 (옵션 failnodes=true : 실패한 job만 재수행)

oozie job -rerun $workflowID -Doozie.wf.rerun.failenodes=true


info 조회

-workflow 상태 확인

oozie job -info $workflowID

 

job KILL

-PREP, SUSPEND, RUNNING 상태의 job을 중단

oozie job -kill $workflowID

 

 

댓글을 달아 주세요

Python Rest API 호출 샘플 코드입니다.

  ex) 지정시간 이후로 수행되는 api kill하는 코드

import httplib, json, datetime

print datetime.datetime.now()          #날짜 출력

INGEST_LIST="/druid/indexer/v1/tasks"  #API 주소
HOST="aaa-bb-001"                      #API 호스트
PORT="8090"                            #API 포트

hour = (datetime.datetime.now() + datetime.timedelta(hours=-9)).hour

conn = httplib.HTTPConnection(HOST, PORT)  #connection 설정
conn.request("GET", INGEST_LIST)           #request 
res = conn.getresponse()                   #response 결과 변수에 저장
taskList = json.loads(res.read())          #json문자열 dictionary로 변환

for task in taskList :                     #list for문
        print "id : " + task
        taskStartTime = task.split('T')[1][0:2]
        if (int(hour)-int(taskStartTime)) > 2 :
                print "KILL ID : " + task
                conn.request("POST", "/druid/indexer/v1/task/" + task + "/shutdown")
                res = conn.getresponse()
                print "response msg : " + json.loads(res.read())

댓글을 달아 주세요

mysql dump 및 import 방법입니다.

 

-DB backup 

1) 테이블 백업

mysqldump --single-transaction -u user -p'password' DB_NM TABLE_NM > table_nm.sql

--single-transaction : 하나의 트랙잭션으로 dump 수행 

  ps ) 용량 큰 테이블 dump 할 경우 해당 테이블 lock 걸림, 이 옵션을 사용해줘야 DB lock 걸리지 않습니다.

 

2) DB 전체 백업

mysqldump --single-transaction --all-databases -u user -p'password' > db_nm.sql

 

-백업한 sql 파일 적용 (import)

mysql -u user -p'password' DB_NM < table_nm.sql

 

 

댓글을 달아 주세요

 

이클립스에서 Synchronize 사용할 때 초기 설정이 화면 전환되도록 설정되어 있는데 

작업하다 보면 상당히 불편합니다. 아래 옵션 적용해주면 아래 영역에 고정되서 화면 전환되지 않습니다.

 

*Window -> Preferences -> Team -> "Open the associated perspective when a synchronize operation completes" -> Never 클릭

 

*설정 후 적용 화면

 

댓글을 달아 주세요

 

eclipse 글꼴 및 크기 변경 방법입니다.

 

1. Window -> Prefernces

2. General -> Appearance -> Colors and Fonts ->Basic -> Text Font -> Edit

 

3. 원하는 글꼴 및 크기 선택 (저는 Verdana 사용합니다.) 

 

4. Apply and Close 클릭하면 변경 완료

댓글을 달아 주세요

Mysql Workbench 작업 시 탭을 닫고 재시작 했을 때 계속해서 이전에 작업한 탭이 열리는 경우가 있는데요 아래 설정 적용하시면 됩니다.


Edit -> Preferences -> SQL Editor -> Save snapshot of open editors on close (체크 해제)



댓글을 달아 주세요

이클립스에서 svn commit 안되면서 java is out of date disable 와 같은 에러가 날 경우

프로젝트 오른쪽 버튼 > Team > CleanUP

 

댓글을 달아 주세요

 

My problem

Caused by: javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class java.util.ArrayList! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.

 

My solution

System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", "java.lang,javax.security,java.util,org.apache.activemq,com")

Add System property => java.util

 

Refernece site => http://activemq.apache.org/objectmessage.html

댓글을 달아 주세요

influxDB 최신 버전으로 설치해주세요.

저는 influxdb-0.9.6.1-1.x86_64.rpm 설치했는데 위와 같은 에러가 나서 

최신 버전 influxdb-0.12.2.1-1.x86_64.rpm 설치해주니까 문제 해결됐습니다.

댓글을 달아 주세요

Hive exception

16/07/18 11:00:43 WARN Hive: Failed to access metastore. This class should not accessed in runtime.

org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
        at org.apache.hadoop.hive.ql.metadata.Hive.getAllDatabases(Hive.java:1236)
        at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:174)
        at org.apache.hadoop.hive.ql.metadata.Hive.<clinit>(Hive.java:166)
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503)
        at org.apache.spark.sql.hive.client.ClientWrapper.<init>(ClientWrapper.scala:194)
        at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:238)
        at org.apache.spark.sql.hive.HiveContext.executionHive$lzycompute(HiveContext.scala:226)
        at org.apache.spark.sql.hive.HiveContext.executionHive(HiveContext.scala:216)
        at org.apache.spark.sql.hive.HiveContext.setConf(HiveContext.scala:448)
        at org.apache.spark.sql.SQLContext$$anonfun$4.apply(SQLContext.scala:274)
        at org.apache.spark.sql.SQLContext$$anonfun$4.apply(SQLContext.scala:273)
        at scala.collection.Iterator$class.foreach(Iterator.scala:727)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at org.apache.spark.sql.SQLContext.<init>(SQLContext.scala:273)
        at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:98)
        at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:109)
        at com.skt.edw.etl.query.Run(query.java:49)
        at com.skt.edw.etl.query.main(query.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:727)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
        at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1523)
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:86)
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:132)
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:104)
        at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:3005)
        at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3024)
        at org.apache.hadoop.hive.ql.metadata.Hive.getAllDatabases(Hive.java:1234)
        ... 28 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1521)
        ... 34 more
Caused by: MetaException(message:Version information not found in metastore. )
        at org.apache.hadoop.hive.metastore.ObjectStore.checkSchema(ObjectStore.java:6664)
        at org.apache.hadoop.hive.metastore.ObjectStore.verifySchema(ObjectStore.java:6645)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:114)
        at com.sun.proxy.$Proxy27.verifySchema(Unknown Source)
        at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:572)
        at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:620)
        at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:461)
        at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:66)
        at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:72)
        at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:5762)
        at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:199)
        at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:74)
        ... 39 more

 

hive-site.xml 체크해주세요.
value 값을 false로 바꿔 주거나 주석처리해주세요.
<property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>                                          
</property>

댓글을 달아 주세요

JSTL에서 fmt:formatNumber type="percent" 사용할 때 소수점 자리 수 추가하는 방법

 

EX ) 소수점 한자리 표현
<fmt:formatNumber type="percent" value="0.1"  pattern="0.0%"/>
결과 값 : 10.0%


EX) 소수점 두자리 표현
<fmt:formatNumber type="percent" value="0.1"  pattern="0.00%"/>
결과 값 : 10.00%

 

pattern에다가 %를 붙여줘야 제대로 표현됩니다.

댓글을 달아 주세요