10. 安装过程中遇到的问题
1) Ssh不能建立互信
建用户时不指定分组,Ssh不能建立互信,如下的步骤
[root@gc ~]#useradd grid
[root@gc ~]#passwd grid
解决:
创建新的用户组,创建用户时并指定此用户组。
[root@gc ~]#groupadd Hadoop
[root@gc ~]#useradd -g hadoop grid
[root@gc ~]# id grid
uid=501(grid) gid=54326(hadoop) groups=54326(hadoop)
[root@gc ~]# passwd grid
2) 启动hadoop后,slave节点没有datanode进程
现象:
在master节点启动hadoop后,master节点进程正常,但slave节点没有datanode进程。
--Master节点正常
[grid@gc bin]$ /usr/java/jdk1.6.0_18/bin/jps
29843 Jps
29703 JobTracker
29634 SecondaryNameNode
29485 NameNode
--此时再在两slave节点查看进程,发现还是没有datanode进程
[grid@rac1 bin]$ /usr/java/jdk1.6.0_18/bin/jps
5528 Jps
3213 TaskTracker
[grid@rac2 bin]$ /usr/java/jdk1.6.0_18/bin/jps
30518 TaskTracker
30623 Jps
原因:
--回头查看在master节点启动hadoop时的输出日志,在slave节点找到启动datanode进程的日志
[grid@rac2 logs]$ pwd
/home/grid/hadoop-0.20.2/logs
[grid@rac1 logs]$ more hadoop-grid-datanode-rac1.localdomain.log
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG: host = rac1.localdomain/192.168.2.101
STARTUP_MSG: args = []
STARTUP_MSG: version = 0.20.2
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
2012-11-18 07:43:33,513WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: can not create directory: /usr/hadoop-0.20.2/data
2012-11-18 07:43:33,513 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.
2012-11-18 07:43:33,571 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at rac1.localdomain/192.168.2.101
************************************************************/
--发现是hdfs-site.xml配置文件的目录data目录没有创建
解决:
在各节点创建hdfs的data目录,并修改hdfs-site.xml配置文件参数
[grid@gc ~]# mkdir -p /home/grid/hadoop-0.20.2/data
[grid@gc conf]#vi hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/grid/hadoop-0.20.2/data</value>--注意此目录必需已经创建并能读写
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
--重新启动hadoop,slave进程正常
[grid@gc bin]$ ./stop-all.sh
[grid@gc bin]$ ./start-all.sh