存档

  • hadoop笔记 (4):streaming

    hadoop 提供了 3 种方式来实现自己的功能,一种是 java 接口,另一种是 pipes,还有一种是 streaming。streaming 允许用任何语言来开发 mapper 和 reducer,它们和 hadoop 之间的交互通过标准输入/输出来进行。这种方式的好处是调试很方便。

    先来看一个使用 bash 编写的 wordcount 的例子:

    #!/bin/bash
    
    while read line; do
        arr=($line)
        let i=0
        while ! [ -z ${arr[$i]} ]; do
            echo -e "${arr[$i]}\t1"
            let i=$i+1
        done
    

    阅读全文…

    2012年9月5日 | 归档: hadoop | 标签:
  • hadoop笔记 (3):pipes例子分析 (2)

    使用 partitioner 和 combiner

    下面的程序是对 hadoop 1.0.3 自带例子(src/examples/pipes/impl/wordcount-part.cc)的一个修改版:

    #include <string>
    #include <vector>
    using namespace std;
    
    #include <hadoop/Pipes.hh>
    #include <hadoop/StringUtils.hh>
    #include <hadoop/TemplateFactory.hh>
    
    class WordCountMapper : public HadoopPipes::Mapper {
    
        public:
    
            WordCountMapper(HadoopPipes::TaskContext& context) {}
    
            void map(HadoopPipes::MapContext& context)
            {
                vector<string> words = HadoopUtils::splitString(context.getInputValue(), " 

    阅读全文…

    2012年8月25日 | 归档: hadoop | 标签:
  • hadoop笔记 (2):pipes例子分析 (1)

    Pipes 是 hadoop 提供的 c++ 接口,但是在官网上找不到 pipes 的文档,只能从例子开始一点点摸索。实验环境是 debian 6 amd64,hadoop 1.0.3。hadoop 的安装目录是 $HOME/hadoop,安装和配置过程在上一篇安装笔记中有提到。

    为了少敲些字符,给 hadoop 命令做了一个 alias:

    alias hadoop='$HOME/hadoop/bin/hadoop'
    

    单词统计程序

    下面的程序是对 hadoop 1.0.3 自带的单词统计程序(src/examples/pipes/impl/wordcount-simple.cc)的一个修改版:

    #include <string>
    #include <vector>
    using namespace std;
    
    #include <hadoop/Pipes.hh>
    #include <hadoop/StringUtils.hh>
    #include <hadoop/TemplateFactory.hh>
    
    class WordCountMapper 

    阅读全文…

    2012年8月12日 | 归档: hadoop | 标签:
  • hadoop笔记 (1):安装和配置

    记录一下 hadoop 集群的搭建过程,一共 3 台机器,操作系统都是 debian 6,hadoop 版本是1.0.4,jre 是源里的 openjdk-6。hadoop 官网的说明挺详细,就是不能快速搭建出一个能跑的环境。在网上找到一篇文章(见参考资料 [1]),虽然文章中用的是 0.20 版本,但是在 1.0.4 上也适用。

    这里使用 master,slave1 和 slave2 分别作为三台机器的主机名。为了操作方便,每台机器上都有一个用户 hadoop,密码都一样。以下的配置操作都在 master 上进行。

    hadoop 的配置(2013.03.16 更新)

    把下载到的 hadoop-1.0.4.tar.gz 解压到 hadoop 的家目录下,建立一个软链接 hadoop 指向解压得到的目录,这样以后更新只需重新建立软链接指向新版本即可。

    进入解压后的目录,根据实际情况修改 conf/hadoop-env.sh 中的 JAVA_HOME,使其指向 jdk 的安装目录:…

    阅读全文…

    2012年8月6日 | 归档: 软件使用和配置 | 标签:
文章标签 ‘hadoop’