본문 바로가기

오픈소스

Pig - COGROUP GROUP BY 기능과 유사하지만, 좀 더 다양하게 사용이 가능하다. 다만, Aggregate 함수를 거친 이후에는 flatten 등과 같은 함수를 통하지 않으면 정상적인 데이터를 얻을 수가 없는데, 특히 COGROUP의 경우 FLATTEN 함수 사용에 주의가 필요하다. 일반적으로 대부분 Tuple에 대한 연산이 이루어지는 반면 FLATTEN 및 IsEmpty는 Relation을 대상으로 한다. 즉, 킷 값을 기준으로 OUTER-JOIN을 하되 서로 값이 없는 값은 서로 존재하는 값을 취하려고 하는 경우다. -- pigs/cogroup.pig a = load 'source/A' using PigStorage(',') as (id:int, addr:chararray); b = load 'source/B' .. 더보기
Pig - ROW_NUMBER (RANK) ROW_NUMBER 혹은 RANK 함수를 통해 임의의 필드들에 의해 정렬된 결과그룹 중에 상위 1개의 결과를 반환SQL Version (Oracle)SELECT uname, flag, rank, score FROM ( SELECT uname, flag, rank, score, ROW_NUMBER() OVER (PARTITION BY uname ORDER BY flag ASC, rank DESC, score ASC) rank FROM A ) B WHERE B.rank=1;Pig Version-- rownum.pig a = load 'source/rownum.csv' using PigStorage(',') as (uname:chararray, flag:int, rank:chararray, score:int).. 더보기
Pig - UPSERT (UPDATE or INSERT) Pig는 맵리듀스 작업을 Pig Latin이라는 언어를 통해서 보다 손쉬운 MapReduce 작업을 가능하게 하는 스크립트 언어이다. 최근 이와 관련된 프로젝트를 수행하고 있어 기존의 SQL 혹은 HQL(Hive QL)으로 작성된 코드를 Pig 스크립트로 변환하는 작업을 하고 있다. 참고가 될 만한 사항들을 정리하고 있습니다.[ UPSERT ]동작 : 대상 테이블에 킷값이 존재하면 UPDATE 그렇지 않으면 INSERT 수행-- upsert.pigA = load 'source/1.csv' using PigStorage(',') as (uid:chararray, name:chararray); B = load 'source/2.csv' using PigStorage(',') as (uid:chararray,.. 더보기
오픈소스 라이센스 LGPL < GPL < APGL 최근 오픈소스를 활용하여 개발을 하는 경우가 잦아지는데 자연스럽기도 하고, 바람직한 방향이라고 생각한다. 다만, 항상 문제되는 것이 라이선스의 사용 범위인데, 매번 헛갈리고 고민되는 부분이기도 하다. 이 참에 한국 저작권 위원회에 문의해서 알아 보았다. 담당자분께서 직접 전화를 주셔서 아주 친절히 설명을 해주셨고, 교육도 무료로 해줄 수 있다고 하셨으나, 그럴 필요까지는 없어서 감사하다고만 했다. :-) 일단 자유로운 것 부터 가장 강한 순서는 LGPL < GPL < AGPL 순이다. AGPL이 오픈소스 라이센스스 중에서 가장 사용하기가 어렵다. 대고객 서비스용은 불가능하다. LGPL - Dynamic Linking 이면 (OK) - Static Linking 이면, Object 파일 (역컴파일 가능하므.. 더보기
mysqldump fields-terminated-by tab 링크 : http://www.crumpeta.com/mysqldump_csv 간만에 쓰는 블로그가 고작 tab으로 구분된 mysqldump 라니... ;ㅅ; $mysqldump -u user -p --fields-terminated-by='\t' --tab=/tmp mydatabase mytable 이러면 /tmp/mytable.sql 파일과 /tmp/mytable.txt 파일이 생깁니다. 물론 sql 파일은 테이블 생성 DDL이고, txt 파일은 탭으로 구분된 레코드들입니다. 이런 방식으로 MySQLdb에 저장된 정보를 HIVE에 담을 때 이렇게 덤프를 뜨고 다시 HIVE에서 LOAD 하였습니다. 혹시 HIVE에서 LOAD DATA DATABASE 'mysql ...' 뭐 이런 방법이 있을까요? 한번 .. 더보기
Google이 1PB자료의 정렬을 MapReduce를 사용하여 성공했다고 합니다 Sorting 1PB with MapReduce 몇 달 전이었던 것으로 기억하는데요, 1TB 자료의 정렬을 하는 문제에서 야후가 하둡의 맵리듀스를 통하여 209초에 성공했다는 기사(standard terabyte (TB) sort benchmark)를 본 적이 있습니다. 당시에 그 기사를 읽으면서 야~ 이거 구글에서 한다면 과연 얼마나 걸릴까 하는 생각을 잠시 해보았었는데요, 이번에 그 실험 결과를 내 놓았습니다. 과연 명불허전 구글의 경우 1TB의 자료를 무려 68초에 완료했다고 합니다. 물론 야후의 경우 장비를 910대 사용했고, 구글은 1,000대를 사용했다고 합니다. 장비대수의 문제는 아니라고 보여집니다. 더욱 재미있는 것은 구글이 1PB도 시도를 했다는 것입니다. 1PB라고 하면, 1TB의 1,.. 더보기
하둡 스트리밍을 통한 아파치 쿼리 로그 분석 하둡 커뮤니티 모임에서 Apache Log Analysis using Hadoop Streaming라는 제목으로 발표했던 내용을 블로그를 통해서 공개하고자 합니다. 진작 올렸어야 하는 건데 조금 실험을 더 해보려는 욕심에 시간이 지체되어 더 이상 있다가는 올리지도 못 할 것 같아 그냥 올리기만 해 봅니다. 저 또한 그랬으며 하둡 커뮤니티 모임에서 많으신 분들이 참석하고 계시지만, 현실적으로 하둡을 이용해서 실용적인 무언가 또는 실험을 하기는 쉽지만은 않은 것 같습니다. 하지만, 한재선 박사님께서 그러한 분산저장 및 처리에 필요한 하둡 플랫폼을 무료로 제공해 주시기로 하셨습니다. ^^ 현재 하둡 개발자 그룹을 통해서 혼자서 끙끙대면서 하둡을 겨우 설치하고 WordCount 한번 싱글노드에서 돌려보고 마는 .. 더보기
하둡 최신 버전(0.18.1) 릴리스 정보입니다. http://hadoop.apache.org/core/docs/r0.18.1/releasenotes.html 0.17.2 stable 버전과의 차이점 중에서 주목할 만한 것들만 뽑아 보았습니다. dfs Improved management of replicas of the name space image. if all replicas on the Name Node are lost,the latest check point can be loaded from the secondary Name Node. Use parameter "-importCheckpoint" and specify the location with "fs.checkpoint.dir." The directory structure on the sec.. 더보기
하둡은 무려 새로운 비지니스 모델까지 창출해 내고 있군요 Cloudera can help you install, configure and run Hadoop for large-scale data processing and analysis. We support Hadoop whether you run it on servers in your own data center or use Amazon's Elastic Compute Cloud 우연히 하둡을 통하여 아파치 로그를 분석한 사람들의 포스팅을 살피다가 Cloudera라는 회사를 알게 되었는데요..현재는 하둡의 설치, 구성, 데이터 처리 및 분석에 관한 컨설팅을 해주는 회사입니다. Cloudera was founded in 2008 to provide enterprise-level support to users .. 더보기
Hadoop: The Definitive Guide O'Reilly 에서 하둡에 관한 책이 나오는 모양입니다. O'Reilly에서 하둡에 관한 책이 나오는 군요... 목차를 대충 살펴보면 하둡 파일시스템에 대한 설명과 API사용법 분산 컴퓨팅 환경에서의 MapReduce를 통한 개발 하둡의 데이터 입출력, 블록의 생성 및 압축 등 실제 운영되는 맵리듀스 프로그램에 대한 것과 빠지기 쉬운 함정 설계, 구현 및 하둡 클러스터 관리 ZooKeeper, Pig 및 HBase에 관한 내용 등 사파리 북으로 현재 프리뷰를 보실 수 있고요, Manning사의 MEAP과 유사하게 Rough Cuts이라는 이름으로 PDF로 미리 판매를 하고 있습니다. 프리뷰를 통해서 보았을 때에는 하둡을 처음 접하는 사람에게는 상당히 유용할 듯 보이고요, 이미 충분히 활용하고 있는 사람에게는 조금 아쉽지 않을까 하는 생각이 듭니다. 뭐랄까, 현.. 더보기