Homebrew 설치하기


Homebrew는 macOS용 패키지 관리자입니다. Debian 계열의 apt-get, RedHat 계열의 yum을 생각하면 이해하기가 쉽겠네요.

git, gradle, python, scala 등의 패키지를 설치하려고 할때 해당 패키지의 홈페이지에서 다운로드 받아 설치해도 되지만 Homebrew를 이용하면 간단하게 설치할 수 있고, 또 패키지가 버전이 올라갔을 때 업그레이드도 쉽게 할 수 있습니다.

설치

Homebew를 설치하려면 Xcode에 포함된 Command Line Tools(명령어 라인 개발자 도구)가 필요합니다. 단순히 Command Line Tools을 사용하려고 5GB에 가까운 Xcode 전체를 설치하는 것은 좀 낭비인 것 같습니다. 이미 Xcode가 설치되어 있으면 상관 없지만 그렇지 않은 분은 아래 명령을 통해 Command Line Tools만 설치 할 수 있습니다.

xcode-select --install

Homebrew 설치는 간단합니다. 터미널에 아래의 명령을 붙여 넣어주세요.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

설치가 잘 되었는지 확인하려면 아래와 같이 입력하면 됩니다.

$ brew -v
Homebrew 0.9.9 (git revision 1c27; last commit 2016-06-29)
Homebrew/homebrew-core (git revision 81e6; last commit 2016-06-29)

사용법

만약 wget을 설치하고 싶으면 아래와 같이 터미널에 입력하세요.

brew install wget

패키지는 /usr/local/Cellar 위치에 설치가 됩니다. 아래는 자주 사용하는 명령에 대한 설명입니다.

Command Comment
update 새로운 버전 정보를 가져옵니다.
upgrade 패키지를 최신 버전으로 업그레이드 합니다.
install 패키지를 설치합니다.
uninstall 패키지를 삭제합니다. uninstall 대신 rm 또는 remove 사용 가능.
list 설치된 패키지 리스트를 확인합니다.
pin upgrade 명령시 새로운 버전이 있으면 패키지를 무조건 업그레이드 하는데 만약 어떤 이유에 의해서 특정 버전을 계속해서 사용하고 싶을 때 사용하는 명령
예) brew pin tomcat
unpin pin으로 고정된 패키지를 해제할 경우 사용

더 자세한 정보는

brew --help

를 입력하거나

man brew

를 입력해서 확인해 보세요.

맥용 유용한 프로그램 추천


압축


1. The Unarchiver (무료)
https://itunes.apple.com/us/app/the-unarchiver/id425424353?mt=12




동영상 Player


1. VLC Player (무료)


http://www.videolan.org/vlc/download-macosx.html





문서



1. Sublime Text 2 (유료)

유료지만 평가판을 기간 제한 없이 사용할 수 있는 텍스트 에디터

EUC-KR 한글 깨짐 문제 있음. UTF-8로 변환해서 인식 가능.

http://www.sublimetext.com/2



2. Skim (무료)

PDF Reader  

https://www.macupdate.com/app/mac/24590/skim




화면 캡춰


1. Monosnap (무료)


Mac App Store에서 다운로드 가능 

https://itunes.apple.com/us/app/monosnap/id540348655?mt=12





가상 컴퓨터


1. Parallels (유료)


http://www.parallels.com/download/





터미널


1. iTerm2 (무료)

http://code.google.com/p/iterm2/downloads/list




시스템


1. AppCleaner (무료)

앱 삭제 프로그램

 


2. XtraFinder (무료)

XtraFinder add Tabs and features to Mac Finder


http://www.trankynam.com/xtrafinder/






개발


1. SequelPro (무료)

MySQL GUI Client

 


2. IntelliJ IDEA (유/무료)


Java IDE


Community Edition (무료)

Ultimate Edition (유료)


http://www.jetbrains.com/idea/download/index.html




3. Balsamiq Mockups (유료)


UI Design (Adobe Air를 사용해서 윈도우즈/맥/리눅스에서 설치 가능)


http://www.balsamiq.com/download



4. SvnX (무료)

GUI Subversion Client


http://code.google.com/p/svnx/downloads/list






[MAC] 맥에서 하둡 설치 (Hadoop Single node Setup on OS X Mountain Lion)

맥에서 Hadoop을 설치하는 방법입니다. 설치 환경은 아래와 같습니다.

  • OS X 10.8.3
  • Java 1.7.0_17
  • Hadoop 1.0.4


