那些安装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的位置,exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar没用解决方法是在java目录下tocreatetheHome/Classesdir,thensymlink../lib/tools.jarto/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是由于多次formatnamenode节点导致namdenode的namespaceID与datanode的namespaceID不一致,从而导致namenode和datanode的断连。(因为在多次format中有reformatnamenode的提示,多次format中不用已知都选Y去formatnamenode的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记录学习和生活的点点滴滴,还是蛮爽的。。。