2016-02-22 3 views
1

Для простой программы wordcount из примеров отправить задание не удается, даже если все задания запущены.Невозможно инициализировать кластер Hadoop-2.7.1 и YARN

hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount hdfs://localhost:9000/input hdfs://localhost:9000/output 

JPS

31265 SecondaryNameNode 
31064 DataNode 
30929 NameNode 
31478 ResourceManager 
32354 Jps 

ошибок

java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses. 
    at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120) 
    at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82) 
    at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75) 
    at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1260) 
    at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1256) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hadoop.mapreduce.Job.connect(Job.java:1255) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1284) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308) 
    at org.apache.hadoop.examples.WordCount.main(WordCount.java:87) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71) 
    at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144) 
    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

ядро-site.xml

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/usr/local/hadoop_store/hdfs/tmp</value> 
    <description>A base for other temporary directories.</description> 
</property> 
<property> 
    <name>fs.default.name</name> 
    <value>hdfs://localhost:9000</value> 
</property> 
</configuration> 

пряжи site.xml

<?xml version="1.0"?> 
<configuration> 
<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> 
</configuration> 

HDFS-site.xml

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
<property> 
    <name>dfs.replication</name> 
    <value>1</value> 
    <description>Default block replication. 
    The actual number of replications can be specified when the file is created. 
    The default is used if replication is not specified in create time. 
    </description> 
</property> 
<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>file:/usr/local/hadoop_store/hdfs/namenode</value> 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:/usr/local/hadoop_store/hdfs/datanode</value> 
</property> 
</configuration> 

mapred-site.xml

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
    <name> mapreduce.framework.name </name> 
    <value> yarn </value> 
    </property> 
</configuration> 

я пытался много решений от других SO размещать как изменение mapreduce.shuffle < -> mapreduce_shuffle, но нет ne из них кажется работающим. Все каталоги существуют, и веб-страница также доступна на локальном хосте.

Конфигурация системы:

Ubunutu:15.10 
Hadoop: 2.7.1 
Java: open-jdk 7u95-2.6.4-0ubuntu0.15.10.1 

ответ

0

После удаления всех записей из mapred-site.xml это работает не знаю, почему?

В последние 2.7.2 релиз mapred-site.xml.template было изменено на

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

Это дало мне ключ, и я попробовал, и это работает.

-1

Изменение параметров вашей пряжи site.xml

<property> 
<name>yarn.nodemanager.aux-services</name> 
<value>mapreduce_shuffle</value> 
</property> 
+0

Это не работает. –

+0

попробуйте это http://stackoverflow.com/questions/19043970/cannot-initialize-cluster-please-check-your-configuration-for-mapreduce-framewo – BruceWayne

+0

Я тоже видел, что такой конфигурации у меня нет. Это новая установка. –

0

Конфигурация mapred-site.xml вы упомянули:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
    <name> mapreduce.framework.name </name> 
    <value> yarn </value> 
    </property> 
</configuration> 

Здесь вы настроили рамочное MR выполнение задания на "нить", которая означает использование MRv2. Если вы хотите запустить свою работу традиционным способом, вы можете установить фреймворк на «классический», то есть на MRv1. Вы можете проверить эту конфигурацию?

+0

НЕТ, это не работает. –

0

стирают пробелы в: <name> mapreduce.framework.name </name> <value> yarn </value>

затем повторите попытку