由于看视频总是断断续续,经常遇到各种报错,现将遇到的问题进行总结。
hadoop学习中遇到的问题:hadoop拒绝连接
hadoop安装好之后,在本地浏览器输入地址http://192.168.222.102:9870,提示拒绝连接。在网上找了很多相关资料,有很多原因导致,一个是防火墙没关闭,一个是namenode没有启动起来,等等...
那么,我是写了这样一段代码:
java
package com.atguigu.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class HDFSClient {
@Test
public void testMkdirs() throws IOException, InterruptedException, URISyntaxException {
// 1 获取文件系统
Configuration configuration = new Configuration();
// 配置在集群上运行
// configuration.set("fs.defaultFS", "hdfs://hadoop102:9820");
// FileSystem fs = FileSystem.get(configuration);
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "atguigu");
// 2 创建目录
fs.mkdirs(new Path("/1108/daxian/banzhang"));
// 3 关闭资源
fs.close();
}
}
报了如下错误:
bash
Call From LENOVO/192.168.222.1 to hadoop102:8020 failed on connection exception:
也就是连接没有成功,那么在平时学习时经常会开机关机而忘记启动集群,会产生这样的错误。如果之后遇到拒绝连接这样的问题,尝试看看这篇博客。
如何启动集群,到安装hadoop目录下的sbin里面执行start-dfs.sh文件。
bash[atguigu@hadoop102 sbin]$ start-dfs.sh Starting namenodes on [hadoop102] Starting datanodes Starting secondary namenodes [hadoop104] [atguigu@hadoop102 sbin]$ jps 5334 Jps 4925 NameNode 5055 DataNode
hadoop学习中遇到的问题:进入安全模式
bash
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /1108/daxian/banzhang. Name node is in safe mode.
解决方法:
直接执行:hdfs dfsadmin -safemode leave
bash
[atguigu@hadoop102 sbin]$ hdfs dfsadmin -safemode leave
Safe mode is OFF
最终,程序运行成功。