설치 과정은 아래와 같은 단계를 거칩니다.

  • 설치 준비
    • hadoop 계정 생성
    • Java 설치
    • SSH 설치
  • 설치 및 설정
    • hadoop 설치
    • hadoop 설정 



설치 준비 


hadoop 계정 생성


꼭 필요한 과정은 아니지만 보안상의 이유로 hadoop을 위한 별도 계정을 만드는 것이 좋습니다.

전체 이름: Hadoop

계정 이름: hadoop


시스템 환경설정 > 사용자 및 그룹에서 사용자 계정을 추가합니다.




이제 생성한 hadoop 계정으로 로그인 합니다.



Java 설치


$ java -version


터미널에서 위와 같이 입력합니다.


java version "1.7.0_17"

Java(TM) SE Runtime Environment (build 1.7.0_17-b02)

Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)


Hadoop을 사용하기 위해서는 java 1.6 이상의 버전이 설치되어 있어야 합니다.

혹시 자바가 설치되어 있지 않거나 버전이 1.6 미만이면 아래 사이트를 통해 자바를 설치합니다.


http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html




SSH 설치


이번 단계에서는 SSH를 통해 local 머신에 접속을 할 수 있도록 하고 접속하되 password를 입력하지 않도록 해야합니다.


시스템 환경설정 > 공유를 선택합니다.



왼쪽에 원격 로그인에 체크를 하면 원격 로그인이 켜집니다. 보안상 새로 추가한 hadoop 계정만 접근을 허용하는 것이 좋습니다.


$ ssh localhost


위와 같이 입력해서 접속이 되는지 확인합니다.


The authenticity of host 'localhost (127.0.0.1) stablished.

RSA key fingerprint is 67:ef:a4:e1:38:51:64:0f:2f:f8:d5:bc:72:b9:4f:a0.

Are you sure you want to continue connecting (yes/no)? 


처음 접속하면 위와 같은 메세지가 나오는데 yes 을 입력하면 다음부터는 이 메세지가 출력되지 않습니다.

그런데 아직까지는 ssh 접속할때 패스워드를 입력을 해야합니다. hadoop은 내부적으로 ssh로 통신하므로 패스워드 입력없이 ssh 접속이 가능하도록 설정해야 합니다.


$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa


위와 같이 입력해서 키를 생성합니다. 중간에 입력을 해야 하는 항목이 나오면 그냥 엔터키를 누르면 됩니다.


The key's randomart image is:

+--[ DSA 1024]----+

|                 |

|           .     |

|      .   . .    |

|     + + o .     |

|    o + S +      |

| . o o + = .     |

|  + o o +        |

|  .oEo o         |

|   ++ .          |

+-----------------+


재미있는 그림도 나오네요 :)


$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


키를 생성하면 ~/.ssh 디렉토리에 파일이 생기는데 위와 같이 입력하여 이 키 파일을 같은 디렉토리에 있는 authorized_keys 파일에 추가해 줍니다.


$ ssh localhost


자, 이제 다시 ssh 접속을 해서 패스워드 입력없이 접속이 되면 성공입니다~




설치 및 설정



다운로드 및 설치


설치는 간단합니다. 아래 사이트에 접속해서 파일을 다운 받습니다.


[Hadoop Releases]



Hadoop 버전이 여러가지가 있는데 간단하게 언급하면

  • 1.0.x - 현재 안정된 버전
  • 1.1.x - 베타 버전
  • 2.x.x - 알파 버전
  • 0.23.x - 2.x.x 버전과 유사하나 namenode 이중화 구성이 빠짐
  • 0.22.x - security 기능 제외
  • 0.20.203.x - 안정된 버전(구버전)
  • 0.20.x - 구버전


여기서는 1.0.4 버전으로 설치할 것입니다.

적당한 디렉토리에 다운받은 파일의 압축을 풉니다.


$ tar -xzvf hadoop-*.tar.gz


이것으로 설치는 끝입니다 :)

설치가 잘 됐는지 확인해 볼까요?




Hadoop 설정


