본문 바로가기

심오한 세상/nosql

Hadoop & Hbase 설치


많은 사이트를 찾아서 설치를 해보려고 했으나, 충분한 설명이 부족하여 따로 정리하였습니다..
설치한 버전은
hadoop-1.0.1
hbase-0.92.0
입니다..
설치가 완료된 구성 형태는 

※ Cloudera 에서 발표한 문서에서 캡쳐한  내용 입니다. 

위와 조금 다르지만 거의 같다고 보면됩니다..
위와 다른 점은 DataNode가 하나 없습니다.

설치 방법은 아래와 같습니다.

# hadoop 그룹 생성
** groupadd hadoop
# hadoop 사용자 생성
** useradd hadoop -g hadoop
** passwd hadoop
# ssh 인증서를 사용하기 위한 sshd 설정 바꾸기
** 아래 부분 주석 제거
<pre>
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
</pre>
# ssh 인증서 생성
** ssh-keygen -t rsa
** cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# install hadoop
** tar -zxvf hadoop-0.20.203.0rc1.tar.gz
** mv hadoop-0.20.203.0/ hadoop
** chown -R hadoop:hadoop hadoop/
# config hadoop
** hadoop-env.sh
*** JAVA_HOME 설정
**** export JAVA_HOME=/usr/local/jdk1.6.0_31
** core-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master_hostname:9000</value>
        </property>
</configuration>
</pre>
** hdfs-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/data/hdfs/namenode</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/data/hdfs/datanode</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.datanode.max.xcievers</name>
                <value>4096</value>
        </property>
</configuration>
</pre>
** mapred-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>master_hostname:9001</value>
        </property>
        <property>
                <name>mapred.system.dir</name>
                <value>/data/hdfs/mapreduce/system</value>
        </property>
        <property>
                <name>mapred.local.dir</name>
                <value>/data/hdfs/mapreduce/local</value>
        </property>
</configuration>
</pre>
** masters, slaves 설정
# hadoop namenode 포멧
** 관리자 권한 필요(hadoop 사용자 계정에 node를 생성할 경우 필요없음)
** bin/hadoop namenode -format
# slaves에서 hadoop 설정
** hbase-env.sh
*** JAVA_HOME 설정
**** export JAVA_HOME=/usr/local/jdk1.6.0_31
** core-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master_hostname:9000</value>
        </property>
</configuration>
</pre>
** hdfs-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>dfs.datanode.max.xcievers</name>
                <value>4096</value>
        </property>
</configuration>
</pre>
** mapred-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>master_hostname:9001</value>
        </property>
</configuration>
</pre>
** masters, slaves 설정
** datanode의 경로가 있어야 실행가능하므로, 미리 디렉토리를 생성해야함.
# hadoop 실행
** bin/start-all.sh
# install hbase
** tar -zxvf hbase-0.92.0.tar.gz
** mv hbase-0.92.0/ hbase
** chown -R hadoop:hadoop hbase/
# hbase 설정
** hbase-env.sh
*** JAVA_HOME 설정
**** export JAVA_HOME=/usr/local/jdk1.6.0_31
*** HADOOP Config 연결
**** export HBASE_CLASSPATH=/usr/local/hadoop/conf
** hbase-site.xml
<pre class="xml">
<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://umx1:9000/hbase</value>
        </property>
        <property>
                <name>hbase.master</name>
                <value>umx1:60000</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>4</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>umx1,umx2,umx3,umx4</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/data/zookeeper</value>
        </property>
</configuration>
</pre>
** hbase와 hadoop의 버전 맞추기
*** hadoop-core-1.0.1.jar
*** 기존에 있던 hadoop core jar 파일 삭제
** /usr/local/hbase/conf/regionservers
*** master 서버에만 적용
# hbase 실행
** bin/start-hbase.sh


 ※ hadoop 0.20.203.0 버전과 hbase 0.92.0 버전을 같은 방식으로 설치를 해보았으나, 버전 문제인지 모르지만 설치가 되지 않았습니다.