OS X下搭建虚拟Hadoop 2.5开发环境

在此记录OS X下搭建虚拟Hadoop 2.5开发环境,这包括了:

  1. Hadoop 2.5的安装、配置
  2. 访问Hadoop文件系统和运行样例
  3. Intellij IDEA中创建Hadoop依赖的项目

注意,OS X并不被Hadoop官方支持,因此仅可作为开发环境。

0. 基本配置

  • OS X Yosemite 10.10.1
  • JDK 1.7
  • Hadoop 2.5.1 (from Homebrew)
  • Intellij IDEA 13 CE

1. 安装和配置

  1. Homebrew安装Hadoop

     brew install hadoop
    

    Homebrew包默认安装至/usr/local/Cellar/hadoop目录中, 本文中安装的版本为Hadoop 2.5.2。

    Hadoop从2.3版本开始引入Yarn核心,配置方式与此前版本不同。

  2. 进入配置文件目录

     cd /usr/local/Cellar/hadoop/2.5.2/libexec/etc/hadoop
    
  3. 修改core-site.xml

    <configuration>节点内添加以下配置。

     <property>
         <name>hadoop.tmp.dir</name>
         <value>/Users/you_username/hadoop/tmp/hadoop-${user.name}</value>
     </property>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:9000</value>
     </property>
    
    • hadoop.tmp.dir: HDFS文件系统的存放位置,需要指定一个已 存在并有读写权限的文件夹。不过路径最后 一项是Hadoop自己创建的。

    • fs.defaultFS: HDFS位置,写本机地址,9000是默认端口,可 省略。

  4. 修改hdfs-site.xml

     <property>
         <name>dfs.repliacation</name>
         <value>1</value>
     </property>
    
    • dfs.repliacation: 文件副本数量,设为集群机器数。虚拟环境 中设为1.
  5. 修改yarn-site.xml

     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
    

    抄的,我也不知道具体有什么用。

  6. 复制mapred-site.xml.template,命名mapred-site.xml

     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
    
    • mapreduce.framework.name: 设置Map-Reduce框架,此处选Yarn。

2. 运行后台服务

在运行之前,确保前面设置的Hadoop文件系统对应的目录已经准备好, 并且目录是空的。然后初始化HDFS文件系统:

hdfs namenode -format

开启后台服务:

start-dfs.sh
start-yarn.sh

关闭后台服务:

stop-yarn.sh
stop-dfs.sh

后台服务启动后,可以通过http://localhost:50070监视运行状态。 同时,在命令行中可以用jps查看Hadoop服务启动是否正确。

例如,jps命令中不存在DataNode,则可能是执行

hdfs namenode -foramt

之前没有清空设定的目录。

3. 访问HDFS

常用命令:

hadoop fs -ls [<path>]
hadoop fs -mkdir <path>
hadoop fs -mv <path>
hadoop fs -rm <path>
hadoop fs -put <local-path> <hdfs-path>
hadoop fs -get <hdfs-path> <local-path>
hadoop fs -help

简单的浏览可以直接通过浏览器:

http://localhost:50070

4. 运行测试样例

假定后台服务已启动,而且已经在Hadoop的安装目录中,可以执行PI测试:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 20 10

如果执行成功,最后会显示一个极其粗糙的PI值。

5. Intellij IDEA中配置依赖

  1. 创建普通Java项目

  2. 添加引用

    1. FileProject Structure...ModulesDependencies+Library...Java

    2. 选择/usr/local/Cellar/hadoop/2.5.2/libexec/share/hadoop 目录下除了httpfs外的全部文件夹。

    3. Name可以随便写,例如”common”,OK。

    4. +Jars or directories...

    5. 选择/usr/local/Cellar/hadoop/2.5.2/libexec/share/hadoop/common/lib

    此时Dependencies内应该总共增加了一个”common”和一个”lib”目录。

  3. 修改Project Structure中的Artifacts,增加Jar包的生成配置。

可以写代码编译打包了。

osx

Comments