2015년 1월 25일 일요일

Apache Mesos 설치기 1 - 설치 및 활용성에 대한 고찰

한때 메모리를 클러스터링 하여, NFS 공유 파일시스템 쓰듯이 공유 메모리 Pool 을 쓸 수 있게 해주는 Tachyon (http://tachyon-project.org)에 관심을 갖은 적이 있었다. (결과 적으로 몇번의 Deep 한 테스트 이후 현재는 Tachyon 을 쓰고 있진 않지만, IO 를 많이 쓰는 공유 저장소가 필요할 때, 여러 Layer 에서 손쉽게 쓸 수 있는 좋은 대안이라는 생각에는 변함이 없다. NFS 처럼 Mount 될 수 있으며, NFS 보다 수십 배에서 수백 배의 성능을 얻을 수 있다.)

Spark 엔진 또한 Tachyon Collaboration 하여 Batch 성능을 향상해보려는 테스트를 한바 있었는데…. 그때가 작년 8~9월 이었다.
그로부터 3~4개월이 흘렀고….그 짧은 기간 동안에 Spark 3번의 버전업이 있었다.

최근에 Spark 진영은 Tachyon 과의 Collaboration 보다는 Hadoop 2.0 Yarn 과의 Collaboration , 그리고 Apache Mesos 와의 Collaboration 을 하는 방향으로 유행이 바뀌어 있다.

아래는 Apache Mesos 가 무엇인지 와 닿게 하는 기사 글 이다.

특징을 한마디로 요약하자면….
Tachyon 은 메모리를 공유해준것에 그쳤다면
Mesos CPUmemory storage 와 기타 다른 컴퓨트 리소스들을 추상화 하여 하나의 pool 로서 쓸 수 있게 해준 다는 것이다.


C++, Java , Python ,Scala 등의 어플리케이션을 Mesos가 제공하는 Framework 위해서 구동할 수 있으며, Hadoop , Spark , ElasticSearch 그리고 Jenkins 까지도, mesos Collaboration 구동되게 데몬 자체를 Mesos Layer 위에 구동 설치가 가능하다.(이 경우 기존 클러스터링 설치보다 더 뛰어난 성능을 얻을 수 있다.)



아래는 필 받은김에 이번 주말에 설치해본 간략 설치기 이다.

  1. Installing Mesos
    • Spark 1.2.0 is designed for use with Mesos 0.18.1 
    • http://mesos.apache.org/
    • wget http://archive.apache.org/dist/mesos/0.18.1/mesos-0.18.1.tar.gz
    • tar xvzf mesos-0.18.1.tar.gz
    • root 계정으로 vi /etc/yum.repos.d/wandisco-svn.repo
    • [WandiscoSVN] name=Wandisco SVN Repo baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/ enabled=1 gpgcheck=0
    • yum groupinstall -y "Development Tools"
    • yum install -y python-devel zlib-devel libcrul-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel
    • Java 및 maven계열 설치는 기 설치되어 있어서 skip....
    • cd mesos홈
    • ./bootstrap ( root 계정에서 일반 계정으로 돌아옴. & sudo 활용)
    • mkdir build
    • cd build
    • ../configure
    • make ( 요 단계 꽤 오래 걸림...., sudo 도 안되고 su 가 필요한 경우도 있음. )
    • make check
    • make install ( sudo 가 필요한 경우가 있었음.. )
    • 위 과정을 Master 역할을 할 서버에 설치
    • 위 과정을 Slave 역할을 할 전체 서버에 모두 설치
  2. Mesos Cluster 구동
    1. Master 구동 
      1. ./bin/mesos-master.sh --ip=서버IP --work_dir=/dataXX/mesos &
    2. Slave 구동
      1. ./bin/mesos-slave.sh --master=서버IP:5050

댓글 2개:

  1. 안녕하세요
    읽던중 궁금중이 생겨서 댓글 남겨요...
    마스터와 슬리브 서버들은 어떻게 만드신건가요?
    VMware or citrix VM들인가요?
    아니면 오라클 버츄어 박스 같은 건가요?

    답글삭제
  2. Hybrid 형태로 구성하여 쓰고 있습니다. 즉, 자체 IDC에 물리머신도 있고, Public 가상화에 Dev 및 Heavy Batch 를 위한 Elastic 한 구성도 해놓고 다이나믹 하게 연동하여 쓰고 있습니다. submit 스크립트에서 수행지를 옵션만으로 쉽게 변경할 수 있어, 복수의 Job 간에 협업도 가능합니다. 물론 HDFS 외부 저장소를 매개로요...

    답글삭제