Jak*_*e Z 8 hadoop hdfs cloudera
我安装在伪分布式模式在一台机器上的Cloudera CDH4分布及测试成功,它正在正常工作(例如,可以运行MapReduce程序,蜂房服务器上插入数据等),但是,如果我机会core-site.xml
文件已经fs.default.name
设置为了加工名称而不是localhost
重新启动NameNode服务,HDFS进入安全模式.
在更改之前fs.default.name
,我运行以下命令来检查HDFS的状态:
$ hadoop dfsadmin -report
...
Configured Capacity: 18503614464 (17.23 GB)
Present Capacity: 13794557952 (12.85 GB)
DFS Remaining: 13790785536 (12.84 GB)
DFS Used: 3772416 (3.60 MB)
DFS Used%: 0.03%
Under replicated blocks: 2
Blocks with corrupt replicas: 0
Missing blocks: 0
Run Code Online (Sandbox Code Playgroud)
然后我做了修改core-site.xml
(机器名称为hadoop
):
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop:8020</value>
</property>
Run Code Online (Sandbox Code Playgroud)
我重新启动了该服务并重新报告了该报告.
$ sudo service hadoop-hdfs-namenode restart
$ hadoop dfsadmin -report
...
Safe mode is ON
Configured Capacity: 0 (0 B)
Present Capacity: 0 (0 B)
DFS Remaining: 0 (0 B)
DFS Used: 0 (0 B)
DFS Used%: NaN%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Run Code Online (Sandbox Code Playgroud)
一个有趣的说明是我仍然可以执行一些HDFS命令.例如,我可以跑
$ hadoop fs -ls /tmp
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用hadoop fs -cat
或尝试在HDFS中放置文件来读取文件,我会被告知NameNode处于安全模式.
$ hadoop fs -put somefile .
put: Cannot create file/user/hadinstall/somefile._COPYING_. Name node is in safe mode.
Run Code Online (Sandbox Code Playgroud)
我需要将fs.default.name
其设置为计算机名称的原因是因为我需要在端口8020(默认的NameNode端口)上与此计算机进行通信.如果fs.default.name
留下localhost
,则NameNode服务将不会侦听外部连接请求.
我不知道为什么会发生这种情况,并希望得到任何帮助.
该问题源于域名解析./etc/hosts
需要修改该文件以指定机器的hadoop
机器的IP地址localhost
和完全限定的域名.
192.168.0.201 hadoop.fully.qualified.domain.com localhost
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22910 次 |
最近记录: |