Development(32)
-
하둡 공부 - YARN
YARN을 통해 각 Task들이 스케줄링되고 클러스터의 여러 노드에서 실행됨 특정 Task가 실패하면 자동으로 다른 노드를 재할당하여 다시 실행됨 - YARN의 특징 Resource Manager (RM): 클러스터 전체 자원의 사용량을 관리 Node Manager (NM): 컨테이너를 구동하고 모니터링하는 역할을 수행 Application Master (AM): 클라이언트의 요청을 담당하여, 컨테이너 수행 결과를 반환함 (구체적인 방법은 애플리케이션에 따라 다름) - YARN의 자원 요청 컨테이너에 필요한 컴퓨터 자원과 지역성 제약을 표현할 수 있음 지역성을 고려한 특정 랙의 노드 - 동일 랙의 임의 노드 - 클러스터의 임의 노드 순으로 컨테이너 할당을 시도 - YARN 스케줄러 FIFO 쉽고 설정이 ..
2019.01.24 -
하둡 공부 - Hadoop Read & Write
- Read - Write 쓰기 실패 시 Ack Queue로부터 Data Queue로 다시 불러와 쓰기를 재시도 - 복사본 배치 서로 다른 랙에 복제본을 배치하면 중복성은 최대화되지만 대역폭 비용은 커짐 Read와 Write에서 동일한 전략을 가지며, 네트워크 대역폭 사용 최소화를 위함 하둡의 기본 전략 첫 번째 복제본을 클라이언트와 같은 노드에 배치함 클라이언트가 클러스터 외부에 있으면 무작위로 노드(파일이 너무 많거나 바쁜 노드는 제외)를 선택함 두 번째 복제본은 첫 번째 노드와 다른 랙(무작위)의 노드에 배치됨 세 번째 복제본은 두 번째 노드와 같은 랙의 다른 노드에 배치됨 그 이상의 복제본은 클러스터에서 무작위로 선택하여 배치함 - 데이터 지역성 최적화 네트워크 대역폭을 사용하지 않도록 입력 데이..
2019.01.24 -
하둡 공부 - HDFS
HDFS (Hadoop Distributed FileSystem) - HDFS의 설계 특성 매우 큰 파일(수백 기가 또는 페타바이트)의 저장 지원 첫 번째 레코드를 읽는 데 걸리는 지연 시간보다 전체 데이터셋을 모두 읽을 때 걸리는 시간이 더 중요 - Block HDFS Block은 기본적으로 256MB이며, Block 크기로 쪼갠 것을 Chunk라고 함 Replication이 용이한 설계를 위해 Block 단위로 저장함 Block은 무조건 설정된 크기 만큼 파일을 쪼개어 저장함 - Master-Worker Pattern Namenode 파일시스템의 Namespace(모든 파일과 디렉터리에 대한 메타데이터)를 관리 Namespace Image, Edit Log Block의 위치 정보는 시스템이 시작할 때..
2019.01.24 -
Cron 기본 사용법
Cron은 Time-based Job Scheduler 유틸리티이다. 리눅스에서 Cron은 crontab (cron table)이라는 파일에 의해 작업의 스케줄링을 수행한다. 기본적인 사용 흐름은 crontab을 통해 스케줄을 등록하고, 해당 시간이 충족될 때마다 설정된 작업을 수행한다. $ crontab -e 위의 명령에 따라 vi 에디터와 동일한 화면이 실행되는데, 이 파일이 바로 cron table로서 스케줄을 등록하는 파일이다. 스케줄 등록 규칙은 아래와 같이 간단하다. * * * * * /home/user/start.sh arg1 * * * * * /home/user/start.sh arg2 * * * * * /home/user/start.sh arg3 위의 예시를 설명해보자면, 매분마다 arg..
2019.01.22 -
안드로이드 기능 권한 허가 받기 (Android 6.0, API 23 이상)
안드로이드 6.0 (API 23) 이후 Internet, Camera, Read External Storage 등의 기능을 사용하기 위해서는 권한 획득이 필요하다. AndroidManifest에 아래와 같이 use-permission을 추가하는 것 외에도 사용자에게 권한 요청을 확인할 필요도 있다는 말이다. 만약, 위 예시 중 Camera 기능을 Intent로 호출할 필요가 있을 때, if (mContext.checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.CAMERA}, TAKE_PICTURE); } 위와..
2019.01.20 -
Hadoop 2.7.3 Fully-distributed Mode Setup
설치 환경은 Ubuntu 16.04 LTS의 Master 1, Worker 3으로 총 4개의 VM을 이용하였다. 당연히 먼저 하둡을 다운로드 받는다. (링크는 Apache Hadoop Release, 현재 2.7.3) 받은 하둡 파일을 압축을 풀고, tar zxvf hadoop-2.7.3.tar.gz mv hadoop-2.7.3 hadoop JDK도 물론 설치해준다. sudo apt install openjdk-8-jdk openjdk-8-jre 이제 설치한 하둡과 자바의 환경 변수(bashrc 파일의 제일 하단에 입력)를 등록. vi ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ export HADOOP_HOME=/home/bigpros/..
2017.02.01