准备查看haddop上的文件,输入:
hadoop fs -ls /
出现了:
ls: Call From yx/127.0.1.1 to 0.0.0.0:9000 failed on connection exception:
: 拒绝连接;
For more details see: /hadoop/ConnectionRefused
显示9000端口拒绝访问
从配置文件可以知道,hadoop访问本机需要通过9000端口,但是现在9000端口拒绝访问
输入:
telnet localhost 9000
显示:
Trying 127.0.0.1…
telnet: Unable to connect to remote host: Connection refused
输入
nmap -p 9000 localhost
显示:
Starting Nmap 7.80 ( ) at 2020-04-25 14:57 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000051s latency).
PORT STATE SERVICE
9000/tcp closed cslistener
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
使用命令:
lsof -i :9000
查看哪个应用正在使用端口。 如果结果为空( 返回值 1 ),则不打开它。
上面这些只是查看状态,并不会改变什么。
因为hadoop连接本机的端口在中
打开$HADOOP_HOME/etc/hadoop/
<configuration>
<property>
<name></name>
<value>/data/tmp/hadoop/tmp</value>
</property>
<property>
<name></name>
<value>hdfs://0.0.0.0:9000</value>
</property>
</configuration>
发现是我没有配置端口号,修改为:
hdfs://localhost:9000
发现还是不行。
试了很多种方法,最后发现网上用的最多的方法是,用了这种方法,果然可以了:
cd $HADOOP_HOME/bin
hdfs namenode -format
可是我运行之后还是不行,尝试了很多遍,都是一样的结果,后来把格式化namenode的结果复制到百度翻译,发现有一个错误:
WARN : Path /data/tmp/hadoop/hdfs/name should be specified as a URI in configuration files. Please update hdfs configuration.
这是由于路径不规范导致的,描述该路径的文件在:
$HADOOP_HOMW/etc/hadoop/
将文件中的:
<property>
<name></name>
<value>/data/tmp/hadoop/hdfs/data</value>
</property>
修改为:
<property>
<name></name>
<value>file:///data/tmp/hadoop/hdfs/data</value>
</property>
该警告消失。
但是这样并没有起到决定性的作用,我的原因是由于开启了安全模式,关闭安全模式即可
cd $HADOOP_HOME/bin
hadoop dfsadmin -safemode leave
用户可通过
hadoop dfsadmin -safemode value
操作安全模式
value取值:
enter 进入安全模式
leave 强制离开安全模式
get 返回安全模式状态
wait 等待一直到安全模式结束
现在:
root@yx:/apps/hadoop/bin# hadoop fs -ls /
20/04/25 19:24:24 WARN : Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
drwxr-xr-x - root supergroup 0 2020-04-25 17:13 /test