草庐IT

mad_stream_buffer

全部标签

streaming - 如何在 hadoop 流中使用将文件名作为参数的二进制可执行文件?

假设我有一个二进制可执行文件,它将文件名作为参数,例如“myprogfile1file2”,它从文件1读取并写入文件2。二进制可执行文件不采用标准输入,也不发出标准输出。如何在hadoop流中将此二进制可执行文件用作映射器或缩减器?谢谢! 最佳答案 您必须先将数据保存为本地磁盘上的临时文件才能使用您的程序。然后您可以从文件中读取结果。但是,这违背了使用Hadoop处理数据的目的。将数据复制到本地磁盘并将结果读回Hadoop领域的开销会降低性能。我建议更改您的二进制可执行文件以允许通过标准输入和标准输出进行输入/输出。

python - 在 Hadoop Streaming 中创建一个单独的函数来读取文件的问题

我在创建一个单独的函数来读取HadoopStreaming中的文件时遇到了问题。mapper.py:效果很好(非常低效)#!/usr/bin/envpythonimportsysdefmain():forlineinsys.stdin:line=line.strip()#eachlinecontainsonlyoneword,5+millionlinesfilename="my_dict.txt"#contains7+millionwordsf=open(filename,"r")forline1inf:line1=line1.strip()ifline1==line:print'%s

hadoop - 在 hive 和 hadoop streaming-api 输出之间共享数据

我有几个hadoop流式api程序并使用此输出格式生成输出:“org.apache.hadoop.mapred.SequenceFileOutputFormat”流式api程序可以读取输入格式为“org.apache.hadoop.mapred.SequenceFileAsTextInputFormat”的文件。输出文件中的数据如下所示。val1-1,val1-2,val1-3val2-1,val2-2,val2-3val3-1,val3-2,val3-3现在我想用配置单元读取输出。我用这个脚本创建了一个表:CREATEEXTERNALTABLEIFNOTEXISTStable1(co

hadoop - 获取 hadoop streaming jobid

所有Hadoop作业都有唯一的jobid。您可以使用jobid获取作业状态或作业计数器。问题是我如何才能获得刚刚从我的脚本运行的作业的jobid?当然,我想以可靠且简单(如果可能)的方式做到这一点。例子:1)从我运行的脚本中:hadoopjar${HADOOP_STREAMING}\-Dmapred.job.name="$NAME"\-Dmapred.reduce.tasks=$NREDUCERS\-mapper"cat"\-file./reducer.py\-reducer"python./reducer.py"\-inputhdfs:/logs/2012-06-25/*.bz2\-

hadoop - 如何使用 LZO 以外的压缩处理 Hadoop Map/Reduce 中的 Protocol Buffer 文件?

我想使用HadoopMap/Reduce来处理delimited使用LZO以外的东西压缩的ProtocolBuffer文件,例如xz或gzip。Twitter的elephant-bird库似乎主要支持读取LZO压缩的protobuf文件,因此似乎不能满足我的需求。是否有现有的库或标准方法来执行此操作?(注意:正如您从我选择的压缩算法中看到的那样,解决方案没有必要使protobuf文件可拆分。您的答案甚至不需要指定特定的压缩算法,但应该至少允许我提到的其中之一。) 最佳答案 您可能需要查看Hadoop的RAgzip补丁,以处理大型gz

hadoop - 获取异常 WARN org.apache.hadoop.streaming.PipeMapRed : java. io.IOException: Broken pipe

出于某些调试目的,我正在现有的工作R脚本中添加打印语句。print("Hello")我在使用Hadoop流式处理执行此代码时收到Brokenpipe异常。如果我再次删除此打印件,它会起作用,对我来说听起来很奇怪!在编辑Rscript时,我正在通过窗口gitbash使用vi。您能否提出解决方案。 最佳答案 如果您的Hadoop集群由Linux节点组成,并且您提交的脚本是在windows或windowgitbash中编辑的,它将无法运行并抛出误导性异常。只需使用vi或emacs在linux中编辑文件。或者使用do2unix命令将文件从d

python - Hadoop MapReduce Streaming 输出与本地运行 MapReduce 的输出不同

我正在运行一个用python编写的简单mapreduce作业,我注意到当我在本地测试脚本时,我得到的结果与我在hadoop上运行该作业时不同。我的输入是这样的:key1val1key1val2key1val3key1val4key2val1key2val3key2val5key3val5key4val4我的映射器创建了一个值字典及其对应的键列表(字符串)(例如val1key1,key2;val2key1;val3key1,key2....)。然后对于字典中的每个值,我打印所有可能的key对。所以我的映射器的输出看起来像:key1_key21#obtainedfromval1key1_k

hadoop - ArrayIndexOutOfBoundsException 在 MapOutputBuffer$Buffer.write 在 MapTask (Hadoop 2.7.1)

在Hadoop2.7.1上运行的Scalding驱Action业中出现ArrayIndexOutOfBounds的情况非常奇怪。下面的映射器日志转储。看起来Equator在spill2中以某种方式设置为负数。这正常吗?2015-08-1223:39:19,649INFO[main]org.apache.hadoop.mapred.MapTask:numReduceTasks:12015-08-1223:39:20,174INFO[main]org.apache.hadoop.mapred.MapTask:(EQUATOR)0kvi469762044(1879048176)2015-08

scala - Spark streaming 和 Dstream 如何工作?

我对Spark有相当多的经验。但是,我是第一次学习Sparkstreaming,发现它很难理解。很难理解应用程序的流程。例如,对于下面网站给出的例子http://ampcamp.berkeley.edu/3/exercises/realtime-processing-with-spark-streaming.html第3部分的代码。进一步的练习,我们有valwords=statuses.flatMap(status=>status.split(""))valhashtags=words.filter(word=>word.startsWith("#"))valcounts=hashta

Hadoop Streaming 错误没有这样的文件或目录

我研究了Hadoop,并使用Ruby测试了HadoopStreaming,看我的MapReduce算法是否可以正常工作。所以,我执行了下一个命令。hadoopjarhadoop-streaming-2.7.2.jar-filesmapper.rb,reducer.rb-mappermapper.rb-reducerreducer.rb-inputtest.json-outputtest但是,下一个错误发生了。dir/usercache/Kuma/appcache/application_1469093819516_0005/container_1469093819516_0005_01