Ubuntu 16.04 上的 Hadoop 2.8.1 - 资源管理器在 NameNode 上崩溃
Hadoop 2.8.1 on Ubuntu 16.04 - Resource Manager crashes on NameNode
遇到以下问题:
我有一个 hadoop 集群(2.8.1,java 8),我的资源管理器在大约 30 秒到 1 分钟后或当我尝试将任何文件添加到 hdfs 时不断中断。
我有 3 个 VPS (Ubuntu 16.04.2 LTS),1 个用于名称节点,2 个用于数据节点。这些主要是用来玩的,所以只有 20gb 的 space(我相信这应该足以看到 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>
核心-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 在所有 3 个服务器的 hadoop-env 中)
# 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)
masters和slaves只在master上填充:
硕士
02-master
奴隶
01-slave
03-slave
目前所有 3 台服务器上的防火墙也已关闭。
我发现当 RM 崩溃时,如果我通过 yarn 使用的端口从 master telnet master 它将 "connection refused"
如果我尝试
yarn application -list
它将尝试连接到资源管理器地址端口并在 10 次尝试后死亡。
加载时,我可以在端口 8088 和 50070 上看到网络应用程序,但是当 yarn 死机时,显然 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 已关闭
请帮忙.. :(
如
所述
@tk421 - 问题是缺少 RAM - 我在数据节点上将 RAM 增加了一倍,在 NameNode 上将 ram 增加了四倍,它开始工作了。
非常感谢@tk421 的帮助,祝你今天愉快!
遇到以下问题: 我有一个 hadoop 集群(2.8.1,java 8),我的资源管理器在大约 30 秒到 1 分钟后或当我尝试将任何文件添加到 hdfs 时不断中断。
我有 3 个 VPS (Ubuntu 16.04.2 LTS),1 个用于名称节点,2 个用于数据节点。这些主要是用来玩的,所以只有 20gb 的 space(我相信这应该足以看到 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>
核心-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 在所有 3 个服务器的 hadoop-env 中)
# 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)
masters和slaves只在master上填充: 硕士
02-master
奴隶
01-slave
03-slave
目前所有 3 台服务器上的防火墙也已关闭。
我发现当 RM 崩溃时,如果我通过 yarn 使用的端口从 master telnet master 它将 "connection refused"
如果我尝试
yarn application -list
它将尝试连接到资源管理器地址端口并在 10 次尝试后死亡。
加载时,我可以在端口 8088 和 50070 上看到网络应用程序,但是当 yarn 死机时,显然 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 已关闭
请帮忙.. :(
如
所述
@tk421 - 问题是缺少 RAM - 我在数据节点上将 RAM 增加了一倍,在 NameNode 上将 ram 增加了四倍,它开始工作了。
非常感谢@tk421 的帮助,祝你今天愉快!