参考文档: hadoop 官方文档:
http://hadoop.apache.org/docs/r1.1.2/single_node_setup.html
搭建步骤:
1.准备环境
JDK:jdk1.6.0_31
hadoop: hadoop-1.0.4
本地要支持:支持 ssh 和 sshserver 服务
hadoop 集群 服务 的start 和stop 集群是通过,ssh 连接到目标服务器 做操作的所以这里需要 支持ssh服务
由于 ssh 服务之间需要输入用户名和密码 , 所以要支持
2. 解压 hadoop-1.0.4 到 本地 目录 :
/root/workspace/hadoop/hadoop-1.0.4
3.配置环境变量:
export HADOOP_HOME=/root/workspace/hadoop/hadoop-1.0.4
export PATH=$HADOOP_HOME/bin:$PATH
/tmp/hadoop-hadoop/dfs/name/image does not exist.
hadoop 启动的时候,先确认使用的hadoop是是否是自己的hadoop 使用 which hadoop 确认
修改 core-site.xml 的中出事话文件 的 hadoop.tmp.dir 默认会放在 tmp 下 ,每次启动这个目录有可能会被清空 所有修改
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp/hadoop-${user.name}</value>
</property>
1.初始化 hadoop namenode -format
2. 查看 启动是否成功 ,jps 查看进程
分别会看到 :
11320 NameNode
12273 TaskTracker
11898 SecondaryNameNode
11993 JobTracker
这里没有 dataNode 启动失败
3. dataNode 启动失败解决:
查看 datacell 启动日志 看到:
2013-06-03 11:24:36,737 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /home/hadoop/tmp/hadoop-hadoop/dfs/data, expected: rwxr-xr-x, while actual: rwxrwxrwx
2013-06-03 11:24:36,737 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.
原来 hdfs 需要 的是 755 的权限 ,手工修改 为 755 chmod -R 755 /home/hadoop/tmp/hadoop-hadoop/dfs/data
再启动 出现:
2013-06-03 13:18:24,976 INFO org.apache.hadoop.http.HttpServer: Port returned by webServer.getConnectors()[0].getLocalPort() before open() is -1. Opening the listener on 50075
2013-06-03 13:18:24,976 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Waiting for threadgroup to exit, active threads is 0
2013-06-03 13:18:25,078 INFO org.apache.hadoop.hdfs.server.datanode.FSDatasetAsyncDiskService: Shutting down all async disk service threads...
2013-06-03 13:18:25,078 INFO org.apache.hadoop.hdfs.server.datanode.FSDatasetAsyncDiskService: All async disk service threads have been shut down.
2013-06-03 13:18:25,087 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.BindException: Address already in use
查看 50070 和 50075 端口都没有被占用,可能是 上次启动有缓存吧, 我就重新 启动了一次
stop-all.sh
start-all.sh
看到如下 所有的进程都在了 ,启动成功;
17616 SecondaryNameNode
17306 DataNode
17033 NameNode
18119 Jps
17722 JobTracker
18000 TaskTracker
运行hadoop 例子 ,验证 hadoop成功运行 参考 :
http://younglibin.iteye.com/blog/1881519
查看 hadoop 的文件系统: http://localhost:50070/dfshealth.jsp
查看hadoop 运行的jobtrack: http://localhost:50030/jobtracker.jsp