草庐IT

stream_writable

全部标签

python - 如何在 Hadoop Streaming 中运行 Python mapreduce

我正在尝试在ApacheHadoop中运行一个mapreduce程序,该程序计算给定输入文件中素数的平均总和。这是我的映射器importsysforwordinsys.stdin:print(word)这是Reducerimportsysprimes=[]forwordinsys.stdin:if(int(word)>=2):isPrime=Trueforainrange(2,int(word)):if(int(word)%a==0):isPrime=FalseifisPrime:primes.append(int(word))print(sum(primes)/float(len(p

hadoop - SparkR 错误 : The root scratch dir:/tmp/hive on HDFS should be writable

我正在尝试初始化SparkR,但出现权限错误。我的Spark版本是spark-2.2.1-bin-hadoop2.6。我搜索了这个错误以及如何解决它,我发现了几个相关的主题。但是,我无法使用与这些主题相同的方法来解决它,他们提供的解决方案(以及我尝试过的解决方案)是使用以下命令授予/tmp/hive目录权限:sudo-uhdfshadoopfs-chmod-R777/tmp/hive有足够知识的人可以给我另一种可能的解决方案吗?错误堆栈跟踪如下:$sudo./bin/sparkRRversion3.4.2(2017-09-28)--"ShortSummer"Copyright(C)20

sorting - hadoop streaming 是否在 map 和 reduce 阶段之间使用稳定的排序?

这对多阶段作业有影响。例如,如果我们在作业的第1阶段按键“a”排序,在作业的第2阶段按键“b”排序(将第1阶段的输出作为标准输入),我们是否可以假设当两个阶段完成时记录是按键“b”排序,然后按键“a”排序?出于这个问题的目的,假设映射器和缩减器不排列记录顺序。还假设reduce任务的数量为1个或更多。请记住,答案可能会因阶段1的reduce任务数量而异。例如,如果阶段1的reduce任务数量大于1,则keya将被拆分到多个文件中(尽管在相对于每个文件的排序顺序)。然而,当只有一个reduce任务时,所有值都将出现在同一个文件中,这可能是稳定性的必要条件,具体取决于实现。如果答案是肯定的

java - 使用 Hadoop Streaming 时通过脚本运行 Java 应用程序 : java. lang.NoClassDefFoundError

我使用HadoopStreaming在tcsh中执行一个脚本文件:--FirstcopythejarfilestotheHadoopfilesystem,sothattheyarenexttoinputdirandoutputdir.--cpApp/*/hadoop/jardir/--RunHadoop--hadoopjar/usr/lib/hadoop/contrib/streaming/hadoop-streaming-0.20.2-cdh3u4.jar\\-Dmapred.task.timeout=120000000\\-input"/hadoop/inputdir/"-outp

python - MapReduce using hadoop streaming via python - 将列表从映射器传递到缩减器并将其作为列表读取

我想将列表作为值从映射器传递到缩减器阶段。目前,缩减器将列表作为字符串读取。有没有一种方法可以确保python可以将其解释为列表。 最佳答案 Hadoop流使用stdin和stdout进行通信;因此,进入每个后续作业的所有内容都将是一个字符串。您可以在表示中使用某种分隔符,例如逗号:the,items,in,my,list然后将它们拆分到你的reducer中:forlineinsys.stdin:data=line.split(',')如果你想让它成为一本字典:importastforlineinsys.stdin:dict=ast

java - 来自现有 RDD 的 Spark Streaming

任何人请帮助我如何从现有的RDD创建DStream。我的代码是:JavaSparkContextctx=newJavaSparkContext(conf);JavaRDDrddd=ctx.parallelize(arraylist);现在我需要使用这些rddd作为JavaStreamingContext的输入。 最佳答案 试一试queueStreamAPI.RDD队列作为一个Stream,每一个插入队列的RDD在DStream中都会被当作一批数据,像流一样处理。publicInputDStreamqueueStream(scala.

hadoop - 来自文件夹(不是 HDFS)的 Apache Spark Streaming

我想知道是否有任何可靠的方法可以从物理位置创建Spark流?我使用的是“textFileStream”,但它似乎主要用于文件位于HDFS中的情况。如果您看到该函数的定义,它会显示“创建一个监视Hadoop兼容文件系统的输入流” 最佳答案 您是在暗示HDFS不是物理位置吗?有物理存在的datanode目录...您应该能够将textFile与file://URI一起使用,但您需要确保集群中的所有节点都可以从该位置读取。来自Hadoop兼容文件系统的定义。Theselectionofwhichfilesystemtousecomesfro

python - 使用 Hadoop Streaming 管理依赖关系?

我有一个快速的HadoopStreaming问题。如果我正在使用Python流式传输并且我有我的映射器/缩减器需要但默认情况下没有安装的Python包,我是否也需要在所有Hadoop机器上安装它们,或者是否有某种序列化将它们发送到远程机器? 最佳答案 如果它们没有安装在您的任务箱中,您可以使用-file发送它们。如果您需要一个包或其他目录结构,您可以发送一个zip文件,它会为您解压。这是一个Haddop0.17调用:$HADOOP_HOME/bin/hadoopjar$HADOOP_HOME/contrib/streaming/ha

python - 使用 Hadoop Streaming Python 的 SequenceFile 格式

Hadoop官方是否支持streamingwithbinaryformats从0.21开始?hadoop-streaming.jar接受作为Java类名的inputFormat。这个Java类如何提供Hadoop流作业?除了执行hadoop-streaming.jar使用inputFormat、outputFormat参数,还必须做些什么才能运行具有SequenceFile输入/输出格式的Python流作业? 最佳答案 它就像一些困惑的文档。尝试阅读这些答案HowtouseHadoopStreamingwithLZO-compres

azure - 如何连接 Azure 机器学习和 Spark Streaming 或 Apache Storm

是否有可能将流从SparkStreaming或ApacheStorm获取到Azure机器学习中?在reader选项中有一个从Hive数据库读取数据的输入但是如何从Spark或Storm获取实时数据流,例如实时欺诈检测 最佳答案 我理解使用开源Storm或Spark来做到这一点的愿望。但我也想提供100%Azure解决方案,因为就我个人而言,我发现它是使用流数据快速完成许多“简单”事情的好方法。首先,我们有服务总线,它可以包含事件中心。事件中心是一个管理良好的队列,可以在其中将数据事件流式传输到云中。queue有暂停,rewind功能