虚拟机:Ubuntu18.04
hadoop:hadoop3.1.3
jdk:openjdk8
在虚拟机浏览器输入localhost:9000报错如图:
具体:It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.
一开始我的hadoop两个配置文件重要代码修改如下:
修改core-site.xml文件为:
nano core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改hdfs-site.xml文件为:
nano hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>localhost:50070</value>
</property>
</configuration>
提供错误提示的信息,报错提示表明我正在尝试通过HTTP请求访问Hadoop IPC端口,而不是正确的端口用于访问该守护进程的Web接口。这通常意味着我正在尝试通过浏览器直接访问Hadoop NameNode的IPC端口,而不是正确的Web界面端口。
要解决这个问题,我应该通过浏览器访问正确的Web界面端口,而不是IPC端口。在我的配置中,指定的NameNode Web界面端口是localhost:50070,因此要尝试在浏览器中输入以下地址来访问NameNode的Web界面:(其实我没有立刻改,而是检查防火墙去了,然后先出现了新的错误)
http://localhost:50070
记住要确保Hadoop NameNode正在运行,并且没有被防火墙阻止访问该端口。如果防火墙开启了,就需要确保允许流量通过50070端口。可以使用以下命令检查防火墙设置:
sudo ufw status
如果防火墙处于活动状态并且未允许50070端口的访问,就可以使用以下命令允许流量通过该端口:
sudo ufw allow 50070
这时出现了新的报错:
报错信息:
连接失败
Firefox 无法建立到localhost:9000服务器的连接。
·此站点暂时无法使用或者太过忙碌。请过几分钟后再试。
·如果您无法加载任何网页,请检查您计算机的网络连接状态。
·如果您的计算机或网络受到防火墙或者代理服务器的保护,请确认Firefox已被授权访问网络。
(其实这里我还没有改成 http://localhost:50070)
根据提供的信息,你、我正在尝试通过浏览器访问Hadoop的NameNode界面,但遇到了连接失败的问题。下面是一些可能的解决步骤:(我是解决了,因为我是误关了终端,导致NameNode没有在运行)
1.检查Hadoop服务是否正在运行:在Ubuntu终端中输入以下命令检查Hadoop NameNode是否在运行:
jps
确保NameNode进程(NameNode)正在运行。如果没有运行,你可以使用以下命令启动Hadoop服务:
./sbin/start-all.sh
2.检查网络连接:确保你的虚拟机可以访问主机的网络以及Internet连接。你可以在终端中尝运行ping localhost来测试本地主机的连通性。
3.检查端口号:确保Hadoop配置文件中所设置的端口号与浏览器中输入的端口号一致。根据我的配置,Hadoop的fs.defaultFS
属性设置为hdfs://localhost:9000
,因此我应该尝试在浏览器中输入以下地址来访问NameNode的Web界面:
http://localhost:50070
4.检查防火墙设置:确保已经执行了sudo ufw allow 50070
命令,允许50070端口的访问。确保防火墙没有其他规则阻止端口的访问。
5.检查Hadoop日志:如果以上步骤都没有解决问题,可以查看Hadoop日志文件,以了解更多详细的错误信息。Hadoop的日志文件通常位于/usr/local/hadoop/logs/
目录下。可以使用以下命令查看最新的日志内容:
tail -f /usr/local/hadoop/logs/hadoop-<username>-namenode-<hostname>.log
其中,<username>
是用户名,<hostname>
是主机名。(其实我没用这个方法,我用下面的方法查看的)
查看Hadoop日志文件:
1.登录到Ubuntu18.04系统
2.在终端中,使用ssh命令连接到运行Hadoop的主节点。(这里其实我也没弄,因为我直接弄好了ssh免密登录)示例命令如下:
ssh <username>@<hadoop_master_node_ip>
3.输入用户名和密码以进行身份验证
4.进入到Hadoop安装目录。默认情况下,Hadoop安装在/usr/local/hadoop目录下,示例命令如下:
cd /usr/local/hadoop
5.使用以下命令查看Hadoop日志文件
bin/hadoop logs -loglevel <log_level>
其中,<log_level>是日志级别,可以是DEBUG、INFO、WARN、ERROR等。例如,要查看所有WARN级别及以上的日志,可使用以下命令:
bin/hadoop logs -loglevel WARN
问题都解决之后部分截图如下: