我在 Ubuntu 16.04lts 上安装了 Hadoop 3.2.1,我的集群有 18 个数据节点和 1 个主节点。 运行后:
$ start-dfs.sh
$ start-yarn.sh
$ jps
在 master 上,我得到以下信息:
ResourceManager
NameNode
SecondaryNameNodecode
jps
在数据节点上:
DataNode
jps
所有节点似乎都处于活动状态: NameNode Overview Web Page
但是当我到达集群概览时,我的数据节点似乎都没有处于活动状态: Cluster Overview
我的配置文件:
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-3.2.1/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-master:9000</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-3.2.1/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-3.2.1/data/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
namenode 和 datanode 目录存在于每台主机(主节点和数据节点)上
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-master</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>2048</value>
</property>
</configuration>
我还为 JAVA_HOME 路径配置了 hadoop-env.sh,所有其他变量都在 .bashrc 文件中(也在每个主机中)。
我修改了 /etc/hosts 文件以包含所有主机及其 IP 和主机名,最后我还修改了 worker 文件以包含数据节点的所有 IP。
我第一次格式化 NameNode 时,hdfs-site.xml 的目录是错误的(我有两次 datanode 目录),所以 hdfs 在 /tmp/hdfs/ 下创建了自己的目录(如果我没记错的话) .但是我通过使用正确的目录再次格式化 NameNode 解决了这个问题。