hadoop2.2 编译安装(64位)

       最近要干正事了,周一要讲论文了。论文有关MapReduce。像我实践派必须要实验一下才能信服。 所以我就安装了hadoop,期间经历比较曲折。。为了稳定,我选择了hadoop 2.2。坑爹的是这个一上来就有个错,下面细说。

  1. 编译选择:

          如果你的机器是32位的,可以不折腾。直接安装编译好的。选个mirror,下载个那个大的就是编译好的。如果64位也直接安装编译好的的话,运行时会报如下Warning:

            这个是因为libhadoop.so.1.0.0是32位的,可以 cd hadoop/lib/native/ ,再 file * ,应该会看到32位。参考文档,只能重新编译。我就整个重新编译了。以下为编译步骤,也可以参考这位大哥的,或者直接看解压后中的BUILDING.txt。

  2. 安装依赖:

    • protobuf : arch可以直接安装protobuf,
    • findbugs: findbugs网上下载,解压后在shell输入: export FINDBUGS_HOME=/path to your extract directory 。不安装的话会有这个错误:
    • 其他依赖,看文档BUILDING.txt。
  3. 修改错误:

    • 参考HADOOP-10110或者这位大哥的。手动将hadoop-common-project/hadoop-auth/pom.xml相应地方改掉,否则会报这个类似错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
    • 还有一个我遇到的问题,就是maven版本,要改成3.3。不是hadoop问题。见这个博客和这个issue。修改hadoop/pom.xml两处maven版本的地方,3.0->3.3。报错:[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]      [ERROR] [ERROR] —————————————————–:    org.sonatype.aether.graph.DependencyFilter
  4. 编译命令

    • 以上处理完成后,编译就简单了,只要输入以下命令。就可以在 hadoop-dist/target/ 找到你要的东西。
  5. 基本配置

           我使用单点的hadoop,好像现在没psudo模式了。参考这位大哥这位大哥。我把hadoop安装在/opt/hadoop.要注意自己的路径。

    • 添加用户和组
    •  复制安装包
    • 修改配置文件

    • 建yarn节点目录和format node。
    • 写个启动脚本和关闭脚本,或者使用start-all.sh,stop-all.sh, 更好的是start-dfs.sh,start-yarn.sh。还要修改hadoop/etc/hadoop/hadoop-env.sh中的JAVA_HOME。
  6. 测试例子

  • 运行启动脚步,看看http://localhost:19888/,http://localhost:50070/,http://localhost:8088/,看看是否正常。
  • 测试wordcount。 随便搞几个文件,比如start_hadoop.sh,stop_hadoop.sh

mapreducewordcount

       今天大概就这么点,累死我了。这结果还可以在web界面查看,自己摸索。上面的路径我没有特别说明,希望能看得懂。我还遇到个问题是hosts文件要规范,127.0.0.1 localhost 一定要在最前面。。

 链接:

1. hadoop tutorial