원하는 날짜 포맷(yyyyMMdd,yyyyMMddHH 등)을 입력하여 현재날짜를 출력합니다.

  public static String getCurrent(String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    return sdf.format(Calendar.getInstance().getTimeInMillis());
  }

 

 

댓글을 달아 주세요

 

ex) 현재 위치에서 aa로 시작하는 파일 모두 찾기 

find . -name 'aa*' -print

 

 

댓글을 달아 주세요

beeline
!connect jdbc:hive2://server-host-name:10000 user user

'Programming > Hive' 카테고리의 다른 글

[Hive] beeline 접속 명령어  (0) 2019.07.05
[Hive] 테이블 스키마 컬럼 추가 방법  (0) 2019.07.05
[Hive] parquet 압축 설정  (0) 2019.05.29
[Hive] 쿼리로 파일 추출  (0) 2019.05.29
[Hive] udf 함수 등록 및 사용 방법  (0) 2019.05.23
[Hive] 스키마 샘플  (0) 2019.05.16

댓글을 달아 주세요

-1번 namenode를 Active로 절체하고자 할 때 

hdfs haadmin -failover nn2 nn1

댓글을 달아 주세요

리눅스에 익숙하지 않을 때 많이하는 실수로 윈도우에서 작업한 텍스트를 리눅스로 업로드 후 사용하면 사용이 안됩니다. 예를들어 쉘 파일을 윈도우에서 작업 후 리눅스에서 실행하려고 하면 에러가 발생하는데 리눅스 사용 초기에 한참 고생을 했네요. ㅠㅠ

 

vi로 파일 열어서 아래 명령어 실행하면 됩니다.

:se ff=unix

 

댓글을 달아 주세요

[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

 

 

댓글을 달아 주세요

이 방법은 테이블 스키마 마지막에 컬럼을 추가할때만 사용됩니다.

 

ALTER TABLE db_nm.tb_nm ADD COLUMS (`col10` STRING COMMENT '10번째 컬럼', `col11` STRING);

 

'Programming > Hive' 카테고리의 다른 글

[Hive] beeline 접속 명령어  (0) 2019.07.05
[Hive] 테이블 스키마 컬럼 추가 방법  (0) 2019.07.05
[Hive] parquet 압축 설정  (0) 2019.05.29
[Hive] 쿼리로 파일 추출  (0) 2019.05.29
[Hive] udf 함수 등록 및 사용 방법  (0) 2019.05.23
[Hive] 스키마 샘플  (0) 2019.05.16

댓글을 달아 주세요

 

아래 사이트 참고하여 작성한 코드입니다.

 

정렬알고리즘(sorting algorithm) 정리

1.버블정렬(Bubble sort)

medium.com

	public static void main(String[] args) {
		int arr[] = {41,34,6,16,38,36,28,19,45,43,49};
		for (int i : mergeSort(arr)){
			System.out.print(i +" ");
		}
	}
	
	/**
 	* 버블정렬
 	*  
 	*/
	public static int[] bubbleSort(int[] arr){
		for(int i=arr.length-1; i>0; i--){
			for(int j=0; j<i; j++){
				if (arr[j] > arr[j+1]){
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		return arr;
	}
		
	/**
 	* 선택정렬
 	*  
 	*/
	public static int[] selectionSort(int[] arr){
		for(int i=0; i<arr.length; i++){
			int min = arr[i];
			for(int j=i+1; j<arr.length; j++){
				if(min > arr[j]){
					min = arr[j];
					arr[j] = arr[i];
					arr[i] = min;
				}
			}
		}
		return arr;
	}
		
	/**
 	* 삽입정렬
 	*  
 	*/
	public static int[] insertionSort(int[] arr){
		for(int i=1; i<arr.length; i++){
			for(int j=i; j>0; j--){
				if(arr[j] < arr[j-1]){
					int tmp = arr[j];
					arr[j] = arr[j-1];
					arr[j-1] = tmp;
				}
			}
		}
		return arr;
	}
		
	/**
 	* 병합정렬
 	*  
 	*/
	public static int[] mergeSort(int[] arr){
		System.out.println("before");
		for(int i : arr){
			System.out.print(i + " ");
		}		
		System.out.println();
		
		if (arr.length < 2){
			return arr;
		}
		
		int mid = arr.length / 2;
		int[] leftArr = mergeSort(Arrays.copyOfRange(arr, 0, mid));
		int[] rightArr = mergeSort(Arrays.copyOfRange(arr, mid, arr.length));
		int[] mergedArr = new int[arr.length];
		int m = 0, l = 0, r = 0;
		while (l < leftArr.length && r < rightArr.length) {
			if (leftArr[l] < rightArr[r]) {
				mergedArr[m++] = leftArr[l++];
			} else {
				mergedArr[m++] = rightArr[r++];
			}
		}
		while (l < leftArr.length) {
			mergedArr[m++] = leftArr[l++];
		}
		while (r < rightArr.length) {
			mergedArr[m++] = rightArr[r++];
		}
		System.out.println("after");
		for(int i : mergedArr){
			System.out.print(i + " ");
		}		
		System.out.println();
		return mergedArr;
	}

 

 

댓글을 달아 주세요

DataNode 추가

1. NameNode의 hosts 파일에 추가할 DataNode IP,HOST 추가

vi /etc/hosts

2. NameNode의 includes 파일을 생성 또는 편집하여 추가할 node의 hostname을 추가

vi /hadoop설치경로/etc/hadoop/dfs.hosts

3. 추가한 서버 접속 후 노드 실행

hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager

4. Namonde 서버에서 node refresh 명령 수행

hdfs dfsadmin -refreshNodes

 

DataNode 제거

1. NameNode의 dfs.hosts.exclude 파일을 생성 또는 편집하여 추가할 node의 hostname을 추가

vi /hadoop설치경로/etc/hadoop/dfs.hosts.exclude

2. Namonde 서버에서 node refresh 명령 수행

hdfs dfsadmin -refreshNodes

3. NameNode web으로 접속하여 node decommissioned가 완료되면 NameNode의 excludes 파일을 열어 제거할 node의 hostname을 삭제한다.

 

댓글을 달아 주세요

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())

댓글을 달아 주세요