전체 글

개발에 대한 내용을 주로 다루는 블로그입니다.
개발

실용주의 디버깅 - 1부 문제의 핵심

개발을 하다보면 실제 코드를 작성하고 테스트하는데 걸리는 시간 뿐만 아니라 버그를 잡는데 걸리는 시간도 전체 작업 시간에 어느 정도 비중을 차지하는 것 같다.처음부터 버그없는 코드를 작성한다면 가장 좋겠지만 한번에 그렇게 짜려면 시간이 오래 걸리기 때문에 오히려 시간을 더 잡아먹을 것이다. 고로 적당한 시간 내에 코드를 작성한 다음 발생한 버그를 얼마나 빠르게 확인해서 수정해나가느냐가 중요하다고 생각한다. 버그를 빨리 잡으려면 IDE의 디버깅 도구를 잘 사용하는 것도 중요하다. 그리고 디버깅을 여러번 하다보면 알게모르게 채득되는 것들이 있어서 비슷한 버그는 점차 빨리 잡게 되고 잘 모르는 버그도 어느 정도 빠르게 잡을 수 있는 접근 방법이 생기는 것 같다. 머리 속에 남아있는 그런 접근 방법이 정리된 것..

개발/python

Django MySQL 연동(윈도우)

데이터베이스 설치나 설정은 간단하게 하면 되는데접속하기 위한 클라이언트를 별도로 설치해줘야 한다. 리눅스는 yum이나 apt-get으로 mysqlclient를 설치해주면 되는데로컬 환경은 윈도우라서 별도로 설치해줘야 할 것이 있다. 다음 사이트에서 알맞은 것을 다운로드 하고(python3.5.X라면 cp35, 64bit라면 amd64인 것을 다운로드 받는다.) http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 다음과 같이 설치한다. pip install mysqlclient-1.3.8-cp35-cp35m-win_amd64.whl 공식 사이트 같은데서 제공되는 것은 아닌 것 같은데 되긴 된다. // 내용 추가 //////////wheel 파일을 받지 않고 p..

개발/Data Engineering

HDFS 네임노드 OutOfMemory 에러

hdfs 네임노드(namenode) 운영 시 OutOfMemory 에러가 나면서 data node들이 dead 상태가 되고block들이 corrupt 되었다고 메시지가 나오는 경우가 있었다. Namenode 프로세스 메모리는 디폴트가 1000m라서 1000m으로 되어있었는데 이 용량이 부족해지듯 하다.찾아보니 HDFS는 작은 파일들을 저장하는데 적합하지 않다고 한다. 파일 갯수가 많아질 수록 네임노드가 필요한 메모리 용량도 커지는데 파일을 작게 생성하고 지우지 않으면 문제가 될 수 있다. 일단 메모리를 3G로 늘렸고 파일 관리 방법에 대해서는 좀 더 찾아봐야겠다. 메모리를 늘리려면 {HADOOP_HOME}/etc/hadoop/hadoop-env.sh 파일에 다음 항목을 수정하면 된다.(데이터노드를 수정하..

개발/Data Engineering

직접해보는 하둡 프로그래밍 - 1. 빅데이터와 하둡이해하기 - 하둡이해하기

[하둡이란]대용량의 데이터를 분산처리하게 해주는 아파치 톱 레벨 오픈소스 프로젝트HDFS와 MapReduce라는 이름의 분산처리 시스템으로 구성 특징오픈소스데이터가 있는 곳으로 코드를 이동 대부분의 경우 데이터의 크기가 소스코드보다 훨씬 크기 때문에스케일 아웃(vs. 스케일 업) 다수의 저렴한 서버를 사용병렬처리를 가능하게 해주는 단순한 데이터 모델 처리하는 레코드만 보고 작업하면 되므로 병렬성이 높고 다수의 서버에서 실행하기 쉬움 프로그래머는 맵, 리듀스 함수만 구현하고 처리할 입력 데이터가 HDFS상 어디에 있는지 처리된 데이터가 어디 저장될지만 지정해주면 나머지는 프레임워크가 알아서 병렬로 처리오프라인 배치 프로세싱에 최적화 실시간 처리가 필요한 환경에서는 사용할 수 없다 [하둡 아키텍처]HDFS나..

개발/리눅스

리눅스 디스크 용량 관련 명령어

df : 디스크 여유 공간 확인옵션-k 키로바이트 단위로 확인-m 메가바이트 단위로 확인-h 보기 좋게 보여줌(기가?) du : 디스크 사용량 확인옵션-m 메가바이트 단위로 출력-sh [폴더] 폴더 사용량 보기 쉽게 출력 du -sh * : 한 단계 하위디렉토리까지 총 사용량 보기 좋게 출력 가장 많은 용량을 사용하는 디렉터리 확인du -ckx | sort -n df -i : 아이노드 사용량 확인아이노드가 고갈되면 여유 공간이 있어도 파일 시스템이 가득찼다고 나온다.

개발/Data Engineering

hdfs에서 name node is safe mode 라고 나올 때

hdfs 접근 시에 name node is safe mode 라는 메시지와 함께 접근이 되지 않는 경우가 있다. hdfs가 비정상적으로 종료되었을 때 안전 모드로 진입되어 그런듯 하다. 이렇게 실행하면, {HADOOP_HOME}/bin/hdfs dfsadmin -safemode leave 이렇게 나오면서 해제된다. Safe mode is OFF

bebeside77
Spread your wings