那些安装Hadoop遇到的坑

自从入手了Mac之后,迫不及待的部署了Hadoop伪分布模式,以为按照文档一步一步来即可,谁知过程还是遇到了好多坑。。。
1. 编译Hadoop-2.6.0源码
a. Mac默认jdk位置在 /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/,但还是要设置环境变量,或者自己下个,用系统的感觉目录组织很奇怪。 。。 http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

b. 除了安装ant ,maven ,protoc,java这些必备的之外,那些cmake,make等依赖包也不能少

c. ant需要tool.jar的位置,export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar没用   解决方法是 在java目录下to create the Home/Classes dir, then symlink ../lib/tools.jar to /Home/classes.jar

2. Hadoop启动过程
a. 默认情况下,/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。

b. jps后没有jobtracker是正常滴,hadoop2.X以后的框架没有jobtracker了,是用了yarn框架

c. jps没有datanode是由于多次format namenode节点导致  namdenode 的 namespaceID 与  datanode的namespaceID 不一致,从而导致namenode和 datanode的断连。(因为在多次format中  有 reformat namenode的提示,多次format中不用已知都选Y 去format namenode的 namespaceID ,这样很容易造成ID不一致的情况)将因format更新的 dfs.name.dir/current/VERSION中的clusterID  更新到 dfs.data.dir/current/VERSION中的clusterID中去(改的是dfs.data.dir中的ID)

d. namenode 默认在/tmp下建立临时文件,但关机后,/tmp下文档自动删除,再次启动Master造成文件不匹配,所以namenode启动失败。在core-site.xml中指定临时文件位置,然后重新格式化,终极解决!
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/grid/hadoop1.7.0_17/hadoop_${user.name}</value>
<property>
value中的路径只要不是/tmp 就行。

BTW,每天用MacJournal记录学习和生活的点点滴滴,还是蛮爽的。。。

猜你喜欢

转载自1316478764.iteye.com/blog/2199320