하둡은 대규모 데이터의 이동을 위해서 맵리듀스를 이용한 DistCp를 제공한다. * 여러군데의 파일을 각각의 폴더 위치로 이동시키는 것은 불가* 목적지(destination) 폴더에 파일이 존재하면 파일이 전달되지 않을 수도 있다. 파일 이동시 확인하도록 하자. # distcp 명령hadoop distcp hdfs://source hdfs://destination # update or overwrite# 파일 이름이 동일할 경우 update는 파일사이즈를 비교해서 옮기고, overwrite는 그냥 덮어쓴다. hadoop distcp -update hdfs://source hdfs://destinationhadoop distcp -overwrite hdfs://source hdfs://destination..
하이브의 NULL 값에 대한 기본 표현은 \N 이다. 따라서 하이브로 쓴 파일을 읽어보면 \N으로 표현되어 있어 파일을 열었을 때 헷갈릴 수가 있다. 이는 하이브 테이블 설정의 serialization.null.format 를 이용하여 원하는 형태로 수정할 수 있다. CREATE EXTERNAL TABLE people_v1 ( id INT, username STRING, email_address STRING, phone_number STRING, first_name STRING, last_name STRING, middle_name STRING, sex STRING, birthdate DATE, join_date STRING, previous_logins INT, last_ip STRING)ROW FOR..
http://aqicn.org/map/seoul/ 특정 지역의 미세먼지 농도를 확인할 수 있음 https://earth.nullschool.net/#current/chem/surface/level/overlay=cosc/orthographic=-235.55,38.67,512/loc=126.229,37.007 현재 지역의 대기 상황과 바람의 흐름을 확인할 수 있기 때문에 보기가 좋음 https://earth.nullschool.net/http://aqicn.org/city/seoul/
하둡 홈페이지에 기술된 특징은 다음과 같다. - Minimum required Java version increased from Java 7 to Java 8- Support for erasure encoding in HDFS- YARN Timeline Service v.2- Shell script rewrite- MapReduce task-level native optimization- Support for more than 2 NameNodes.- Default ports of multiple services have been changed.- Support for Microsoft Azure Data Lake filesystem connector- Intra-datanode balancer- Rew..
우지는 REST API로 잡목록 확인, 잡수행을 위한 웹서비스 API를 제공한다. 웹서비스 https://oozie.apache.org/docs/4.0.0/WebServicesAPI.html HTTP를 이용하여 우지 콘솔 명령을 수행할 수 있으므로이를 이용하여 잡 모니터링, 수행이 가능하다. - 잡 목록 확인http://주소/oozie/v1/jobs?jobtype=coord&len=10000&filter=status=RUNNING - 잡 정보 확인http://주소/oozie/v1/job/[워크플로우|코디에티어ID]?show=info&len=10000 기본적인 API는 위와 같다. * 우지에서 제공하는 DOC에서 정보 확인이 가능하고, 조건등을 자세하게 확인하기 어렵다면 우지에서 기본적으로 제공하는 웹콘솔..
AWS의 EMR에서 하이브를 이용하다 보면 한번씩 이런 오류가 발생할 때가 있다. 원인은 하이브의 메타스토어 중 VERSION 테이블에 여러개의 정보가 들어가 있어서이다. 해당 테이블에는 버전정보가 하나, 다시말해 1row 만 있어야 하는데 하이브 소스에서 해당 정보가 없으면 insert 하는 로직이 있어서 두개의 정보가 들어가서 오류가 발생한다. 이럴경우 VERSION 테이블에 1번 row 의 데이터외에 나머지 정보는 모두 지워버리면 된다. 하이브의 DB 정보는 hive-site.xml 파일을 확인하면 DB 접속 정보를 알 수 있다. 이 정보를 이용하여 DB에 접속하여 VERSION 테이블의 정보를 지우면 된다. http://www.popit.kr/hive-metastore-contains-multip..
그리디 알고리즘을 이용하여 저울 문제를 해결할 수 있다.
서비님이 JSON 라이브러리의 속도 관련해서 분석을 해주셨다. 많이 사용되고 있는 아래의 JSON 파싱 라이브러리 관련해서속도 체크를 한 결과 다음과 같다. JSON.simple ( Yidong Fang )GSON ( Google )Jackson ( FasterXML )JSONP ( Oracle ) 당신의 개발 환경이 빅데이터처리와 같이 주로 큰사이즈의 JSON을 처리해야한다면 Jackson 을 써라. 대용량 환경에서 GSON은 좋지않은 선택임.마이크로 서비스와 분산아키텍처 설정등과 같이 작은 용량의 많은 json 파일을 처리하는 환경이라면 GSON을 써라.대용량과 소용량 모두를 다양하게 처리하는 환경이라면 양쪽에서 2순위 정도를 기록한 JSON.simple 이 좋을수도 있겠다. 나는 작은 용량의 데이터..
내 모습이 보이지 않아 앞길도 보이지 않아 나는 아주 작은 애벌레 살이 터져 허물 벗어 한 번 두 번 다시 나는 상처 많은 번데기 추운 겨울이 다가와 힘겨울지도 몰라 봄바람이 불어오면 이제 나의 꿈을 찾아 날아 날개를 활짝펴고 세상을 자유롭게 날거야노래하며 춤추는 나는 아름다운 나비날개를 활짝펴고 세상을 자유롭게 날거야노래하며 춤추는 나는 아름다운 나비 거미줄을 피해 날아 꽃을 찾아 날아 사마귀를 피해 날아 꽃을 찾아 날아 꽃들의 사랑을 전하는 나비 워우워~ 날개를 활짝 펴고 세상을 자유롭게 날거야 노래하며 춤추는 나는 아름다운 나비 날개를 활짝 펴고 세상을 자유롭게 날거야 노래하며 춤추는 나는 아름다운 나비 Spread my wings and fly away Ride the wind sailing on..
하둡을 이용하여 파이썬 프로그램을 실행하던중로컬에서는 실행이 되는데, MR을 이용하여 실행하면 다음과 같은 오류가 발생하는 경우가 있다. os.system("sudo apt-get -y install python-pip") sudo: no tty present and no askpass program specified 로컬에서 바로 실행을 하면 sudo 명령을 사용할 수 있는데,mr 을이용하면 사용이 불가능하다. 이는 mr을 이용하여 실행하면, 프로그램을 실행하는 노드로 ssh를 이용하여 접속을 하고해당 프로그램을 실행시키는데 이때 mr은 yarn 계정으로 접근을 하고 이 yarn 계정은 sudo 실행 권한이 없기 때문이다. 이 문제를 해결하기 위해서는 하둡시스템의 모든 노드의 yarn 계정의 권한에 s..
맥은 앱스토어에서 다운로드 하는 앱외에 앱을 설치하려고 하면 '확인되지 않은 개발자의 App 열기' 라는 화면과 함께 실행이 되지 않는다. 이것은 control 버튼을 누른상태로 클릭하면 메뉴가 나타나는데 이때 '열기'를 클릭하면 실행여부를 묻는 창이 나타나고 이때 '승인'을 클릭하면 실행이 된다. * 원래 설정에서 해당옵션을 영구히 설정하는 방법도 있지만, 시에라 부터는 이 방법이 사라졌다고 한다. 영구 설정 및 시에라 옵션 변경 확인 바로가기(http://macnews.tistory.com/4533) https://support.apple.com/kb/PH14369?locale=ko_KR&viewlocale=ko_KR
EMR 하이브 처리결과가 파일로 저장될 때 파일명은 EMR에서 임의의 값으로 설정해 준다. hdfs://location/175508f3-1524-46ee-88c2-24722c5d5749-000XXX 이로 인하여 같은 파티션에 파일이 저장되면 어떤 잡이 해당 파일을 썻는지 알 수가 없다. 이럴때는 하이브 잡로그를 확인하여 결과를 확인해야 한다. 하이브 테이블 로케이션을 s3로 잡은 경우 파일은 최종적으로 'com.amazon.ws.emr.hadoop.fs.s3n.Jets3tNativeFileSystemStore' 클래스를 이용하여 파일이 쓰여진다. 또한 'org.apache.hadoop.hive.ql.exec.FileSinkOperator' 클래스도 파일 쓰기에 관여하기 때문에 이 클래스의 정보를 grep..
하이브는 0.8.0 버전부터 가상칼럼을 제공한다. - INPUT__FILE__NAME: 파일명- BLOCK__OFFSET__INSIDE__FILE: 파일에서의 offset 이는 다음과 같이 사용하면 된다. SELECT INPUT__FILE__NAME, BLOCK__OFFSET__INSIDE__FILE, column1, column2 FROM table; 가상칼럼을 이용하여 하이브 테이블엥 로드된 파일의 이름을 알 수 있다. AWS는 S3에서의 하이브 delete 명령은 아직 지원하고 있지 않기 때문에,잘 못 입력된 내용을 지우고 싶다면 가상컬럼을 이용하여 파일을 확인하고, 오프셋을 이용하여 위치를 확인한 후 개별적으로 지워야 한다.
마이크로서비스의 반대되는 개념이 모노리스서비스입니다. 기존에 운영하던 시스템은 모든 서비스가 하나의 시스템에 구현되어 있었습니다. 쇼핑몰을 예로 들면 정산, 판매, 입고 시스템이 하나의 서비스로 운영되는 구조입니다. 모노리스서비스로 개발된 애플리케이션의 경우 시스템이 커질수록 빌드 배포가 어렵고 복잡해집니다. 이러한 문제점을 해결하기 위하여 나타난 개념이 마이크로 서비스이다. 마이크로서비스는 애플리케이션의 구성요소를 특정 목적별로 분리한되 독립적으로 작동할 수 있는 작은 서비스로 만들고, 이 서비스들을 조합하여 완성된 애플리케이션으로 조립하는 개발형태를 말한다. 이때 각 서비스들은 API와 HTTP를 이용한 REST Api를 이용하여 연결한다. 각 서비스들은 독립적으로 존재하고 작동하며, 각자 관리 및 ..
하이브의 테이블은 매니지드(MANAGED) 테이블과 익스터널(EXTERNAL) 테이블 타입이 존재한다. 매니지드 테이블은 테이블을 drop 하면 관리하는 파일도 삭제가 되고, 익스터널 테이블은 파일은 보관된다. 중요한 파일을 저장하는 테이블은 익스터널로 설정하여 실수로 파일이 삭제 되는 것을 막는 것이 좋다. 매니지드 테이블을 익스터널로 수정하는 방법은 다음과 같다. ALTER TABLE 테이블명 SET TBLPROPERTIES('EXTERNAL'='TRUE');ALTER TABLE 테이블명 SET TBLPROPERTIES('EXTERNAL'='FALSE');
가장높은 탑 쌓기 문제는 다이나믹 프로그래밍을 이용하여 처리한다. 우선 밑면의 넓이 기준으로 정렬을 하면 현재 인덱스보다 작은 인덱스의 무게만 비교하면 넓이는 신경쓰지 않고 확인할 수 있다. 대신 정렬을 이용하기 때문에 기존의 인덱스가 변하게 되므로 인덱스만 따로 저장해 둔다. 그다음은 현재 벽돌보다 작은 무게의 벽돌을 찾아서 현재벽돌의 높이 + 작은무게벽돌의 높이(자신의 위에 있는 벽돌의 높이도 추가되어 있음)만 저장한다. 더 큰 높이의 벽돌이 있으면 갱신한다. 올릴 수 있는 벽돌이 없다면 자신의 높이만 저장한다. 이렇게 result 배열에 결과를 저장하고가장 높은 높이의 벽돌을 찾아서 해당 벽돌의 인덱스를 역순으로 찾아서 출력하면 된다. http://www.jungol.co.kr/bbs/board.p..
윈도우7에서 한/영 변환키를 눌러도 한글로 변환되지 않는 문제가 발생하면한/영 변환기가 실행되지 않아서 발생하는 문제이다. 우선 [시작] -> [검색] 에서 'ctfmon'을 검색하여 실행하면 일차적으로 문제가 해결된다. * window/system32/ctfmon.exe 지속적으로 같은 문제가 발생한다면 시작프로그램에 등록하여 윈도우 부팅시 자동으로 실행되도록 하면 된다. http://answers.microsoft.com/ko-kr/windows/forum/windows_7-ime/...auth=1 http://small2devil.tistory.com/40http://englishjam.tistory.com/86
하이브의 성능을 높이기 위해서 스큐드 테이블을 이용할 수 있다. 스큐드(skewed)란 사전적으로 비스듬하다는 뜻이다. 하이브에서 스큐드 테이블을 선언하면 해당 컬럼으로 많이 들어오는 데이터는 따로 파일을 만들어서 보관하게 된다. 칼럼의 특정 값으로 데이터가 많을때 선언하게 되면 따로 파일을 만들어 주게 되어 성능을 올릴 수 있게 된다. 하이브 매뉴얼에 다음과 같은 내용이 존재한다. 스큐드 테이블을 이용하면 파일을 따로 생성하여 주고, 거기에 리스트 버켓팅까지 추가하면 따로 디렉토리로 만들어 준다고 한다. Skewed Table vs. List Bucketing TableSkewed Table is a table which has skewed information.List Bucketing Table i..
배낭채우기문제는 다이나믹으로 처리한다. 배낭의 무게를 10부터 이동해가면서, 현재 시점에 최고의 무게를 확인하면서, 현재의 무게를 뺀 이전 무게의 최고값과 현재의 최고값을 더하면서 배낭을 채우면 된다. 보석 배낭무게 무게 가치 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 40 - 40 40 80 90 120 150 140 190 200 230 260 270 300 3 50 - - 50 50 90 100 130 160 170 200 210 240 270 280 5 110 - - - - 110 110 150 160 190 220 230 260 270 300 10 200 - - - - - - - - - 200 200 240 250 280 맥스값 - 40 50 80 110 120 150 160..
- Total
- Today
- Yesterday
- 정올
- hbase
- 파이썬
- 오류
- build
- Tez
- yarn
- SPARK
- HIVE
- bash
- AWS
- nodejs
- Linux
- Hadoop
- SQL
- java
- error
- mysql
- oozie
- 하이브
- ubuntu
- S3
- 알고리즘
- airflow
- HDFS
- 다이나믹
- emr
- 하둡
- 백준
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |