Hadoop 클러스터 구축 프로세스

21228 단어 Hadoop

Hadoop 클러스터 설치


이 글은 주로 Hadoop 집단을 구축하는 과정을 소개했다.
  • 환경:
  • VMware 12.0
  • 클러스터 CentOS 6.5(3노드)
  • 첫 번째 서버 구성


    주 노드 (master) 두 개의 하위 노드 (slaver)
    세 노드의 호스트 이름을 구성합니다.
    vi 편집기를 사용하여 파일을 편집하려면 다음과 같이 하십시오.
    vi /etc/sysconfig/network

    다음을 추가합니다.
    NETWORKING=yes
    HOSTNAME=master
    NETWORKING=yes
    HOSTNAME=slaver1
    NETWORKING=yes
    HOSTNAME=slaver2

    hosts 설정: 주 노드의 hosts 파일을 열고 파일의 앞줄 두 줄을 주석하고 (현재 호스트의 정보를 주석) 파일에hadoop 집단의 호스트 정보를 추가합니다.
    vi /etc/hosts
    
    192.168.175.200   master
    192.168.175.201   slaver1
    192.168.175.202   slaver2

    저장한 후 주 노드의 호스트를 다른 두 개의 하위 노드로 복사합니다
    scp /etc/hosts root@192.168.175.201:/etc/
    scp /etc/hosts root@192.168.175.202:/etc/

    그리고 각각 실행합니다(리셋 서버는 다음 문장을 실행하지 않아도 됩니다). /bin/hostsname hostsname. 예를 들어 마스터에서 실행합니다/bin/hostsname master.

    암호 없는 SSH 액세스 구성

  • ssh 설치.CentOS 6.5는 기본적으로 ssh가 설치되어 있습니다.사용rpm -qa|grep sshssh가 설치되었는지 확인하고, 설치되지 않았으며, 실행yum install openssh-server할 수 있음
  • 키를 생성하여 각 노드에서 실행ssh-keygen -t rsa하고 키를 생성합니다. 실행이 끝난 후 각 노드의/root/.ssh/디렉터리에 두 개의 파일이 생성됩니다:id_rsa 및 id_rsa.pub, 그 중에서 전자는 개인 키이고, 후자는 공개 키이다.마스터에서 실행: cp id_rsa.pub authorized_keys 마스터에서 authorized_ 생성키 파일, 마스터 노드의 공개 키를 포함합니다.
  • 하위 노드의 공개 키를 주 노드에 복사하고 authorized_keys는 두 개의 하위 노드의 공개 키를 메인 노드에 복사하여 각각 두 개의 하위 노드에서 실행한다.
  • scp /root/.ssh/ id_rsa.pub root@master:/root/.ssh/id_rsa_slaver1.pub
    scp /root/.ssh/ id_rsa.pub root@master:/root/.ssh/id_rsa_slaver2.pub

    그리고 마스터에서 복사된 두 개의 키를 authorized_keys 파일에서 마스터로 실행:
    cat id_rsa_slaver1.pub>> authorized_keys
    cat id_rsa_slaver2.pub>> authorized_keys

    이때 마스터의 authorized_keys 파일에는 모든 노드의 공개 키가 포함되어 있으며, 이 파일을 각 하위 노드로 복사합니다.ssh/디렉터리에서 각 노드 간의 암호 없는 접근을 실현할 수 있습니다.마스터에서 scp 명령으로 authorized_keys 파일을 하위 노드의 상응하는 위치로 복사
    scp authorized_keys root@slaver1:/root/.ssh/
    scp authorized_keys root@slaver2:/root/.ssh/

    테스트: 주 노드에서 실행ssh slaver1하면slaver1 노드로 이동할 수 있는지 확인

    JDK 설치

  • 시스템에 설치된 jdk:
  • rpm -qa|grep jdk
  • jdk 마운트 해제:
  • rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
  • JDK 설치(세 기기 모두 설치) 동일한 위치에 설치/opt/java/jdk1.7.0_72 JDK 압축해제 다운로드 JDK: tar -zxvf /opt/java/jdk-7u72-linux-x64.gz 구성 환경 변수, 프로필 파일 편집:
  • vi /etc/profile

    프로필 파일 끝에 다음 코드를 추가합니다.
    export JAVA_HOME=/opt/java/jdk1.7.0_72
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

    저장하면 방금 편집한 파일이 적용됩니다.
    source /etc/profile

    설치 여부 테스트: java –version

    hadoop 설치


    마스터 호스트에hadoop 설치 위치를 설정합니다. 예를 들어/usr 디렉터리에 설치하여hadoop 패키지를 다운로드하고/usr 디렉터리에 설치하여hadoop 압축을 풀습니다.
    tar -zxvf /opt/hadoop/hadoop-2.6.4.tar.gz

    usr 아래에 hadoop-2.6.4 디렉터리 구성 환경 변수를 생성합니다.
    vi /etc/profile

    끝에 추가:
    export HADOOP_HOME=/usr/ hadoop-2.6.4
    export PATH=$PATH:$HADOOP_HOME/bin

    저장한 후 새로 편집한 프로필을 적용합니다.
    source /etc/profile

    hadoop 설정


    hadoop 프로필을 설정하려면 설정해야 할 파일의 위치는/hadoop-2.6.4/etc/hadoop입니다. 수정해야 할 것은 다음과 같습니다.
    hadoop-env.sh yarn-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves 그중hadoop-env.sh와 yarn-env.sh에 jdk의 환경 변수를 추가해야 합니다.
    hadoop-env.sh 
    
    # The java implementation to use.
    
    export JAVA_HOME=/opt/java/jdk1.7.0_72
    --------------------------------------
    
    ( , )
    # The jsvc implementation to use. Jsvc is required to run secure datanodes
    # that bind to privileged ports to provide authentication of data transfer
    # protocol.  Jsvc is not required if SASL is configured for authentication of
    # data transfer protocol using non-privileged ports.
    #export JSVC_HOME=${JSVC_HOME}
    
    yarn-env.sh 
    
    # User for YARN daemons
    export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
    
    # resolve links - $0 may be a softlink
    export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
    
    # some Java parameters
    
    export JAVA_HOME=/opt/java/jdk1.7.0_72
    --------------------------------------
    ( , )
    
    core-site.xml 
    
    <configuration>
            <property>
                    fs.defaultFS
    --  master : >
                    hdfs://master:9000
            property>
            <property>
                    io.file.buffer.size
                    131072
            property>
            <property>
                    hadoop.tmp.dir
    -- hadoop  >
                    file:/usr/temp
            property>
            <property>
                    hadoop.proxyuser.root.hosts
                    *
            property>
            <property>
                    hadoop.proxyuser.root.groups
                    *
            property>
    configuration>
    
    hdfs-site.xml 
    
    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-addressname>
    
                    <value>master:9001value>
            property>
            <property>
    
                    <name>dfs.namenode.name.dirname>
                    <value>file:/usr/dfs/namevalue>
            property>
            <property>
    
                    <name>dfs.datanode.data.dirname>
                    <value>file:/usr/dfs/datavalue>
            property>
            <property>
    
                    <name>dfs.replicationname>
                    <value>2value>
            property>
            <property>
                    <name>dfs.webhdfs.enabledname>
                    <value>truevalue>
            property>
            <property>
                    <name>dfs.permissionsname>
                    <value>falsevalue>
            property>
            <property>
                    <name>dfs.web.uginame>
                    <value> supergroupvalue>
            property>
    configuration>
    
    mapred-site.xml 
    
    <configuration>
            <property>
                    <name>mapreduce.framework.namename>
                    <value>yarnvalue>
            property>
            <property>
                    <name>mapreduce.jobhistory.addressname>
                    <value>master:10020value>
            property>
            <property>
                    <name>mapreduce.jobhistory.webapp.addressname>
                    <value>master:19888value>
            property>
    configuration>
    
    yarn-site.xml 
    
    <configuration>
            <property>
                    <name>yarn.nodemanager.aux-servicesname>
                    <value>mapreduce_shufflevalue>
            property>
            <property>
                    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
                    <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
            property>
            <property>
                    <name>yarn.resourcemanager.addressname>
                    <value>master:8032value>
            property>
            <property>
                    <name>yarn.resourcemanager.scheduler.addressname>
                    <value> master:8030value>
            property>
            <property>
                    <name>yarn.resourcemanager.resource-tracker.addressname>
                    <value> master:8031value>
            property>
            <property>
                    <name>yarn.resourcemanager.admin.addressname>
                    <value> master:8033value>
            property>
            <property>
                    <name>yarn.resourcemanager.webapp.addressname>
                    <value> master:8088value>
            property>
    configuration>
    
    slaves 
    
    slaver1
    slaver2
    

    hadoop 설치 파일을 하위 노드로 복사


    마스터에서 다음을 수행합니다.
    scp -r /usr/hadoop-2.6.4 root@slaver1:/usr
    scp -r /usr/hadoop-2.6.4 root@slaver2:/usr

    프로파일을 하위 노드로 복사


    마스터에서 다음을 수행합니다.
    scp /etc/profile root@slaver1:/etc/
    scp /etc/profile root@slaver2:/etc/

    두 개의 하위 노드에서 각각 새 프로필을 적용합니다.
    source /etc/profile

    주 노드 포맷namenode


    마스터에서 hadoop 디렉터리에 들어가서 다음을 수행합니다.
    ./bin/hadoop namenode –format

    새 버전은 다음 문장으로hadoop 명령을 사용하지 않습니다.
    ./bin/hdfs namenode –format

    팁: successfully formatted 포맷 성공

    hadoop 시작


    마스터에서 hadoop 디렉토리에서 다음을 수행합니다.
    start-all.sh

    주 노드의 jps 프로세스는 다음과 같습니다.
    NameNode SecondaryNameNode ResourceManager
    각 하위 노드의 jps 프로세스는 다음과 같습니다.
    DataNode NodeManager
    프로세스가 정상적으로hadoop 집단 설정에 성공했음을 나타냅니다!

    프로세스 오류:


    프로세스에namenode가 없으면 다시 포맷해야 합니다. 포맷을 실행하기 전에 설정된 저장 파일의 디렉터리name와 데이터 디렉터리를 삭제해야 합니다.hdfs-site.xml에 설정된 경로: file/usr/dfs/data;file/usr/dfs/name;하위 노드의 파일 디렉터리도 삭제해야 합니다.

    좋은 웹페이지 즐겨찾기