2012-09-20 3 views
1

Pseudo-Distributed 모드에서 Hadoop/Yarn 2.x (특히 v0.23.3)를 설정하기 만하면됩니다.Hadoop/Yarn (v0.23.3) Psuedo-Distributed Mode 설정 :: 작업 노드 없음

나는 약간의 블로그 & 웹 사이트의 지시에 따라 더 많은 것을 또는 덜 설정하여 그것을 설정하기 위해 처방전을 제공했다. 나는 O'reilly의 하둡 책 (역설적으로 가장 도움이되지 못했던 책)의 제 3 판을 따랐다.

인한 문제 :

After running "start-dfs.sh" and then "start-yarn.sh", while all of the daemons 
do start (as indicated by jps(1)), the Resource Manager web portal 
(Here: http://localhost:8088/cluster/nodes) indicates 0 (zero) job-nodes in the 
cluster. So while submitting the example/test Hadoop job indeed does get 
scheduled, it pends forever because, I assume, the configuration doesn't see a 
node to run it on. 

Below are the steps I performed, including resultant configuration files. 
Hopefully the community help me out... (And thank you in advance). 

구성 :

다음 환경 변수를 모두 내 하둡의 UNIX 계정 프로필에 설정되어

: ~/.profile에 :

export HADOOP_HOME=/home/myself/APPS.d/APACHE_HADOOP.d/latest 
    # Note: /home/myself/APPS.d/APACHE_HADOOP.d/latest -> hadoop-0.23.3 

export HADOOP_COMMON_HOME=${HADOOP_HOME} 
export HADOOP_INSTALL=${HADOOP_HOME} 
export HADOOP_CLASSPATH=${HADOOP_HOME}/lib 
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop/conf 
export HADOOP_MAPRED_HOME=${HADOOP_HOME} 
export YARN_HOME=${HADOOP_HOME} 
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop/conf 
export JAVA_HOME=/usr/lib/jvm/jre 

하둡 $ java -version

java version "1.7.0_06-icedtea<br> 
OpenJDK Runtime Environment (fedora-2.3.1.fc17.2-x86_64)<br> 
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)<br> 

# Although the above shows OpenJDK, the same problem happens with Sun's JRE/JDK. 
01 또한 등/하둡/conf의/HDFS-site.xml 파일에 지정된 23,516,

네임 노드 & 데이터 노드 디렉토리 :

/home/myself/APPS.d/APACHE_HADOOP.d/latest/YARN_DATA.d/HDFS.d/DATANODE.d/ 
/home/myself/APPS.d/APACHE_HADOOP.d/latest/YARN_DATA.d/HDFS.d/NAMENODE.d/ 

다음, 다양한 XML 구성 파일 (다시, 여기 원사/MRv2/v0.23.3) :

hadoop$ pwd; ls -l 
/home/myself/APPS.d/APACHE_HADOOP.d/latest/etc/hadoop/conf 
lrwxrwxrwx 1 hadoop hadoop 16 Sep 20 13:14 core-site.xml -> ../core-site.xml 
lrwxrwxrwx 1 hadoop hadoop 16 Sep 20 13:14 hdfs-site.xml -> ../hdfs-site.xml 
lrwxrwxrwx 1 hadoop hadoop 18 Sep 20 13:14 httpfs-site.xml -> ../httpfs-site.xml 
lrwxrwxrwx 1 hadoop hadoop 18 Sep 20 13:14 mapred-site.xml -> ../mapred-site.xml 
-rw-rw-r-- 1 hadoop hadoop 10 Sep 20 15:36 slaves 
lrwxrwxrwx 1 hadoop hadoop 16 Sep 20 13:14 yarn-site.xml -> ../yarn-site.xml 

코어를 site.xml

<?xml version="1.0"?> 
<!-- core-site.xml --> 
<configuration> 
    <property> 
    <name>fs.default.name</name> 
    <value>hdfs://localhost/</value> 
    </property> 
</configuration> 

mapred-site.xml의

<?xml version="1.0"?> 
<!-- mapred-site.xml --> 
<configuration> 

    <!-- Same problem whether this (legacy) stanza is included or not. --> 
    <property> 
    <name>mapred.job.tracker</name> 
    <value>localhost:8021</value> 
    </property> 

    <property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
    </property> 
</configuration> 

HDFS-site.xml의

<!-- hdfs-site.xml --> 
<configuration> 
    <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
    </property> 
    <property> 
    <name>dfs.namenode.name.dir</name> 
    <value>file:/home/myself/APPS.d/APACHE_HADOOP.d/YARN_DATA.d/HDFS.d/NAMENODE.d</value> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:/home/myself/APPS.d/APACHE_HADOOP.d/YARN_DATA.d/HDFS.d/DATANODE.d</value> 
    </property> 
</configuration> 

원사를 site.xml은

