hadoop - Hadoop 2.9 多节点
问题描述
我有 3 台服务器 Centos 7(防火墙和 selinux 禁用)chadoop1(主)、chadoop2(从)和 chadoop3(从)
当我启动服务时,节点没有启动,我在 jps 上看到,不显示 DataNode 和 NodeManager。
所有配置在节点上都是 rsync(从属除外)
我尝试重新格式化,显示OK,但同样的问题。
我的目录是:/opt/hadoop
配置:
hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/dfs/name/data</value>
<final>true</final>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
核心站点.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020/</value>
<description>NameNode URI</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>Buffer size</description>
</property>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>MapReduce framework name</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
<description>Default port is 10020.</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
<description>Default port is 19888.</description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/tmp</value>
<description>Directory where history files are written by MapReduce jobs.</description>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/mr-history/done</value>
<description>Directory where history files are managed by the MR JobHistory Server.</description>
</property>
纱线站点.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>MapReduce framework name</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
<description>Default port is 10020.</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
<description>Default port is 19888.</description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/tmp</value>
<description>Directory where history files are written by MapReduce jobs.</description>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/mr-history/done</value>
<description>Directory where history files are managed by the MR JobHistory Server.</description>
</property>
从属(仅在主控上,从属有本地主机)
chadoop3
chadoop4
启动服务
[hadoop@chadoop1 hadoop]$ start-dfs.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /opt/hadoop/logs/hadoop-hadoop-
namenode-chadoop1.out
chadoop4: starting datanode, logging to /opt/hadoop/logs/hadoop-hadoop-
datanode-chadoop4.out
chadoop3: starting datanode, logging to /opt/hadoop/logs/hadoop-hadoop-
datanode-chadoop3.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/logs/hadoop-
hadoop-secondarynamenode-chadoop1.out
[hadoop@chadoop1 hadoop]$ jps
5603 Jps
5492 SecondaryNameNode
5291 NameNode
[hadoop@chadoop1 hadoop]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/logs/yarn-hadoop-
resourcemanager-chadoop1.out
chadoop3: starting nodemanager, logging to /opt/hadoop/logs/yarn-hadoop-
nodemanager-chadoop3.out
chadoop4: starting nodemanager, logging to /opt/hadoop/logs/yarn-hadoop-
nodemanager-chadoop4.out
[hadoop@chadoop1 hadoop]$ jps
5492 SecondaryNameNode
5658 ResourceManager
5914 Jps
5291 NameNode
解决方案
所有配置在节点上都是 rsync(从属除外)
所有配置必须在所有节点上。
localhost
话虽如此,数据节点需要知道 NameNode 在网络上的哪个位置存在,因此如果服务器实际上应该是从站,则该进程无法启动。因此,您必须输入实际的主机名。
YARN 服务也是如此。
我在 jps 上看到,不显示 DataNode 和 NodeManager。
从显示的输出中,您似乎只在主机上启动了服务,而不是存在这些服务的两个从机。
启动脚本只控制一台机器,不控制集群,并且jps
只会显示本地机器的Java进程
顺便说一句,Apache Ambari 使安装和管理 Hadoop 集群变得更加容易。
推荐阅读
- azure - 我们可以在没有任何备份的情况下进行 Azure 站点恢复吗?
- go - net/http 导入第一个路径元素中缺少的点
- python - 试图从文本文件中获取数据以插入数据库
- c# - 为什么托管在 Azure 中的 ASP NET Web 服务不执行任何操作?
- python - 使用 python 3.8 windows 10 安装 dlib 错误
- reactjs - 当我在父组件中通过 useState 设置状态时,我传递给的孩子中的道具是未定义的
- facebook - 是否有任何 API 或抓取方法来获取 Facebook 用户的电话号码?
- java - Spring boot Applicaation 无法在 PUT API 调用中映射 List 对象
- python - 使用win32api python捕获屏幕截图返回黑色图像
- c# - 考虑到单元测试的数据库层设计