Step1:
我们要在本地创建一个存放数据的txt文件,我们命名为studentdata.txt里面存放的数据如下:
001:林:59 002:唐:100 003:施:61 004:王:78 005:张:76 006:李:52
Step2:
将本地创建的数据传到namenode下面,
先在我们的/mnt/tmp/下面创建一个input_tms目录,用来存放我们上传的文件
先cd 到/mnt/tmp目录下
然后mkdir input_tms
最后查看ls /mnt/tmp
然后cd到创建的目录下
cd /mnt/tmp/input_tms/
然后执行rz,上传我们的数据文档studentdata.txt
在弹出来的选择框中选择我们的文档studentdata.txt
点击打开,上传成功显示如下,点击关闭:
接下来将本地传入的在/mnt/tmp/input_tms下面的studentdat.txt传到HDFS中
先在hdfs下创建一个input_tms目录,这个目录和上面的那个不同,这里只是名字相同了便于管理,他用来接收我们传入的studentdata.txt。相当于本地的数据传了两次,一次到namenode下面,然后到hdfs系统里面
先cd回来
cd /
然后新建一个目录:input_tms
hadoop fs –mkdir /input_tms,这里显示已经存在,因为我之前就已经创建了。
查看是否创建成功,看到我们的input_tms,表明成功
命令:hadoop fs –ls /
然后执行
hadoop fs –put /mnt/tmp/input_tms/studentdata.txt /input_tms ,传到HDFS系统中
第一个input_tms是上上面的,第二个input_tms是上一步创建的,注意!!!
然后查看是否传入成功
hadoop fs –ls /input_tms/ 看到我们的studentdata.txt表明成功
Step3:
本地创建一个Pig脚本,Pig脚本是以.pig结尾的,在这个例子中命名为tmspig.pig采用编辑器进行打开然后编辑,在里面写入脚本
A = load '/input_tms/studentdata.txt' using PigStorage(':') as (sno:chararray, sname:chararray, sscore:int);
B = foreach A generate sno, sscore;
dump B;
store B into '/input_tms/result.txt';
Ps:目前还没有具体研究过pig脚本的语法,但是大体的意思我们还是能看懂。他和studentdata.txt联系起来了通过一个URL.然后我们的结果输出是他们的号码sno和sscore
注意后面的类型,和上面我们传入的数据比较,字符串类型的是chararray,整形的就是int
然后将脚本文件传入到/mnt/tmp/input_tms/目录下,这里就不啰嗦了,将他和上面的studentdata.txt放在一起。
Pig脚本是不用传入到HDFS中去的,(开始我就传了,后面就错了!!!)
我们可以查看是否成功的把我们的脚本传入了
cd /mnt/tmp/input_tms/
然后 ls
这个时候看到我们的/mnt/ymp/input_tms/目录下面有两个文件了,一个是studentdata.txt,一个是我们本地的pig脚本tmspig.pig
Step4执行我们的脚本,语言,就一句话
pig /mnt/tmp/input_tms/tmspig.pig
然后就是等了
最后会出来这样的画面,最后面一个单词是success!表明成功了
注意上面的两个东西:Input(s):显示了我们的传入到HDFS中数据文件的路径,
Output(s):结果输出在哪里和接收结果的文档名字“results.txt”
这个result.txt在我们脚本语言里面声明了的,还要注意的是我
们每次运行的时候Output下面接收结果的文档的名字还要不同,否则会报错
下面我们可以看看我们的input_tms目录下,这时你会发现多了一个result.txt文件
hadoop fs -ls /input_tms/
接下来查看我们的结果
hadoop fs -cat /input_tms/result.txt/* 后面的/*不能少,否则看不到结果
总结:
算是在集群上面跑了一个pig脚本的程序了,只是熟悉了一下操作,pig脚本的语法还没有去研究和学习,需要注意的是我们本地的数据文件要经过两次传递,第二次是传入到HDFS中去,而pig脚本只需要经过一次上传就可以了。
相关推荐
通过阅读这本书,你可以深入了解Hadoop的内部工作机制,如何管理Hadoop集群,以及如何编写MapReduce程序来处理数据。 **Hive** 是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL-...
首先,课程会介绍如何在本地环境或Hadoop集群上安装Pig。安装过程包括获取Pig的源码或者二进制包,配置Hadoop环境,将Pig添加到Hadoop的类路径中,以及启动Pig的交互式shell(Pig grunt shell)。了解这些基础步骤是...
4. **Pig**:Apache Pig是Hadoop生态系统中的一个高级数据分析平台,它提供了一种称为Pig Latin的脚本语言,用于处理和分析大规模数据。Pig Latin抽象了MapReduce,使得用户无需直接编写Java代码即可实现复杂的数据...
Pig 构建在 Hadoop 平台上,通过提供一个名为 Pig Latin 的高级抽象语言,简化了在 Hadoop 上进行数据分析的过程。Pig Latin 允许数据工程师用简单的语句来描述复杂的分析任务,减少了直接编写 MapReduce 作业的复杂...
Hadoop是一个开源框架,主要用于处理和存储大量数据,而HBase是建立在Hadoop之上的分布式列式数据库,Pig则是一个用于大数据分析的高级脚本语言。接下来,我们将深入探讨这三个关键组件。 1. **Hadoop**: Hadoop...
Pig Latin可以看作是一种轻量级的脚本语言,其编写的脚本会被转化为Map-Reduce任务在Hadoop集群上执行。Pig的安装包括下载安装包、设置环境变量、验证安装等步骤,同时,Pig提供了多种工作模式,如本地模式和...
3. **Pig与Hadoop集成**:书中会讲解如何配置和部署Pig,以及如何在Hadoop集群上运行Pig脚本。这包括设置环境变量,提交作业,以及监控作业执行状态。 4. **数据加载与存储**:Pig支持多种数据格式,包括CSV、JSON...
5. **流式处理与并行计算**:Pig会自动将Pig Latin语句转化为一系列MapReduce任务,这些任务在Hadoop集群中并行执行,极大地提高了处理速度。例如,一个JOIN操作会被分解为多个MapReduce作业,每个作业处理一部分...
4. **可扩展性**:Pig允许用户自定义函数(UDF),可以使用Java等其他编程语言编写,并在Pig脚本中调用,增加了灵活性和处理能力。 5. **处理多种数据**:Pig不仅处理结构化数据,也能处理半结构化和非结构化数据,...
运行这个脚本,Pig将会自动将其转化为MapReduce任务并在Hadoop集群上执行。 总结,Pig-0.9.1作为Hadoop生态中的重要组件,提供了高效的数据处理能力。通过理解Pig Latin语言和正确配置,用户可以充分利用Hadoop的...
本文将深入探讨阿里在Hadoop集群上的构建方式和服务体系,帮助读者理解如何在企业级环境中部署和管理Hadoop。 Hadoop是一个开源的分布式计算框架,它允许在大规模硬件集群上处理海量数据。阿里巴巴作为全球领先的...
Pig将Pig Latin脚本转化为一系列MapReduce任务,这些任务在Hadoop集群上并行执行,实现了对大规模数据的高效处理。 在Pig中,数据通常以“bags”(多对一的集合)、“tuples”(元组,类似于数组)和“fields”...
Pig提供了一种脚本语言(Pig Latin),而Hive则构建于SQL之上,简化了查询复杂数据集的过程。 3. **Hadoop 集群配置和使用技巧** 配置Hadoop集群涉及多个层面,包括硬件选择、网络规划、软件安装及参数调优。以下...
【描述】中提到的"Pig"是一个开源的数据流处理框架,它构建于Hadoop之上,提供了一种高级语言(称为Pig Latin)来编写处理大数据集的脚本。Pig Latin是一种声明性语言,使得数据分析师可以专注于数据转换逻辑,而...
6. **执行脚本**:这部分可能是用Java、Python或Hadoop的其他支持语言(如Pig、Hive、Spark)编写的,用于自动化数据处理流程,包括提交MapReduce作业、监控作业状态等。 通过这个测试案例,读者不仅可以学习到...
7. Oozie:是Hadoop作业调度和管理系统,可以安排和管理MapReduce作业、Pig脚本、Hive查询以及其他的Hadoop相关任务。 Hadoop生态系统的不断发展和扩展,引入了许多其他项目,如YARN(用于资源管理和调度)、Tez...