라벨이 Hadoop인 게시물 표시

(하둡) core-site.xml 파일이란?

로그 파일, 네트워크 튜닝, I/O튜닝, 파일 시스템 튜닝, 압축 등 하부 시스템 설정 파일 core-site.xml 파일은 HDFS와 맵리듀스에서 공통적으로 사용할 환경정보를 설정한다. core-site.xml파일이 없을 경우 core-default.xml을 오버라이드 한다. 참고 :  http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

(하둡) 클러스터에서 실행하기

1. 잡 패키징  로컬 잡 실행자는 잡을 실행할 떄 단일 JVM을 사용하므로 모든 잡에 필요한 모든 클래스가 로컬의 클래스 경로에 존재하면 문제없이 잘 동작한다. 하지만 분산환경은 조금 복잡하다. 잡을 시작할 떄  필요한 모든 클래스를 잡 JAR파일에 패키징해서 클러스터로 보내야한다. * 클라이언트 클래스 경로 hadoop jar <jar>로 지정하는 클라이언트의 클래스 경로는 다음과 같이 구성된다. 잡 JAR 파일 잡 JAR 파일의 lib 디렉토리에 있는 모든 JAR파일과 classes 디렉토리 HADOOP_CLASSPATH에 정의한 클래스 경로 이는 가끔 로컬 잡 실행자를 잡 JAR 파일 없이 실행 (hadoop CLASSNAME) 할 때 HADOOP_CLASSPATH 의존 클래스와 라이브러리를 지정해야 하는 이유를 설명해준다. * 태스크 클래스 경로 클러스터(의사분산 모드)에서 맵과 리듀스 태스크는 개별 JVM 으로 실행되며 클래스 경로로 HADOOP_CLASSPATH를 지정해도 소용없다.  HADOOP_CLASSPATH는 클라이언트 측 설정이며 따라서 잡을 제출하는 드라이버 JVM의 클래스 경로에만 해당되기떄문이다. 잡 JAR파일 잡 JAR파일의 lib 디렉토리에 있는 모든 JAR파일과 classes디렉토리 -libjars 옵션이나 DistributedCache 혹은 Job의 ddFileToClassPath()메소드를 사용해서 분산 캐시에 추가한 모든 파일 * 의존 라이브러리 패키징 클라이언트와 태스크의 클래스 경로를 지정하는 다양한 방식이 있고, 각 방식에 따라 잡의 의존 라이브러리를 포함하는 옵션이 있다. 라이브러리를 푼 후 잡 JAR에 넣고 다시 패키징 한다. 잡 JAR의 lib디렉토리에 라이브러리를 패키징한다. 잡 JAR와 다른 위치에 라이브러리를 두고, 이를 HADOOP_CLASSPATH와 -libjars를 이...

(하둡) 직렬화

이미지
직렬화는 네트워크 전송을 위해 구조화된 객체를 바이트 스트림으로 전환하는 과정이다. 역지렬화는 바이트 스트림을 일련의 구조화된 객체로 역전환하는 과정이다. 직렬화는 프로세스간 통신과 영속적인 저장소와 같은 분산 데이터 처리의 독특한 두 영역에서 나타난다. 하둡 시스템에서 노드 사이의 프로세스 간 통신은 원격 프로시저 호출(RPC) 을 사용하여 구현한다. RPC프로토콜은 원격 노드로 보내기 위한 메시지를 하나의 바이너리 스트림으로 구성하기 위해 직렬화를 사용하고, 그 후 원격 노드에서 바이너리 스트림을 원본 메시지로 재구성하기 위해 역직렬화를 사용한다. 일반적으로 RPC직렬화 포맷이 유익한 이유는 다음과 같다. 간결성  간결한 포맷을 사용하면 데이터 센터에서 가장 희소성이 높은 자원인 네트워크 대역폭을 절약할 수 있다. 고속화 프로세스 간 통신은 분산 시스템을 위한 백본을 형성하기 때문에 직렬화와 역직렬화는 가능한 오버헤드가 작아야한다. 확장성 프로토콜은 새로운 요구사항을 만족시키기 위해 점차 변경되므로 클라이언트와 서버 사이의 통제 방식과 관련된 프로토콜의 발전도 직관적이어야한다. 예를들어 새로운 인자를 메소드 호출에 추가할 수 있어야하고, 새로운 서버는 기존 클라이언트에서(새로운 인자없이) 예전 포맷의 메시지도 수용할 수 있어야한다. 상호운용성 일부 시스템을 위해 다양한 언어로 작성된 클라이언트를 지원하는 편이 좋으며, 이를 가능하도록 포맷을 설계할 필요가있다. 하둡은 Writeable이라는 매우 간결하고 빠른 자체 직렬화 포맷을 사용한다. 그러나 확장하거나 자바외에 다른 언어를 사용하는 것은 어렵다.  에이브로는(Writable의 일부 한계를 극복하기 위해 설계된 직렬화시스템) 자바 기본자료형을 위한 Writable래퍼 char(IntWritable로 저장가능)를 제외한 모든 자바 기본 자료형을 위한 Writable 래퍼가 존...

(하둡) 관계형 시스템 vs 맵리듀스

* 전통적인 RDBMS                vs                맵리듀스 데이터크기 : 기가바이트        vs               페타바이트 접근방식 :    대화형과 일괄처리 방식        vs      일괄 처리 방식 변경 :          여러번 읽고 쓰기                  vs       한번 쓰고 여러번 읽기 트랜잭션 :        ACID                          vs            없음 구조 :          쓰기 기준 스키마             vs           읽기 기준 스키마 무결성 :       높음                               vs           ...