환경 설정 파일에는 시스템 초기화 파일과 사용자 초기화 파일이 있다. 시스템 초기화 파일 시스템을 사용하는 전체 사용자의 공통 환경을 설정하는 파일이다. /etc 디렉토리에 존재한다. 많이 사용하는 bash 쉘의 경우 다음과 같은 파일들이 있다. /etc/profile /etc/bashrc /etc/profile.d/*.sh : /etc/profile 파일에서 /etc/profile.d 하위의 sh 파일들을 source 하도록 되어있다. 사용자 초기화 파일 각 사용자 홈 디렉토리에 존재하며 개별 사용자의 환경을 설정하는 파일이다. 많이 사용하는 bash 쉘의 경우 다음 세 개가 있다. .profile .bash_profile .bashrc 이중 .profile, .bash_profile은 같은 것으로 보..
1. 컨테이너 실행하여 쉘 사용하기 docker run -it \ -v {로컬 경로}:{docker 컨테이너에서 사용할 경로} --rm {docker 이미지} {명령어} # example docker run -it \ -v /Users/user/dev:/Users/user/dev \ --rm registry.domain.com/some_image:1.0.0 /bin/bash Usage docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS -v, --volume list : Bind mount a volume -t, --tty : Allocate a pseudo-TTY -i, --interactive : Keep STDIN open even if not attac..
HDFS는 RDBMS와는 다르게 기존 데이터를 업데이트해서 사용하는데 적합하지 않다. 하지만 로그성 데이터가 아니라 상태값이나 변할 수 있는 값을 가지는 데이터인 경우 변경 사항이 계속 발생하고 이것을 주기적으로 반영해야할 필요성이 있을 수 있다. 예를 들어 상품 판매 순위를 집계하려면, 상품 판매 로그와 상품 자체에 대한 정보가 있어야 한다. (로그에 상품에 대한 정보를 포함시킬 수도 있지만 최신 정보를 얻으려면 별도 정보가 필요할 것이다.) 로그는 변하지 않는 데이터이지만 상품에 대한 정보는 상품명, 카테고리 등이 계속 변할 수 있다. 이런 경우 데이터 전체 크기가 그렇게 크지 않은 경우 전체 데이터를 주기적으로 새로 dump할 수 있다. (Sqoop 등을 활용해서) 하지만 전체 데이터 크기가 커서 ..
에이브로 (Avro) 아파치 에이브로는 더그 커팅이 개발한 언어에 중립적인 스키마 기반의 데이터 직렬화 프레임워크이다. 데이터를 네트워크를 통해 전송하거나 저장하기 위해서는 데이터를 직렬화해야한다. 하둡 Writable 클래스들은 언어 이식성이 없기 때문에 에이브로는 하둡에서 데이터를 직렬화하는데 선호되는 도구이다. 스키마 스키마는 JSON을 사용하여 정의된다 [User에 대한 스키마 예제 (user.avsc)] { "namespace": "example.avro", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}..
태블로(tableau) BI(Business Intelligence) 툴에서는 다양한 형태의 데이터들을 연동하여 분석할 수 있다. 엑셀 파일, csv 파일, MySQL, Oracle, HDFS, HIVE, Google drive, drop box 등... 1회성으로 분석하고 끝날 것이 아니라 엔터프라이즈 환경에서 지속적으로 사용할 시스템을 만들려면 데이터 구성을 잘 해둘 필요가 있는데 이를 위한 내용을 정리해본다. 아직 그렇게 경험이 많지 않지만 알아가고 있는 내용을 정리하는 것이다. 데이터 원본을 구성할 때 단일 테이블로만 구성할 때는 크게 고민할 것이 없는데 여러 테이블을 묶어서 데이터 원본을 구성할 때는 좀 생각해봐야할 부분들이 있다. 일단 테이블을 연결하는 방법에는 조인과 관계 방식이 있다. 조인..