hadoop cluster를 시작하기 위한 준비 작업으로 hadoop 홈 디렉토리 하위에 conf/hadoop-env.sh 파일을 수정해야 합니다.


  • Java Home 설정
    hadoop-env.sh 파일에서 JAVA_HOME 설정부분에 주석(#)을 제거하고 /Library/Java/Home (또는 /System/Library/Frameworks/JavaVM.framework/Home)를 입력합니다.
    혹시 자바를 다른 디렉토리에 설치했으면 자바를 설치한 디렉토리를 적어주면 됩니다.
      export JAVA_HOME=/Library/Java/Home

  • OS X용 환경변수 추가
    이 부분 때문에 좀 고생을 했는데, 아래와 같은 내용을 추가해줍니다. (참조: https://issues.apache.org/jira/browse/HADOOP-7489)

      export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

  • 아래는 hadoop-env.sh 파일의 예입니다.


    # Set Hadoop-specific environment variables here.
    
    # The only required environment variable is JAVA_HOME.  All others are
    # optional.  When running a distributed configuration it is best to
    # set JAVA_HOME in this file, so that it is correctly defined on
    # remote nodes.
    
    # The java implementation to use.  Required.
    export JAVA_HOME=/Library/Java/Home
    
    # Extra Java CLASSPATH elements.  Optional.
    # export HADOOP_CLASSPATH=
    
    # The maximum amount of heap to use, in MB. Default is 1000.
    export HADOOP_HEAPSIZE=2000
    
    # Extra Java runtime options.  Empty by default.
    # export HADOOP_OPTS=-server
    export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
    


    여기까지 했으면 hadoop이 잘 돌아가는지 테스트 해 볼 수 있습니다.


    $ bin/hadoop


    위와 같이 입력했을 때, hadoop 실행 방법이 출력되면 정상입니다.



    이제 본격적으로 설정을 해 볼텐데요, Hadoop은 3가지 모드를 지원합니다.

    • Standalone mode (Local mode)
    • Pseudo-Distributed mode
    • Fully-Distributed mode


    Standalone mode


    기본 설정입니다. 모든 hadoop daemon이 하나의 java process로 실행됩니다. 

    처음 hadoop-env.sh 파일 수정한 것 외에는 별도 수정할 필요 없이 바로 hadoop을 실행하면 됩니다. local mode 라고도 불리는 것처럼 HDFS에 파일을 올릴 필요없이 local 파일을 바로 access 해서 출력도 local에 생성됩니다. 디버깅할 때 편리합니다.


    Standalone으로 실행해 보려면 아래와 같이 입력합니다.


    $ mkdir input 

    $ cp conf/*.xml input 

    $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 

    $ cat output/*




    Pseudo-Distributed mode


    Standalone mode와는 달리 Hadoop daemon들이 각각 별도의 java process로 실행되는데 하나의 node로 실행되는 형태입니다. input 파일은 HDFS 상에 있어야 하고 output 파일도 HDFS에 생성됩니다.


    conf/core-site.xml:


    
         
             fs.default.name
             hdfs://localhost:9000
         
    
    


    conf/hdfs-site.xml:

    
         
             dfs.replication
             1
         
    
    


    conf/mapred-site.xml:

    
         
             mapred.job.tracker
             localhost:9001
         
    
    


    위와 같이 설정 파일을 입력했으면 hadoop을 실행해 보기 전에 HDFS를 포맷해야 합니다.

    $ bin/hadoop namenode -format



    다음은 hadoop daemon을 실행시키는 명령입니다.


    $ bin/start-all.sh



    hadoop을 실행 시켰으면 log를 보면서 제대로 기동이 됐는지 확인합니다. log 디렉토리는 기본적으로 ${HADOOP_HOME}/logs 입니다.


    그 다음 hadoop에서 web interface로 제공하는 NameNode와 JobTracker에 접속해 봅니다.


    여기까지 잘 됐다면 위 Standalone mode에서 했던 예제를 해볼까요?


    $ bin/hadoop fs -put conf input


    hadoop의 conf 디렉토리를 HDFS 에 input 위치에 올리는 명령입니다.


    예제 실행은 아래와 같이 합니다.


    $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'



    똑같이 결과가 output 디렉토리에 생기는데 Standalone mode와는 다르게 local이 아니고 HDFS상입니다. 결과를 확인해 보려면


    $ bin/hadoop fs -get output output 

    $ cat output/*


    위와 같이 HDFS의 output을 local의 output으로 내려받아서 확인해 보거나


    $ bin/hadoop fs -cat output/*


    HDFS상의 파일을 바로 확인할 수도 있습니다.



    마지막으로 hadoop daemon을 종료하려면 아래와 같이 입력합니다.


    $ bin/stop-all.sh



    Fully-Distributed mode는 여기서 다루지 않겠습니다~


    'framework > hadoop' 카테고리의 다른 글

    GenericOptionsParser 활용(ToolRunner)  (0) 2013.08.02
    Hadoop 실행시 jar 파일 추가하기  (0) 2009.09.04