Search Engine/hadoop2008. 4. 6. 02:51

출처:http://ausgang.egloos.com/1806517

Hadoop 공부 #1 - 설치

Hadoop을 2대의 리눅스 서버에 설치해 보았다. 2대면 별로 효능을 기대할 수 없지만 일단 공부한다는 차원에서..

Hadoop이 무엇인지에 대해서 보다 Hadoop의 설치에 대한 간단한 정리부터 올리는 것이 이상하긴 하지만,
잊어먹기전에 먼저.. ㅡ_ㅡ;;

다음 편에서는 Hadoop의 간단한 명령어, 그리고 다음에는 Hadoop을 이용한 프로그래밍 방법, 그리고 hadoop의 내부구조를 분석할 여유가 있으면 내부구조에 대한 간단한 이야기...
마지막으로 Hadoop이 무엇인지에 대해서, 엽기적인 순서로 정리해볼까 생각중이다. ㅡ_ㅡ;;

참 무계획의 화신이다. -_-;

----------------------------------

hadoop url: http://hadoop.apache.org/


* 핵심 설정파일

    * hadoop-env.sh : hadoop을 운용하기 위한 환경변수
    * hadoop-site.xml : master node의 호스트정보와 분산디렉토리 파일시스템 정보
    * slaves : data node 호스트이름

* 네트웍 환경 설정

- namenode: 192.168.131.101       gdevh01
- datanode: 192.168.131.101       gdevh01
            192.168.131.102        gdevh02
            

* 파일 구조 설정

mkdir /hdfs
mkdir /hdfs/hadoop
mkdir /hdfs/filesystem
mkdir /hdfs/local
mkdir /hdfs/home

groupadd users
useradd -d /hdfs/home -g users hadoop
chown -R hadoop:users /hdfs
passwd hadoop

이 다음부터는 hadoop 계정으로 로긴한다.

* conf/hadoop-env.sh 설정 내용

export HADOOP_HOME=/home/yundream/workspace/nutch-nightly
export JAVA_HOME=/usr/local/java
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves


* conf/hadoop-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
        <name>fs.default.name</name>
        <value>gdevh01:9000</value>
</property>

<property>
        <name>mapred.job.tracker</name>
        <value>gdevh01:9001</value>
</property>

<property>
        <name>dfs.name.dir</name>
        <value>/hdfs/filesystem/name</value>
</property>

<property>
        <name>dfs.data.dir</name>
        <value>/hdfs/filesystem/data</value>
</property>

<property>
        <name>mapred.system.dir</name>
        <value>/hdfs/filesystem/mapreduce/system</value>
</property>

<property>
        <name>mapred.local.dir</name>
        <value>/hdfs/filesystem/mapreduce/local</value>
</property>

<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>

</configuration>


* slaves
gdevh01
gdevh02


-- 각 서버에 모두 같이 셋팅 하도록 한다.


* ssh를 통한 자동 로그인 셋팅


cd /hdfs/home

ssh-keygen -t rsa (Use empty responses for each prompt)
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /nutch/home/.ssh/id_rsa.
  Your public key has been saved in /nutch/home/.ssh/id_rsa.pub.
  The key fingerprint is:
  a6:5c:c3:eb:18:94:0b:06:a1:a6:29:58:fa:80:0a:bc hadoop@gdevh01


cd /hdfs/home/.ssh
cp id_rsa.pub authorized_keys

scp /hdfs/home/.ssh/authorized_keys hadoop@gdevh02:/hdfs/home/.ssh/authorized_keys

ssh gdevh02 -- 자동으로 로그인 됨.

* Namenode 포맷 설정

bin/hadoop namenode -format

* 시작 및 종료

시작
bin/start-all.sh

종료
bin/stop-all.sh


* 방화벽 설정

master node
$ vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50010 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50030 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50040 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50050 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50060 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
$ /etc/init.d/iptables restart


slave node

$ vi /etc/sysconfig/iptables
 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50010 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50040 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50050 -j ACCEPT
#추가 2006.06.27
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50060 -j ACCEPT

$ /etc/init.d/iptables restart  


Posted by BAGE