* HDFS Erasure coding (Hadoop 3.0.0-alpha1, HDFS-7285) 1. 개요1) HDFS의 storage 및 network overhead를 줄이기 위해서 고안됨 2) 3-replica 는 데이터 블록의 중복으로 인해 200%의 storage space overhead를 가지나, EC(Erasure Coding) 방식은 데이터 블록의 절반의 패리티parity 블록을 위한 50%의 overhead를 가짐그림1 - Erasure coding의 storage efficeincy : https://blog.cloudera.com/blog/2015/09/introduction-to-hdfs-erasure-coding-in-apache-hadoop/ 3) EC는 HDFS replic..
최근 몇 년간 다양한 cloud 서비스가 개발/확산으로 WEB, WAS, Storage 심지어 ERP까지 AWS, Azure, Google cloud와 같은 public cloud 서비스를 이관하고 있다.Public cloud 서비스의 가장 큰 장점은 확장성과 비용이기 때문에많은 데이터를 저장해야 하고 다수의 node가 필요한 hadoop cluster를 구축하기 좋은 선택이다. 그리고 같은 이유로 block storage(HDFS)를 사용하는 대신 object storage를 사용하기 시작했다. * * * Bigdata 시스템에서 왜 object storage를 사용할까? 1. HDFS capacity overhead를 줄여준다. HDFS는 fault tolerance를 보장하기 위해서 데이터블록을 3..
데이터 엔지니어, 데이터 분석가 그리고 데이터 사이언티스트 차이 요즘 가장 핫한 직업을 꼽으라면 빠지지 않는 것이 바로 '데이터 사이언티스트(Data Scientist)'이다. 많은 사람들이 직업을 얻기 위해, 직장에서 조금 더 좋은 대우를 받기 위해서 데이터 사이언티스트가 되고자 한다. 실제로 많은 기업에서 많은 기업에서 데이터 사이언티스트를 채용공고하고 있으며, 많은 구직자가 데이터 사이언티스트의 역할을 하기 위해 지원한다. 그리고 그런 구직자들 중 대부분이 데이터 사이언티스트로써의 경험이 없고, 데이터 사이언티스트가 하는 일이 무엇인지 명확하게 정의하지 못한다. 현업에서도 크게 다르지 않은 것 같다. 데이터 분석가와 사이언티스트의 구분을 느낌적으로 하는 이들이 대다수 이며 데이터 엔지니어를 구분하지..
hdfs_balancer HDFS Balancer 수행 간단 수행 명령어 sudo -u hdfs hdfs balancer [-policy ] [-threshold ] [-blockpools ] [-include [-f | ]] [-exclude [-f | ]] [-idleiterations ] [-runDuringUpgrade] 옵션이 필요 이상으로 많은 것 처럼 보인다. 하지만 모두 필요에 의해서 만들어진 것이니 간단히 보고 넘어가면 좋을 듯 하다.hdfs dfsadmin -setBalancerBandwidth 1073741824 // 1GB로 대역폭을 변경 그 밖에도 parameter 설정을 통한 많은 옵션들이 존재한다. 자세한 사항은 아래를 참고하라. (https://community.hortonw..
if kakao, 네이버의 데뷰처럼 카카오의 개발자 컨퍼런스이다. 웹 서핑 중 우연한 기회에 배너를 클릭해서 신청하고 팀 내에 공유 했는데, 결국 나 혼자 참가하게 되었다. 서울 촌놈인지라 오랜만에 코엑스에 나가니 기분이 매우 설렜다. 출근 하는 것 보다 더 일찍 일어나 준비를 하고 9호선을 타고 봉은사역에 내렸다. 어릴 적 부터 친하게 지내던 친구가 봉은사역으로 출퇴근 할때는 그냥 그런가보다 했는데 10시 컨퍼런스여서 조금 여유 있게 출발했는데도 9호선은 많은 사람들로 숨이 막혔다. 키노트가 시작하기 약 30분 정도 전에 도착하였는데 이미 많은 참관객으로 북적거렸고, 참가기념품만을 챙기고 가는 사람도 더러 있었다. 그랜드볼룸 홀로 가는길에는 컨퍼런스 명인 if kakao 사인이 입구를 장식하고 있었고,..
Hive Partitioning 개요 Hive 파티셔닝의 개념은 RDBMS 와 크게 다르지 않다. 테이블을 하나 이상의 키로 파티셔닝 할 수 있으며, 이것은 각 테이블에 데이터가 얼마나 저장될 것이냐를 기준으로 설정하면 된다. 예를 들어 테이블이 id, name, age 3개의 칼럼으로 구성되어 있고 age로 파티셔닝 하기로 설정하였더만, 같은 나이를 갖는 row 들이 물리적으로 같이 저장된다. 파티션 테이블 일반적으로 non-partition 테이블은 아래와 같이 선언할 수 있다. create table salesdata_source( salesperson_id int, product_id int, date_of_sale string ) 이와 같은 구조를 'data_of_sale' 로 아래와 같이 파티..
Hive LLAP 사이징 및 설정 Hive LLAP 사이징 및 설정1. 기본 클러스터 설정1) LLAP 를 수행할 YARN 노드를 설정하라.사용자 요구 및 사용하는 작업workload에 따라서 일반적으로 클러스터의 15~50%의 노드를 LLAP로 사용하거나, 전체 클러스터를 LLAP 노드로 설정할 수 있다. Hive LLAP를 수행하기 위한 3가지 YARN container 종류가 있다. 데이터를 직접 처리하는 execution daemon 쿼리 수행을 관리하기 위한 쿼리 코디네이터, TEZ AMsexecution daemon을 모니터링 하고 AM을 실행하기 위한 SliderLLAP에 할당된 용량의 대부분이 execution daemon에 의해서 사용된다. 최적의 결과를 위해서 YARN 노드 전체가 ex..
프로그램의 개발/테스트를 위해서 로컬환경에 가벼운 DB를 설치해야 하는 경우가 있다. 상용DB를 사용할 수 없기 때문에 오픈소스DB를 사용해야 하는데 개발에 따라 RDBMS가 필요할 수도 NoSQL DB가 필요할 수도 있다. 오픈소스 DB는 종류가 많기 때문에 각 장단점을 고려하여 선정해야 한다 (참고: https://blog.capterra.com/free-database-software/)이번에는 Spring 공부를 위해 DB를 구성할 예정이며, Java 기반으로 프로그램이 작성되기 때문에 MariaDB를 JDBC로 접근할 생각이다. MySQL이 아닌 MariaDB를 선정한 이유는 내 노트북에서도 가볍게 돌아가기 때문이다. 그리고 기본적인 RDBMS 기능들은 모두 제공한다. 관리툴인 HeidiSQL ..