본문 바로가기

카테고리 없음

하둡 설정 (data node)

    1. sudo mkdir -p /prj/data/hadoop/tmp (하둡 임시 파일 경로, hadoop/conf/core-site.xml에서 hadoop.tmp.dir 경로를 선택할 수 있음)
    2. sudo mkdir -p /prj/logs/hadoop (하둡 로그 경로, hadoop/conf/hadoop-env.sh 에서 설정을 바꿀 수 있음)
    3. hadoop/conf/hadoop-env.sh 파일에 export HADOOP_LOG_DIR=/prj/logs/hadoop 추가
    4. master에서 hadoop/conf/slaves에 추가된 slave 주소 입력
    5. master에서 hadoop/conf/hdfs-site.xml에 총 노드 개수 입력 (현재 네임노드 1개, 데이타노드 3개의 구성이므로 4, default 3)
      1. 경로를 지정해 주는 경우 디렉토리의 권한을 확인, 권한 문제로 에러가 나는 경우가 있어서 로그를 통해서 확인해 본다.
    6. master에서 hadoop/conf/mapred-site.xml에 mapred.map.tasks와 mapred.reduce.tasks의 수를 노드 수 * 10 정도로 입력 (현재는 40)
    7. master에서 core-site.xml, hdfs-site.xml, mapred-site.xml 3개의 파일을 slave에 conf위치에 동일하게 복사해 준다.
      • scp core-site.xml svr4:/prj/program/hadoop/conf
      • scp hdfs-site.xml svr4:/prj/program/hadoop/conf (파일 내용이 수정되었으므로 다른 slave에도 복사)
      • scp mapred-site.xml svr4:/prj/program/hadoop/conf (파일 내용이 수정되었으므로 다른 slave에도 복사)
      • conf파일 배포 스크립트 (master 서버에서 실행)
        #!/bin/sh
        
        PWD='/prj/program/hadoop/conf'
        
        CORE_CONF="core-site.xml" 
        HDFS_CONF="hdfs-site.xml" 
        MAPRED_CONF="mapred-site.xml" 
        
        master="svr1.example.com" 
        slaves=`cat $PWD/slaves`
        
        if [ $# -eq 0 ] ; then
            opt="all" 
        else
            opt=$1
        fi
        
        for slave in $slaves
        do
            if [ $slave != $master ]
            then
                printf "\n" 
                echo "======= START $slave ========" 
        
                if [ $opt = "all" ] || [ $opt = $CORE_CONF ]
                then
                    #scp $PWD/$CORE_CONF $slave:$PWD/
                    echo "scp $PWD/$CORE_CONF $slave:$PWD/" 
                fi
        
                if [ $opt = "all" ] || [ $opt = $HDFS_CONF ]
                then
                    #scp $PWD/$HDFS_CONF $slave:$PWD/
                    echo "scp $PWD/$HDFS_CONF $slave:$PWD/" 
                fi
        
                if [ $opt = "all" ] || [ $opt = $MAPRED_CONF ]
                then
                    #scp $PWD/$MAPRED_CONF $slave:$PWD/
                    echo "scp $PWD/$MAPRED_CONF $slave:$PWD/" 
                fi
                echo "======= END $slave ========" 
                printf "\n" 
            fi
        done