蓝天,小湖,湖水中一方小筑

Hadoop Study Log 1: Env Setup

最近想折腾数据,于是决定从基础的Hadoop开始。

Update

  • 2016.01.22: 按照Hadoop官方wiki配置的环境在尝试运行程序时会报连不上Node的错误,不知道是哪里的问题。后来在DigitalOcean的文档中发现了需要改Namenode和Datanode的配置才可以。已经将文中的链接和所需修改的文件列表更新。

基本概念

这里只是一些我之前可能弄混淆的概念,其它的一些东西可能需要去hadoop官网看了。

  • Hadoop是一个编程框架或者叫库,主要用于下面类型程序的编写
    • 大规模数据集
    • 分布式
    • 简单任务模型
  • Hadoop的核心项目包含下面几个
    • Common: 一些通用组件,工具类
    • HDFS:分布式文件系统
    • YARN:任务调度及资源管理
    • MapReduce:并行编程模型
  • 还有一些衍生项目,具体参见网页

环境配置

鉴于之前在osx上装东西碰上过坑,所以选择了virtualbox+ubuntu的方案。系统的版本是Ubuntu 15.05,Hadoop选择的是2.6.3(截止写文章的时候它的Release Date最新)。具体步骤如下:

  1. 下载及安装

    # Download package from Hadoop site
    $ wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.3/hadoop-2.6.3.tar.gz
    
    # Decompress it
    $ tar zxvf hadoop-2.6.3.tar.gz
    
    # Move the package files to system directory, and change owner
    $ sudo mv hadoop-2.6.3 /opt/hadoop
    $ sudo chown -R vagrant:vagrant /opt/hadoop
    
  2. 配置服务(Single Node)

    # Export JAVA_HOME env variable
    $ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    

    并根据此页面中的内容,修改相应文件并配置SSH服务。

    • etc/hadoop/core-site.xml

      Hadoop启动时的设置,上面那个页面中给出的是 fs.default.name ,不过在新的配置中,这个字段应该变成 fs.defaultFS

    • etc/hadoop/yarn-site.xml

      一些MapReduce的设置选项。

    • etc/hadoop/mapred-site.xml

      配置使用Yarn作为ResManager

    • etc/hadoop/hdfs-site.xml

      配置Namenode和Datanode的路径信息

  3. 格式化namenode

    $ bin/hdfs namenode -format
    
  4. 设置etc/hadoop/hadoop-env.sh中的JAVA_HOME变量

  5. 开启dfs服务

    $ sbin/start-dfs.sh
    

至此,一个运行在单节点环境的Hadoop环境就ok了。