6

我目前正在学习 hadoop,我正在尝试设置http://hadoop.apache.org/common/docs/current/single_node_setup.html中定义的单节点测试

我已经配置了 ssh(我可以不用密码登录)。

我的服务器在我们的 Intranet 上,位于代理后面。

当我试图跑步时

bin/hadoop 名称节点格式

我得到以下 java.net.UnknownHostException 异常:

$ bin/hadoop namenode -format
11/06/10 15:36:47 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = java.net.UnknownHostException: srv-clc-04.univ-nantes.prive3: srv-clc-04.univ-nantes.prive3
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.203.0
STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by 'oom' on Wed May  4 07:57:50 PDT 2011
************************************************************/
Re-format filesystem in /home/lindenb/tmp/HADOOP/dfs/name ? (Y or N) Y
11/06/10 15:36:50 INFO util.GSet: VM type       = 64-bit
11/06/10 15:36:50 INFO util.GSet: 2% max memory = 19.1675 MB
11/06/10 15:36:50 INFO util.GSet: capacity      = 2^21 = 2097152 entries
11/06/10 15:36:50 INFO util.GSet: recommended=2097152, actual=2097152
11/06/10 15:36:50 INFO namenode.FSNamesystem: fsOwner=lindenb
11/06/10 15:36:50 INFO namenode.FSNamesystem: supergroup=supergroup
11/06/10 15:36:50 INFO namenode.FSNamesystem: isPermissionEnabled=true
11/06/10 15:36:50 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
11/06/10 15:36:50 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
11/06/10 15:36:50 INFO namenode.NameNode: Caching file names occuring more than 10 times 
11/06/10 15:36:50 INFO common.Storage: Image file of size 113 saved in 0 seconds.
11/06/10 15:36:50 INFO common.Storage: Storage directory /home/lindenb/tmp/HADOOP/dfs/name has been successfully formatted.
11/06/10 15:36:50 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: srv-clc-04.univ-nantes.prive3: srv-clc-04.univ-nantes.prive3
************************************************************/

之后就启动了hadoop

./bin/start-all.sh

但是当我尝试复制本地文件时出现了另一个新异常:

 bin/hadoop fs  -copyFromLocal ~/file.txt  file.txt

DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/lindenb/file.txt could only be replicated to 0 nodes, instead of 1
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1417)

请问我该如何解决这个问题?

谢谢

4

4 回答 4

5

当 hadoop 尝试将 DNS 名称 (srv-clc-04.univ-nantes.prive3) 解析为 IP 地址时,会引发UnknownHostException 。这失败了。

在配置文件中查找域名并将其替换为“localhost”。(或更新 DNS 将名称解析为 ip 地址)

于 2011-06-10T18:50:26.917 回答
4

首先获取计算机的主机名。可以通过运行$hostname命令获取。然后添加127.0.0.1 localhost hostname/etc/hosts文件中。那应该可以解决问题。

于 2014-09-11T11:26:32.430 回答
0

您创建的 tmp 目录应该有所有权问题。这就是为什么 hadoop 无法写入 tmp 目录来修复它运行以下命令

sudo chown hduser:hadoop /app/<your hadoop tmp dir>
于 2013-04-09T03:00:50.100 回答
0

附加以下/etc/hosts内容可能会有所帮助:

127.0.0.1   localhost   yourhostname
于 2013-07-16T04:42:11.837 回答