<?xml version="1.0"?> 
<!-- yarn-site.xml --> 
<configuration> 
    <property> 
    <name>yarn.resourcemanager.address</name> 
    <value>localhost:8032</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>mapreduce.shuffle</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
    <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.resource.memory-mb</name> 
    <value>4096</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.local-dirs</name> 
    <value>/home/myself/APPS.d/APACHE_HADOOP.d/YARN_DATA.d/TEMP.d</value> 
    </property> 
</configuration> 

는 등/하둡/conf의는/

localhost 
    # Community/friends, is this entry correct/needed for my psuedo-dist mode? 

기타 랩 - 업 메모를 저장합니다

(1) As you may have gleaned from above, all files/directories are owned 
    by the 'hadoop' UNIX user. There is a hadoop:hadoop, UNIX User and 
    Group, respectively. 

(2) The following command was run after the NAMENODE & DATANODE directories 
    (listed above) were created (and whose paths were entered into 
    hdfs-site.xml): 

    hadoop$ hadoop namenode -format 

(3) Next, I ran "start-dfs.sh", then "start-yarn.sh". 
    Here is jps(1) output: 

[email protected]$ jps 
    21979 DataNode 
    22253 ResourceManager 
    22384 NodeManager 
    22156 SecondaryNameNode 
    21829 NameNode 
    22742 Jps 

고맙습니다!

+0

하지 않도록해야하지만'파일 관리 : /''파일 수 : //'? – scarcer

답변

0

성공하지 못한 채이 문제에 많은 수고를 들인 후 (나는 그것을 모두 시도해 보았습니다.) 다른 솔루션을 사용하여 hadoop을 설립했습니다. 위의 경우 다운로드 미러 중 하나에서 hadoop 배포판 (다시 v0.23.3)의 gzip/tar 공 을 다운로드했지만이 번 YY Repos를 통해 을 통해 설치된 RPM 패키지의 Caldera CDH 배포본을 사용했습니다. 이것이 누군가를 도울 것이라는 희망으로 여기에 세부 단계가 있습니다.

스텝 -1 :

하둡 0.20.X (MapReduce는 버전 1)

# rpm -Uvh http://archive.cloudera.com/redhat/6/x86_64/cdh/cdh3-repository-1.0-1.noarch.rpm 
    # rpm --import http://archive.cloudera.com/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera 
    # yum install hadoop-0.20-conf-pseudo 
하둡 0.23.x 들어

- 또는

(MapReduce는 버전 2) 위의 두 경우

# rpm -Uvh http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.noarch.rpm 
    # rpm --import http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera 
    # yum install hadoop-conf-pseudo 

, 즉 "사이비"패키지를 설치 ("pseudo-distributed Hadoop"모드를 의미 함) 만 있으면 편리하게 의존성 해결을 통해 필요한 모든 필요한 패키지를 설치할 수 있습니다.

스텝 2 :

(아직 수행하지 않은 경우) 썬/오라클의 자바 JRE를 설치합니다. 그들이 제공하는 RPM이나 gzip/tar ball portable 버전을 통해 을 설치할 수 있습니다. "JAVA_HOME" 환경을 적절히 설정하고 내보내고 경로에 $ {JAVA_HOME}/bin/java가 있는지 확인하는 것은 중요하지 않습니다.

# echo $JAVA_HOME; which java 
    /home/myself/APPS.d/JAVA-JRE.d/jdk1.7.0_07 
    /home/myself/APPS.d/JAVA-JRE.d/jdk1.7.0_07/bin/java 

참고 : 실제로 나는 JAVA를 업데이트 할 때마다 자바 버전의 특정 디렉토리에 "최신"및 점/다시 점을라는 심볼릭 링크를 만듭니다. 나는 위에 명시된 독자의 이해.

Step-3 : hdfs를 "hdfs"유닉스 사용자 (위의 "yum install"중에 생성됨)로 포맷하십시오.

# sudo su hdfs -c "hadoop namenode -format" 

스텝 4 :

수동으로 하둡 데몬을 시작합니다.

for file in `ls /etc/init.d/hadoop*` 
    do 
    { 
    ${file} start 
    } 
    done 

스텝 5 : 일들이 작업하는 경우

확인이 확인합니다. 다음은 MapReduce v1 입니다 (MapReduce v2의 경우에는 그다지 다르지 않습니다).

root# jps 
    23104 DataNode 
    23469 TaskTracker 
    23361 SecondaryNameNode 
    23187 JobTracker 
    23267 NameNode 
    24754 Jps 

    # Do the next commands as yourself (not as "root"). 
    myself$ hadoop fs -mkdir /foo 
    myself$ hadoop fs -rmr /foo 
    myself$ hadoop jar /usr/lib/hadoop-0.20/hadoop-0.20.2-cdh3u5-examples.jar pi 2 100000 

이 도움이 되었기를 바랍니다.

+0

P. 이 작업은 Fedora-17 x86-64 비트 O/S에서 수행되었습니다. –