准备查看haddop上的文件,输入:

hadoop fs -ls /

出现了:

ls: Call From yx/127.0.1.1 to 0.0.0.0:9000 failed on connection exception: 
java.net.ConnectException: 拒绝连接; 
For more details see:  http://wiki.apache.org/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 ( https://nmap.org ) 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连接本机的端口在core-site.xml中
打开$HADOOP_HOME/etc/hadoop/core-site.xml

<configuration>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/data/tmp/hadoop/tmp</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://0.0.0.0:9000</value>
</property>
</configuration>

发现是我没有配置端口号,修改为:
hdfs://localhost:9000
发现还是不行。
试了很多种方法,最后发现网上用的最多的方法是,用了这种方法,果然可以了:

cd $HADOOP_HOME/bin
hdfs namenode -format

可是我运行之后还是不行,尝试了很多遍,都是一样的结果,后来把格式化namenode的结果复制到百度翻译,发现有一个错误:
WARN common.Util: Path /data/tmp/hadoop/hdfs/name should be specified as a URI in configuration files. Please update hdfs configuration.

这是由于路径不规范导致的,描述该路径的文件在:

$HADOOP_HOMW/etc/hadoop/hdfs-site.xml

将文件中的:

 <property>  
     <name>dfs.datanode.data.dir</name>  
     <value>/data/tmp/hadoop/hdfs/data</value>  
 </property>

修改为:

  <property>  
     <name>dfs.datanode.data.dir</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 util.NativeCodeLoader: 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
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