Ubuntu 16.04上的Hadoop 2.8.1 - 资源管理器在NameNode上崩溃

时间:2017-10-26 18:02:25

标签: hadoop hdfs ubuntu-16.04 yarn resourcemanager

遇到以下问题: 我有一个hadoop集群(2.8.1,java 8),我的资源管理器在大约30秒-1分钟后或者当我尝试将任何文件添加到hdfs时仍然断开。

我有3个VPS(Ubuntu 16.04.2 LTS),1个用于Namenode,2个用于数据节点。这些主要是为了玩,所以只有20GB的空间(我认为应该足以看到mapreduce工作的一些微小的影响)

我的文件内容:

每个服务器上的

/ etc / hosts:

135.59.171.41 01-slave 01-slave
188.166.167.150 02-master 02-master
155.59.170.39 03-slave 03-slave

主人的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>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/store/hdfs/namenode</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>3</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/store/hdfs/datanode</value>
    </property>
</configuration>

master和slave上的core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property> 
    <name>fs.default.name</name>
   <value>hdfs://stegosaurus-server-02-master:9000</value>
</property>
</configuration>

JAVA HOME在hadoop-env所有3台服务器中)

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

.bashrc hadoop与所有3台服务器相关)

# -- HADOOP ENVIRONMENT VARIABLES START -- #
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export CLASSPATH=$CLASSPATH:/usr/local/hadoop/lib/*:.
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.egd=file:/dev/../dev/urandom"

mapred-site.xml内容(所有3台服务器)

<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
<property>
 <name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>02-master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>02-master:19888</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Djava.security.egd=file:/dev/../dev/urandom</value>
</property>
</configuration>

yarn-site.xml内容(所有3个服务器)

<?xml version="1.0"?>
<configuration>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>02-master:8025</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>02-master:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>02-master:8051</value>
</property>
</configuration>

我正在使用上面的端口51,因为我正在尝试所有不同的端口,包括标准端口。

查看端口会得到以下结果

02-master:/usr/local/hadoop/etc/hadoop$ sudo lsof -i -P -n | grep LISTEN 
sshd     1310     root    3u  IPv4  13858      0t0  TCP *:22 (LISTEN)
sshd     1310     root    4u  IPv6  13871      0t0  TCP *:22 (LISTEN)
apache2  1452     root    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
apache2  1455 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
apache2  1456 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
apache2  1457 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
apache2  1458 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
apache2  1459 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)
java     7491   hduser  210u  IPv4 170841      0t0  TCP *:50070 (LISTEN)
java     7491   hduser  226u  IPv4 171053      0t0  TCP 188.166.169.154:9000 
(LISTEN)
java     7718   hduser  220u  IPv4 171925      0t0  TCP *:50090 (LISTEN)
apache2 19108 www-data    3u  IPv4  15075      0t0  TCP *:80 (LISTEN)

主人和奴隶只在主人身上填充: 主人

02-master

从站

01-slave
03-slave

目前,所有3台服务器上的防火墙也已关闭。

我想到的是,当RM崩溃时,如果我通过纱线使用的端口从主服务器telnet主服务器将被&#34;连接拒绝&#34;

如果我尝试

yarn application -list

它将尝试连接到resourcemanager地址端口并在10次尝试中死亡。

当它加载时,我可以看到端口8088和50070上的Web应用程序但是当纱线死亡时显然8088不可用 我不知道我还能在这里添加什么。 现在这很令人困惑,因为我觉得我现在已经尝试了任何东西。 你能救我吗?

在namenode上运行jps(请注意资源管理器启动然后在尝试时死掉):

7491 NameNode
7718 SecondaryNameNode
12091 Jps

ResourceManager日志中的最后几行通常是

scheduler: class org.apache.hadoop.ipc.DefaultRpcScheduler
2017-10-25 21:01:13,025 INFO org.apache.hadoop.ipc.Server: Starting Socket 
Reader #1 for port 8033
2017-10-25 21:01:13,054 INFO 
org.apache.hadoop.yarn.factories.impl.pb.RpcServerFactoryPBImpl: Adding 
protocol 
org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocolPB to 
the server
2017-10-25 21:01:13,055 INFO org.apache.hadoop.ipc.Server: IPC Server 
Responder: starting
2017-10-25 21:01:13,055 INFO org.apache.hadoop.ipc.Server: IPC Server 
listener on 8033: starting

IP V6已关闭

请帮助.. :(

1 个答案:

答案 0 :(得分:0)

如上所述 @ tk421 - 问题是缺少RAM - 我在datanode上加倍了RAM,在NameNode上加了四倍ram,它开始工作了。

非常感谢你的帮助@ tk421,祝你有个美好的一天!