草庐IT

kafka-stream

全部标签

python - Hadoop Streaming Python 简单示例不起作用

我有一个这样的输入文件,它已经上传到HDFS/tmp/input(用^A分隔,这是一个非打印字符,这是VI中的View)A^A10A^A7A^A10A^A5A^A10A^A8B^A1A^A9B^A1A^A9B^A1A^A9B^A1A^A9B^A1A^A9B^A1A^A9我写的映射器看起来像这样:importsysforlineinsys.stdin:name,score=line.strip().split(chr(1))print'\t'.join([name,str(int(score)+1)])reducer看起来像这样(similarto):importsysfromdatet

Python 代码有效,但 Hadoop Streaming 生成 part-00000 "Empty file"

在Ubuntu虚拟机上,我根据MichaelNoll的tutorial设置了一个单节点集群这是我编写Hadoop程序的起点。另外,作为引用,this.我的程序使用Python并使用HadoopStreaming。我写了一个简单的向量乘法程序,其中mapper.py接受输入文件v1和v2,每个文件都包含一个向量12,33,10并返回产品。然后reducer.py返回乘积之和,即:映射器:map(mult,v1,v2)reducer:sum(p1,p2,p3,...,pn)映射器.py:importsysdefmult(x,y):returnint(x)*int(y)#Inputcomes

hadoop - 在 Spark Streaming 中更改输出文件名

我正在运行一个Spark作业,它在逻辑上表现得非常好。但是,当我使用saveAsTextFile将文件保存在s3存储桶中时,我的输出文件的名称格式为part-00000、part-00001等。有没有办法更改输出文件名?谢谢。 最佳答案 在Spark中,您可以使用saveAsNewAPIHadoopFile并在hadoop配置中设置ma​​preduce.output.basename参数来更改前缀(只是“部分”前缀)valhadoopConf=newConfiguration()hadoopConf.set("mapreduce.

Kafka的消息可以被删除吗?如果可以,有哪些删除策略?Kafka如何保证消息的有序性?Kafka和其他消息中间件(如ActiveMQ、RabbitMQ)的区别是什么?Kafka的消费者组是什么?它的

1、Kafka的消息可以被删除吗?如果可以,有哪些删除策略?在Kafka中,消息一旦被写入到分区中,就不可以被直接删除。这是因为Kafka的设计目标是实现高性能的消息持久化存储,而不是作为一个传统的队列,所以不支持直接删除消息。然而,Kafka提供了消息的过期策略来间接删除消息。具体来说,可以通过设置消息的过期时间(TTL)来控制消息的生命周期。一旦消息的时间戳超过了设定的过期时间,Kafka会将其标记为过期,并在后续的清理过程中删除这些过期的消息。Kafka的清理过程由消费者组中的消费者来执行。消费者消费主题中的消息,并将消费的进度提交到Kafka。一旦消息被提交,Kafka就可以安全地删除

hadoop - 如何在 Hadoop Streaming 中使用 "typedbytes"或 "rawbytes"?

我有一个问题可以通过“typedbytes”或“rawbytes”模式下的HadoopStreaming解决,它允许用Java以外的语言分析二进制数据。(如果没有这个,Streaming会将一些字符(通常是\t和\n)解释为分隔符并提示非utf-8字符。将我所有的二进制数据转换为Base64会减慢工作流程,从而达不到目的。)这些二进制模式是由HADOOP-1722添加的.在调用HadoopStreaming作业的命令行上,“-iorawbytes”让您将数据定义为32位整数大小,后跟该大小的原始数据,“-iotypedbytes”让您将数据定义为1-位零(这意味着原始字节),后跟32位

streaming - Hadoop 或 Hadoop Streaming for MapReduce on AWS

我即将开始一个将在AWS上运行的mapreduce项目,我面临一个选择,是使用Java还是C++。我知道用Java编写项目会使我可以使用更多功能,但是C++也可以通过HadoopStreaming实现它。请注意,我对这两种语言都没有什么背景。一个类似的项目已经用C++完成,代码可供我使用。所以我的问题是:这个额外功能是通过AWS提供的,还是仅在您对云有更多控制权时才相关?为了做出决定,还有什么我应该牢记的,比如hadoop插件的可用性,可以更好地使用一种语言或另一种语言?提前致谢 最佳答案 您有几个选项可以在AWS上运行Hadoop

python - Hadoop Streaming Job 在 python 中失败

我有一个用Python编写的mapreduce作业。该程序在linuxenv中测试成功,但在Hadoop下运行时失败。这是作业命令:hadoopjar$HADOOP_HOME/contrib/streaming/hadoop-0.20.1+169.127-streaming.jar\-input/data/omni/20110115/exp6-10122-output/home/yan/visitorpy.out\-mapperSessionMap.py-reducerSessionRed.py-fileSessionMap.py\-fileSessionRed.pySession*.

hadoop - 具有在 HDFS 上查找数据的 Kafka Streams

我正在使用KafkaStreams(v0.10.0.1)编写应用程序,并希望使用查找数据丰富我正在处理的记录。此数据(带时间戳的文件)每天(或每天2-3次)写入HDFS目录。如何在KafkaStreams应用程序中加载它并加入实际的KStream?当新文件到达那里时从HDFS重新读取数据的最佳做法是什么?或者切换到KafkaConnect并将RDBMS表内容写入Kafka主题,所有KafkaStreams应用程序实例都可以使用它会更好吗?更新:正如建议的那样,KafkaConnect将是必经之路。因为查找数据在RDBMS中以每日为基础进行更新,所以我正在考虑按计划运行KafkaConn

xml - How to read compressed bz2 (bzip2) Wikipedia dumps into stream xml record reader for hadoop map reduce

我正在使用HadoopMapReduce对维基百科数据转储(以bz2格式压缩)进行研究。由于这些转储太大(5T),我无法将xml数据解压缩到HDFS中,只能使用hadoop提供的StreamXmlRecordReader。Hadoop确实支持解压缩bz2文件,但它会任意拆分页面并将其发送给映射器。因为这是xml,所以我们需要拆分为标签。有没有办法把hadoop自带的bz2解压和streamxmlrecordreader一起使用? 最佳答案 维基媒体基金会刚刚为HadoopStreaming接口(interface)发布了一个Inpu

Kafka的Message格式

消息引擎的核心职责就是将生产者生产的消息传输到消费者,设计消息格式是各大消息引擎框架的关键问题,因为消息格式决定了消息引擎的性能和效率。本文带大家探究消息引擎kafka当前所用的message格式是什么。一、Kafkamessageformatkafka从0.11.0版本开始所使用的消息格式版本为v2,参考了ProtocolBuffer而引入了变长整型(Varints)和ZigZag编码。Varints是使用一个或多个字节来序列化整数的一种方法,数值越小,其所占用的字节数就越少。ZigZag编码以一种锯齿形(zig-zags)的方式来回穿梭于正负整数之间,以使得带符号整数映射为无符号整数,这样