하이브에서 EXTERNAL 설정으로 생성한 테이블에 디렉토리에 파일을 추가하고 테이블의 파티션 추가를 위해서 "repair table" 명령을 사용하여 처리할 수 있다. 그런데 Hive 1.3 버전 이상에서는 파티션에 허용되지 않는 문자가 있는 디렉토리에 한해서 예외를 반환할 수도 있다. 이럴 때는 다음의 설정을 추가하고 호출하면 된다. set hive.msck.path.validation=ignore;MSCK REPAIR TABLE table_name; 스택오버플로우 - http://stackoverflow.com/questions/40043986/hdinsight-hive-msck-repair-table-table-name-throwing-error하이브문서(Recover Partition 참조) -..
terable 순차적으로 접근이 가능한 리스트 등 Generator 메모리에 값을 저장하는 것이 아니라, for 문이 처리하는 시점에 값을 생성함. 한번 만 사용이 가능함 Yield 마치 return 문 처럼 동작함 호출되는 시점에 동작하는 것이 아니라, for 문이 처리하는 시점에 값을 생성함 http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do
데이터의 저장을 칼럼단위로 처리하는 데이터베이스를 말한다. 칼럼 단위의 값은 데이터가 유사할 가능성이 높다. 이로 인해 높은 압축율을 얻을 수 있다. MIN, MAX, SUM, COUNT 와 같은 연산에서 높은 성능을 얻을 수 있다. 아마존 Redshift, 아파치 Cassandra, HBase 등이 있다. 컬럼 지향 데이터베이스는 데이터를 컬럼 단위로 묶어서 저장한다. 그런 다음 이 컬럼값은 디스크 상에 연속적으로 저장된다. 이 방식은 전통적인 데이터베이스의 전체 로우가 연속적으로 저장되는 일반적인 로우 지향형 접근방식과 다르다. 컬럼 기반으로 데이터를 저장하는 이유는, 특정 쿼리에 대해서는 로우의 모든 데이터가 필요하지 않다는 가정에 기반하고 있다. 이러한 경우는 특히 분석적인 데이터베이스에서 자주 ..
아파치 하둡2.0의 YARN 위에서 동작하는 비동기 사이클 그래프 프레임워크이다. pig, hive와 연동하여 사용하면 기존의 mapreduce에 비하여 성능이 향상되는 효과를 얻을 수 있다. hadoop을 크게 저장을 위한 hdfs와 분산 처리를 위한 mapreduce로 나눌 수 있는데,mapreduce 부분이 처리과정이 분할되면 다음 처리를 위한 데이터를 hdfs에 저장하게 되는데 이 부분을 제거하고 데이터를 메모리에 저장하게 함으로써 처리 성능을 높여 준다. 기존에 stage 사이의 정보가 hdfs에 저장되는 것을 메모리를 활용하여 처리함으로써 성능을 높여 주는 것이다. * stage 가 나누어 지지 않는 작업의 경우 크게 향상 되지 않을 수도 있다. ** MR에 비하여 작업이 오히려 늦어질수도 있..
올해 초 하이브 2가 발표 되었는데 그 내용을 정리해 본다. * 주요 내용은 LLAP의 적용, 기존 MR 엔진이 deprecated 되고 Tez 엔진이 적용, Spakr 지원 강화가 될 것 같다. New Functionality- HBase metastore (HIVE-9452) – alpha- 현재 메타스토어 구현은 테이블과 파티션이 늘어나면 느려진다. - 실행 계획을 짜는 시간이 더 줄어들게 되면서 더 빨라진다. - LLAP(Live Long and Process) (HIVE-7926) – beta- 새로운 하이브리드 실행모델- caching of columnar data, JIT-friendly operator pipelines, - and reduced overhead for multiple qu..
하둡은 현재 리소스 사용현황을 확인할 수 있는 웹 페이지를 제공하고, 이 웹페이지의 포트는 yarn-site.xml 파일을 수정하여 변경할 수 있다. yarn-default.xml 의 기본값은 http는 8088, https는 8090 이다. 하둡이 실행된 서버에서 웹앱으로 접속하기 위해서는아래와 같이 alias를 등록해 두고 사용하면 편리하다. alias rm='lynx http://IP:8088'
아마존에서 "아마존 고(amazon go)"라는 새로운 서비스를 소개 Our checkout-free shopping experience is made possible by the same types of technologies used in self-driving cars: computer vision, sensor fusion, and deep learning 자율주행 자동차와 동일한 센서기술과 딥러닝을 이용하여 마트에서 이용자가 계산을 하지 않고 자동으로 현재 가지고 있는 물건을 계산하여 주는 기술이다. 아마존 고라는 앱을 이용하고, 현재는 아마존 본사에서, 직원들을 대상으로 서비스 중 https://www.amazon.com/b?ie=UTF8&node=16008589011
[Creational] 1. Factory Method Pattern - 이 패턴은 다른 패턴에서 전반적으로 사용이 된다.- 동일한 인터페이스를 상속하는 클래스를 만들고, 인터페이스에 따른 클래스를 생성하는 패턴 2. AbstractFactoryPattern - Factory Method Pattern를 보강하는데 도움을 준다. 3. BuilderPattern - Factory Method Pattern와 비교해 보라구 하네요. 4. SingletonPattern - AbstractFactoryPattern을 만드는데 이용된다. 5. PrototypePattern - 아마도 가장 복잡한 creational pattern일 것이다. CommandPattern과 같이 이용된다. [Structural] 1. ..
하이브에서 다음과 같이 지정한 경로에 파일이 존재하지 않으면 다음과 같은 오류가 발생한다. Launching Job 1 out of 1Number of reduce tasks is set to 0 since there's no reduce operatorjava.io.IOException: Not a file: hdfs://경로at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:286) 이럴때는 지정한 경로 하위의 디렉토리까지 읽을 수 있게 지정하면 된다. 다음의 프로퍼티를 설정하면 된다. SET mapred.input.dir.recursive=TRUE;
아마존 AWS에 생성한 EC2 인스턴스에 접속하기 위해서는 ssh 를 이용하여 연결하면 된다. 1. EC2인스턴스를 생성할 때 만든 키페어를 다운로드 2. 다운로드한 키를 .ssh/ 폴더로 이동3. chmod 600 [키] 명령으로 키의 소유권을 rw 모드로 변경4. ssh -i .ssh/[키이름] ec2-user@[ec2 아이피] EC2 Management Console 에서 인스턴스를 선택하고 해당 인스턴스의 Description 탭에서 public IP 를 확인한다.
- 데이터 이동 모니터링 기술 나이아가라파일의 약자(Niagarafiles, NiFi)- 미국 국가안보국이 만들고 오픈소스로 공개- 아파치 재단에서 관리 - 이기종 시스템간의 네트워크 데이터 이동을 자동화하고 모니터링 하기 위한 프로젝트 - 데이터의 형식, 프로토콜이 달라도 분석 가능- JVM 위에서 동작 블로터 - http://www.bloter.net/archives/213898NiFi 홈페이지 - https://nifi.apache.org/docs.html
하둡은 형식이 없는 데이터를 처리하다보니 처리중 오류가 발생할 경우가 있다. 예를 들어 텍스트 파싱을 진행하는 매퍼 작업의 경우 10개중 1개가 실패할 경우 성공으로 인식하여 처리하게 할 수 있다. 이런 경우 다음의 설정값을 이용하여 처리하면 된다. 매퍼작업과 리듀스 작업을 나눠서 설정이 가능하다. [신버전]mapreduce.map.failures.maxpercent=10;mapreduce.reduce.failures.maxpercent=10; [구버전 Deprecated]mapred.max.map.failures.percent=10;mapred.max.reduce.failures.percent=10; 하둡의 버전이 달라지면서 기존의 설정과 이름이 바뀌었기 때문에 하둡 버전에 맞게 사용해야 한다.
우지를 이용하여 하이브 액션 처리시 다음의 오류가 발생한다. Caused by: MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.reconnect(HiveMetaStoreClient.java:263)at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:88)at com.sun.proxy.$Proxy40.alter_partitions(Unknown Sou..
AWS 커맨드를 이용하여 S3의 용량을 확인하는 방법은 다음과 같다. summarize 옵션을 이용하면 최종적으로 s3 경로상의 오브젝트 개수와 총 사이즈를 알려준다. aws s3 ls s3://[버켓]/디렉토리 --summarize 2016-04-14 04:11:18 0 Bytes test Total Objects: 915247 Total Size: 212312312 human-readable 옵션을 이용하면 사이즈를 사람이 읽기에 편하게 보여준다. aws s3 ls s3://[버켓]/디렉토리 --summarize 2016-04-14 04:11:18 0 Bytes test Total Objects: 915247 Total Size: 2.3GB recursive 옵션을 이용하면 하위폴더의 용량까지 확인이..
윈도우10으로 업데이트 하고 나서 windows modules installer walker 라는 프로세스가 프로세스가 점유율을 높게 차지하여 다른 프로세스가 동작을 하지 못하는 경우가 많이 발생한다. windows modules installer walker는 윈도우 업데이트와 관련이 있다. 윈도우 업데이트가 지속적으로 동작하여 CPU 점유율을 가져가서 이런 일이 발생하는 것이다. 이를 중지하는 방법은 다음과 같다. 서비스(services.msc)를 실행하고 여기있는 서비스 목록에서 "Windows Module Installer"를 중지하면 된다. 윈도우10 최적화 or 팁 -> http://blogto.tistory.com/621
로컬PC와 서버의 파일전송을 위해서 ftp를 설치하여 이용하였는데, sz, rz 커맨드를 이용하면 ftp를 이용하지 않고 파일을 전송하는 것이 가능하다. sz, rz 커맨드를 이용하기 위해서는 lrzsz 커맨드를 설치해야 한다. yum이나 apt-get 을 이용하여 커맨드를 인스톨한다. yum -y install lrzsz rz sz [파일명] 이렇게 입력하면 파일을 업로드, 다운로드가 가능하다. * 주의할 점은 ZMODEM 프로토콜을 구현한 접속 프로그램에서만 사용가능하다. ex) XShell, SecureCRT, PuTTy
자바에서 HTML 파싱을 위해서 jsoup 라이브러리를 이용하면 된다. 이 라이브러리를 이용하면 html 을 get, post 방식으로 가져오는 것부터 파싱하는 것까지 한번에 처리할 수 있다. Jsoup 홈페이지(https://jsoup.org/)에서 다운로드 해도 되고, 메이븐으로 디펜던시를 추가해도 된다. org.jsoup jsoup 1.10.1 이 라이브러리를 이용하여 다음의 해외축구 사이트의 순위표를 파싱하여 처리해보면다음과 같이 처리할 수 있다. http://score.sports.media.daum.net/record/soccer/epl/trnk.daum https://jsoup.org/
자바에서 네트워크 프로그래밍을 하는 중에 프록시를 설정하는 방법은 Proxy 클래스를 이용하는 것과 시스템 프로퍼티에 프록시를 설정하는 방법이 있다. 아래의 예에서는 HttpURLConnection 을 이용하는 경우에는 Proxy 클래스를 이용하면 간단하게 처리할 수 있다. 만약 다른 외부 라이브러리를 이용하여 처리하는 경우 해당 라이브러리에 프록시 설정이 없다면시스템 프로퍼티를 이용하여 처리하면 된다. ex) jsoup package sdk.java.web; import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.InetSocketAddress;import ..
쉘 스크립트 수행시 로그 출력을 위해서 다음의 함수를 이용하면 좋다. 일자 시간을 출력하기 때문에 나중에 확인하기에도 좋다. # 로그 출력 함수 function fncPrintLog(){ vLogTime=`date '+%Y-%m-%d %H:%M:%S'`; vLogTime=${vLogTime:0:19} echo "[${vLogTime}] "${1}} fncPringLog "start."처럼 사용하면 되고 출력은 아래와 같다. [2016-11-08 05:07:01] start.
개행을 위한 제어 문자에는 몇가지 종류가 있는데 그중에서 가장 많이 사용하는 것이, LF, CR, CR+LF 이다. LF: Line Feed - \n (^M)CR: Carriage Return - \rCR+LF : \r\n 시스템에 따라 이중 하나만 사용해도 개행이 되는 시스템도 있고, 모두를 지원하는 시스템도 있다. 문제는 리눅스의 개행은 \n 이고, 자바는 \r, \n, \r\n을 모두 지원한다. 따라서 문자열 처리중 의도하지 않은 오류가 발생할 수 있다. 자바에서 문자열을 개항문자로 split 하여 처리하는 중 의도하지 않은 개행이 발생한다면 이로 인한 오류일 가능성이 높으므로 문자열 처리전 LF를 제거해주 면 된다. 제거 방법은 다음과 같다. :%s/^M$//g tr -d '\r' < inputf..
크론탭이나 다른 방법으로 정기적으로 프로그램을 실행하고 로그를 출력하고 나면 나중에는 로그파일이 많아지게 된다. 이럴때 로그파일을 한번 정리해야 할 필요가 있을때 다음과 같이 find 명령어를 이용하여 처리하면 된다. 어제자 이름으로 생성된 파일을 압축하고, 7일전 파일은 삭제한다. * find로 검색한 파일을 압축할 때도 사용가능 #!/bin/bash cd /mnt/crontab/hive_metadb_check/ vYesterDayYYYYMMDD="*`date -d "yesterday" -u +\%Y\%m\%d`*"v7DayPrevYYYYMMDD="*`date -d "-7 day" -u +\%Y\%m\%d`*" # 어제자 로그 파일 정리 find ./logs/ -name "*${vYesterDayYYY..
쉘 스크립트에서 mysql 명령어를 사용하는 방법은 -Bse 옵션이나, -e 옵션을 이용하면 된다. 사용하는 방법은 두개의 옵션이 동일하다. 하지만 결과가 아래와 같이 약간 다르게 나타난다. 결과값 방법에 따라 사용하면 되겠다. mysql -e "select * from TABLE;"mysql -Bse "select * from TABLE;" [user ~]$ mysql -e "select * from TABLE;"+--------+----------------+-----------------------------+| VER_ID | VERSION | COMMENT |+--------+----------------+-----------------------------+| 1 | 0.1.0 | TEST |..
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 예전에 만든 EC2서버에서 새로운 지역의 S3 이용중 위와 같은 오류가 발생할 수가 있다. 이는 기존에는 2버전의 인증을 이용했지만, 2014년 2월 이후 생성된 지역은 4버전의 인증을 이용하기 때문에 발생한다. Amazon S3 supports Signature Version 4, a protocol for authenticating inbound API requests to AWS services, in all AWS regions. At this time, AWS regions created before January 30, 2014 ..
- Total
- Today
- Yesterday
- build
- hbase
- SPARK
- 다이나믹
- 하둡
- Hadoop
- SQL
- nodejs
- mysql
- Linux
- 오류
- ubuntu
- bash
- yarn
- Python
- 백준
- 하이브
- emr
- HDFS
- oozie
- 알고리즘
- S3
- HIVE
- 정올
- 파이썬
- airflow
- Tez
- error
- java
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |