草庐IT

hadoop - 当您使用 Pig Latin 有许多小输入文件时提高性能

目前我正在处理大约19GB的日志数据,而且它们是分开的,因此输入文件的编号是145258(pigstat)。在WebUI中执行应用程序和启动mapreduce作业之间,准备工作浪费了大量时间(大约3小时?),然后mapreduce作业开始。而且mapreduce作业本身(通过Pig脚本)非常慢,大约需要一个小时。mapreduce逻辑没有那么复杂,就像一个groupby操作。我有3个数据节点和1个名称节点,1个辅助名称节点。如何优化配置以提高mapreduce性能? 最佳答案 您应该将pig.maxCombinedSplitSize

hadoop - 使用 PIG 处理小文件

根据我的理解,Map/Reduce对于大文件效果更好。(我理解这是由于拆分逻辑等),我们可以将文件作为值和文件名作为序列文件中的键并进行优化。现在的问题是我正在使用PIG进行分析,我们有大约数千个文件,但所有文件都以KB为单位。正如我们所知,piglatin被转换并作为MR作业运行,所以我怀疑MR作业会因为小文件而效率低下。有什么方法可以控制通过pig处理的小文件吗?有开箱即用的解决方案吗? 最佳答案 Pig具有将小文件组合成大块的功能:http://pig.apache.org/docs/r0.11.1/perf.html#com

hadoop - pig : Counting the occurence of a grouped column

在此rawdata我们有棒球运动员的信息,架构是:name:chararray,team:chararray,position:bag{t:(p:chararray)},bat:map[]使用以下脚本,我们能够列出球员以及他们踢过的不同位置。我们如何计算有多少球员打过一个特定的位置?例如。有多少球员处于“指定击球手”位置?一个位置不能在一个玩家的position包中出现多次。示例数据的Pig脚本和输出如下所示。--pigscriptplayers=load'baseball'as(name:chararray,team:chararray,position:bag{t:(p:chara

hadoop - Pig,用特定列的整数替换字符串

我是Pig的新手,所以这可能是一个微不足道的问题。我无法得到合理的答案,因此提出这个问题。有3列如下:useriditemidaction2454'view'2456'click'14912'buy'1491'click'等等……我有一个映射,例如:'view'=1、'click'=1.4、'buy'=2.1等我想要的输出是:useriditemidaction2454124561.4149122.114911.4可以帮助我实现这一目标的简单命令?我需要在第3列上执行一些计算,因此不能使用字符串格式。 最佳答案 使用这些映射值在HD

sorting - 使用 pig 加载时为每一行添加 ID

假设我有一个日志文件,但没有日期字段或任何其他可用于排序的字段。唯一的提示是文件中的行已经排序(但例如我需要下降排序而不是上升排序)我想做的是在使用Pig加载时为每一行生成一个aftificialID。是否有我可以使用的内置变量?像RowId这样的东西?你有什么想法吗?问候,帕维尔 最佳答案 NewinPig0.11是RANK运算符,它将完成您需要做的事情。 关于sorting-使用pig加载时为每一行添加ID,我们在StackOverflow上找到一个类似的问题:

hadoop - 如何使用 pig 剥离字符串并提取字符串的数字部分

我有一个字符串wtr,如下所示重量10好911.v.好我正在尝试使用pig从该字符串中提取数字部分。这是我尝试过的xx=FOREACHxyz_process{wtr_split=STRSPLIT(wtr,'\\.');GENERATEwtr_split;};我一直收到以下警告和空白xx2013-12-0417:41:10,130[main]WARNorg.apache.pig.PigServer-EncounteredWarningUSING_OVERLOADED_FUNCTION1time(s).2013-12-0417:41:10,130[main]WARNorg.apache.p

hadoop - pig - 复制连接

我有两个输入文件学生文件:abc304.5xyz349.5def286.5klm3510.5位置文件:abchawthornexyzartesiadefgarnetklmvanness我想要的输出abchawthornexyzartesiadefgarnetklmvanness为此,我编写了以下pig程序。A=LOAD'/user/hive/warehouse/students.txt'USINGPigStorage('')AS(NAME:CHARARRAY,AGE:INT,GPA:FLOAT);B=LOAD'/user/hive/warehouse/location.txt.txt'

sql - 如何在 PIG 中完整外连接表和总结

我在HDFS上有2个数据集,它们以Tab分隔:A--------DATEPAGEVIEWSCLICKS2014/01/21200502014/01/22300702014/01/23150100B--------DATEPAGEVIEWSCLICKS2014/01/2350252014/01/24250110我想合并这两个数据集以产生以下结果:C--------DATEPAGEVIEWSCLICKS2014/01/21200502014/01/22300702014/01/232001252014/01/24250110如您所见,最终数据集C从A和B中获得了2014/01/23的聚合数

mongodb - 如何使用 mongo-hadoop 从 Pig 上的 BSON 文件加载数组?

我正在尝试使用com.mongodb.hadoop.pig.BSONLoader(https://github.com/mongodb/mongo-hadoop/blob/master/pig/README.md)将数据从MongoDBBSON文件加载到Pig中,但我遇到了困难。MongoDB上的数据包括可变大小的数组,我不确定如何将其加载到pig中(作为元组?)。这是来自MongoDB的示例记录:{"_id":{"$oid":"52fbbca6e4b029a79cd17ff7"},"field":"value","variableSizeArray":["value1","value

hadoop - Pig 的 COGROUP 运算符如何工作?

这里的COGROUP运算符是如何工作的?在最后两行输出中我们如何以及为什么得到空包(没有网站详细解释COGROUP中的数据排列)?A=load'student'as(name:chararray,age:int,gpa:float);B=load'student'as(name:chararray,age:int,gpa:float);dumpB;(joe,18,2.5)(sam,,3.0)(bob,,3.5)X=cogroupAbyage,Bbyage;dumpX;(18,{(joe,18,2.5)},{(joe,18,2.5)})(,{(sam,,3.0),(bob,,3.5)},