pig-配置(hadoop)-wordCount

1. 下载pig
     http://www.apache.org/dyn/closer.cgi/pig
    比如下载 pig-0.10.0.tar.gz
2. 安装pig
    tar zxvf pig-0.10.0.tar.gz
    
    将pig/bin目录加入path路径
    vi ~/.bash_profile
    #add pig/bin to path
    export PATH=$PATH:path_to_pig_bin
    . .bash_profile
    
3. 配置pig
    在$PIG_HOME/conf/pig.properties下添加 hdfs和mapreduce的端口
    
    -------------
    fs.default.name=hdfs://hadoop.master:9000
    mapred.job.tracker=hadoop.master:9001
    -------------
    fs.default.name 和 mapred.job.tracker可以在hadoop机群中namenode节点上的 ${HADOOP_HOME}/conf下的core-site.xml和 mapred-site.xml中找到
    
4. 运行pig
    a). 本地运行 pig -x local, 该方式下使用本地文件,便于测试
    b). 使用hadoop, pig 或者 pig -x mapreduce
        该方式下使用hdfs中的文件

5. 测试实验-wordCount
    a). 编写pig运行脚本-wordCount.pig
        -- load file '/hadoop/pig/data/Les_Miserables.txt' to novel, PigStorage='\n', make sure read all contents in a line.
        -- 此处PigStorage应当设置为'\n',这样可以保证解析完整的一行数据
        -- 很多网上的例子没有设置,是错误的!
        -- 默认情况下,PigStorage为 tab, 此时如果一行中包含tab, 将导致tab后面的数据不能参与计数.
        novel = load 'novel.txt' using PigStorage('\n') as (line:chararray);

        -- split line into words by token tab or space or comma or dot
        -- 单词分隔符设置为 tab 空格 逗号 点号
        words = foreach novel generate flatten(TOKENIZE(line,'\t ,.')) as word;

        -- group words by word
        grp = group words by word;
        result = foreach grp generate group,COUNT(words) as count;

        -- store result to 'wordCount.result/'
        store result into '/hadoop/wordCount.result';


    b). 将数据文件放入hdfs中
        数据文件可以自己编写,也可以使用英文小说,比如 Les_Miserables.txt
        hadoop fs -copyFromLocal ./Les_Miserables.txt /hadoop/pig/data/
    c). 运行+查看统计结果
        运行命令: pig ./wordCount.pig
        执行结果在: /hadoop/wordCount.result/下
        可以使用 : hadoop fs -tail /hadoop/wordCount.result/part-r-00000来查看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值