터미널에서 ls 명령을 이용할 때 파일 별로 구분을 위해서 color 옵션을 제공합니다. never 일때는 색상으로 구분하지 않습니다. $ ls --color=auto$ ls --color=alyways$ ls --color=never 보통 alias 로 ls 명령을 등록하고 사용하는데 LS_COLORS 환경변수를 이용해서 색상을 구분합니다. LS_COLORS="파일종류1=속성1;색1:파일종류2=속성2;색2" 의 형태로 입력하면 됩니다. LS_COLORS=rs=0:di=01;34:ln=01;36 LS_COLOR 설정 참고 -> http://linux-sxs.org/housekeeping/lscolors.html
이번에 시행된 HTTPS SNI 필드 차단에 대해서 간단하게 정리하겠습니다. 이번 차단은 HTTPS 프로토콜이 처음에 접속하고자 하는 서버의 정보를 얻기 위해 DNS와 TLS 통신을 통해 암호화를 위한 키값을 얻어 옵니다. 이때 이용하는 것이 SNI 필드이고 접속하고자 하는 서버의 도메인정보를 가지고 있으며 암호화 되지 않습니다. 즉, 택배를 보낼때 송장의 주소는 암호화 하지 않는 것을 이용하여 송장의 주소를 이용해서 접속을 막는 것입니다. 이 부분은 DNS를 1.1.1.1로 설정하여 우회할 수 있습니다. 1.1.1.1은 클라우드플레어라는 기업에서 운영하는 DNS입니다. 모바일에서는 클라우드플레어의 앱을 이용하여 간단하게 적용할 수 있습니다. SNI 차단이 뭐야? TLS 1.3은 해결책이 될 수 있을까...
우지에는 워크플로우를 작성할 때 도움을 제공하는 기본 EL 상수와 함수가 있습니다. 우지 EL 함수 종류 Basic EL ConstantsKB, MB, GB 등 사이즈 계산을 위한 상수 Basic EL Functionsconcat, trim 등 문자열 관련 기본 함수와 wf:actionData(String actionName) 같은 워크플로우 관련 함수 Workflow EL Functionswf:id() 등 워크플로우의 정보 확인을 위한 함수 Hadoop EL Constants맵리듀스 관련 상수 정보 Hadoop EL Functions하둡 카운터 정보 Hadoop Jobs EL Function하둡 잡의 정보 HDFS EL FunctionsHDFS 파일의 존재여부, 사이즈 확인 정보 HCatalog EL ..
프로그래밍에서 데이터 직렬화(serialization)는 메모리의 객체를 디스크에 저장하거나, 네트워크를 통해 전송되는 형식으로 변환되는 작업입니다. 역직렬화(deserialization)는 디스크에 저장된 데이터를 읽거나, 네트워크를 통해 전송된 데이터를 받아서 메모리에 재구축하는 것입니다. 데이터는 CSV, XML, JSON, binary 형식으로 다양하게 직렬화 될 수 있습니다. CSV, XML, JSON 등의 형식은 사람이 읽을 수 있지만, 저장 공간의 효율성이 덜어지고 파싱하는 시간이 오래 걸립니다. binary는 사람이 읽을 수 없지만 파싱 시간이 짧습니다. 데이터의 양이 작을 때는 파싱시간이 문제가 되지 않지만, 빅데이터의 경우 파싱시간이 문제가 될 수 있습니다. 이를 해결하기 위해서 에이브..
배쉬에서 정규식 연산자는 =~ 를 이용합니다. 정규식을 이용할 때는 변수에 넣어서 처리하는 방법과 바로 이용하는 방법이 있습니다. #!/bin/bash // 변수를 이용하는 방법 re="^[0-9]+$" if [[ $1 =~ $re ]]; then echo "number" else echo "not number" fi // 연산자에 바로 이용하는 방법. 문자를 감싸주지 않음 if [[ $1 =~ ^[0-9]+$ ]]; then echo "number" else echo "not number" fi
vi에서 문자를 검색하는 명령어는 두개 입니다. /: 전진검색?: 후진검색 vi의 명령모드(ESC 입력 상태)에서 두개중 하나를 입력하고 찾으려는 문자열을 입력합니다. ALTER TABLE temp; /ALTER 62,1 22% 이렇게 되면 찾는 문자가 하일라이트 됩니다. 이후 찾은 문자를 이동하는 방법은 다음과 같습니다. n: 앞으로 이동 N: 뒤로 이동 이렇게 문자를 검색하면 찾은 문자가 계속 하일라이팅 됩니다. 이를 초기화 하는 명령어는 다음과 같습니다. 다음의 두 명령어중 하나를 명령모드에서 입력하면 기존에 입력한 검색어가 초기화 됩니다. :noh:nohlsearch
TCP/UDP 네트워크 프로그래밍을 하다보면 클라이언트나 서버를 임시로 작성해야 할 때가 있습니다. 그럴때 nc 명령어를 이용하면 따로 구현할 필요 없이 편리하게 사용할 수 있습니다 nc는 간단한 명령어로 클라이언트나 서버를 테스트해 볼수 있어서 편리한 명령입니다. 대기 명령어(서버, listen)# 9999 포트를 열어서 수신 대기 $ nc -l 9999 # 9999 포트를 열어서 다중 사용자의 수신 대기(연결이 끊어져도 계속 유지) $ nc -lk 9999 # 접속자의 IP 정보 출력 $ nc -lv 9999 접속 명령어(클라이언트, connect) nc 127.0.0.1 9999
쉘프로그램에서 전달받은 파라미터는 $ 기호를 이용하여 확인합니다. 이를 이용해서 프로그램 실행에 필요한 파라미터 개수를 확인하여 오류 여부를 전달 할 수 있습니다. $#: 전체 파라미터의 개수$0: 프로그램의 이름 $1: 첫번째 파라미터 ./sample.sh a b c d 라고 실행하면 $# = 4$0 = sample.sh$1 = a$2 = b $3 = c $4 = d가 됩니다. #!/bin/bash if [ $# -ne 원하는_매개변수_갯수 ] then echo "usage: $0 yyyymmdd hh" exit 1 fi
하이브 테이블의 로케이션과 파티션의 로케이션은 desc 명령으로 확인할 수 있고,파티션의 정보 수정 방법은 다음과 같습니다. # 테이블 정보 및 로케이션 확인 desc formatted [테이블명]; # 테이블의 파티션 목록 확인show partitions [테이블명]; # 신규 파티션 추가 ALTER TABLE [테이블명] ADD PARTITION (yymmdd='20180510'); # 파티션의 LOCATION 수정 ALTER TABLE [테이블명] PARTITION (yymmdd='20180510') SET LOCATION 'hdfs://127.0.0.1/user/'; # 파티션 삭제 ALTER TABLE [테이블명] DROP PARTITION (yymmdd='20180510');
YARN은 CLI 명령어와 웹UI, REST API를 제공합니다. 이중에서 클러스터의 사용량은 모니터링 툴을 이용해서 확인할 수 있지만,모니터링 툴을 이용할 수 없는 상황에서는 REST API를 이용하여 확인할 수 있습니다. 상세한 사용법은 REST API 사용 매뉴얼을 확인하시면 됩니다. 여기서는 클러스터의 메모리 사용량을 REST API로 확인해 보도록 하겠습니다. 클러스터의 메모리 사용량은 메트릭(Metric)으로 확인할 수 있습니다. 메트릭 REST API 주소는 다음과 같습니다. 이 주소를 파이썬을 이용한 스크립트로 호출하면 다음과 같은 결과를 확인할 수 있습니다. http:///ws/v1/cluster/metrics 다음의 스크립트는 메트릭 API를 호출합니다. 호출 헤더에 json 형태의 반..
우지는 실행중에 잡에 등록된 컨피그 프로퍼티 값을 수정할 수 있습니다. 1. 우지에 등록된 설정값을 xml 로 받고2. xml 을 수정후3. xml 을 우지 설정값으로 update 하면 됩니다. 1. 설정값 로컬 다운로드 oozie job -configcontent OOZIE-COORD-ID >> OOZIE-COORD-ID.xml 2. 수정되는 상태 확인(실제로 변경하지는 않음) oozie job -oozie http://localhost:11000/oozie -config OOZIE-COORD-ID.xml -update OOZIE-COORD-ID -dryrun 3. 설정값 변경 oozie job -oozie http://localhost:11000/oozie -config OOZIE-COORD-ID.x..
HDFS 조회중 item limit 으로 인해 발생하는 다음의 오류는 hdfs-site.xml 에 설정된 dfs.namenode.fs-limits.max-directory-items 의 값보다 많은 수의 개체가 생성되어서 그렇습니다. ERROR [uber-SubtaskRunner] org.apache.hadoop.hive.ql.Driver: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteException The directory item limit of /user/ is exceeded:..
쿼리 실행중 MetaException이 발생하는 경우가 있습니다. 메타스토어에서 쿼리상의 테이블 정보를 조회하는 과정에서 오류가 발생하여 출력됩니다. 이때 hive CLI 상에서는 MetaException의 쿼리만 확인이 가능하기 때문에 확인이 힘든 경우가 많습니다. 따라서 이경우에는 메타스토어의 로그를 확인하면 정확한 오류을 확인할 수 있습니다. 이번에 발생한 오류는 다음과 같았습니다. 2018-11-30T05:19:09,495 ERROR [main([])]: ql.Driver (SessionState.java:printError(1097)) - FAILED: SemanticException MetaException(message:Exception thrown when executing query : ..
- Total
- Today
- Yesterday
- airflow
- build
- 오류
- SQL
- 파이썬
- SPARK
- 다이나믹
- S3
- java
- Linux
- emr
- 하둡
- HDFS
- 백준
- Tez
- 알고리즘
- HIVE
- Python
- Hadoop
- oozie
- mysql
- nodejs
- hbase
- error
- bash
- 하이브
- 정올
- AWS
- ubuntu
- yarn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |