linux系统安装hadoop-1.2.1遇到的问题【linux本机上的主机名和域名问题、不可以使用默认的localhost;完全没有启动】



参考博客:

【问题一:主机名和域名配置文件问题及hadoop的配置文件etc/hadoop/core-site.xml导致hadoop彻底不能启动】

博客:hadoop1.2.1伪分布模式配置
http://www.cnblogs.com/yjmyzz/p/3380627.html
博客:在对HDFS格式化,执行hadoop namenode -format命令时出现未知的主机名的问题
http://lxy2330.iteye.com/blog/1112806


【问题二:datanode问题】:

博客:Hadoop 启动节点Datanode失败解决:
http://www.linuxidc.com/Linux/2014-11/108822.htm

博客:关于namenode namespaceID与datanode namespaceID 不一致导致datanode无法启动的问题:

http://f.dataguru.cn/thread-24378-1-1.html

=========================================================================================================

主机名问题:hostname;】

修改主机名位置:【共三个地方】
1、/etc/sysconfig/network中修改hostname;
2、/etc/hosts
3、还有Windows中的hosts文件:添加“ip    域名”,用于外面访问!

原理:
我们通过执行hostname命令可以看到:
[shirdrn@localhost bin]# hostname
localhost.localdomain

也就是说,Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost.localdomain,然后在/etc/hosts文件中进行映射

的时候,没有找到,看下我的/etc/hosts内容:

[root@localhost bin]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost       localhost
192.168.1.103           localhost       localhost

也就说,通过localhost.localdomain根本无法映射到一个IP地址,所以报错了。

此时,我们查看一下/etc/sysconfig/network文件:

NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomain

可见,执行hostname获取到这里配置的HOSTNAME的值。

解决办法:

修改/etc/sysconfig/network中HOSTNAME的值为localhost,或者自己指定的主机名,保证localhost在/etc/hosts文件中映射为正确的IP地

址,然后重新启动网络服务:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【hadoop安装目录下的/conf/core-site.xml文件的配置问题:】
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop:9000</value>
     </property>
</configuration>

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【datanode没有启动问题:】
导致原因:namenode和datanode的namespaceID不一致
解决办法【手动修改之后无效,一气之下,把name和data目录都删除,重新格式化namenode】:
1、直接删除name文件夹和data文件夹,重新格式化namenode

     ./bin/hadoop namenode -format

2、./bin/hadoop-daemon.sh start datanode
3、jps查看对应节点的进程是否启动


你可能感兴趣的:(linux系统安装hadoop-1.2.1遇到的问题【linux本机上的主机名和域名问题、不可以使用默认的localhost;完全没有启动】)