标签: distributed-computing

在Hadoop中更改文件分割大小

我在HDFS目录中有一堆小文件.虽然文件的体积相对较小,但每个文件的处理时间量很大.也就是说,一个64mb文件,它是默认的分割大小TextInputFormat,甚至需要花费几个小时来处理.

我需要做的是减少分割大小,这样我就可以利用更多的节点来完成工作.

所以问题是,怎么可能通过让我们说分割文件10kb?我需要实现我自己InputFormatRecordReader这一点,或有任何参数设置?谢谢.

java hadoop mapreduce distributed-computing

24
推荐指数
2
解决办法
5万
查看次数

在一系列螺栓中在Storm中确认的正确方法

只是想确保我知道Ack-ing在Storm中是如何工作的.我有1个喷口和2个螺栓链在一起.Spout向Bolt1发出元组,而Bolt1又向Bolt 2发出一个元组.我希望Bolt 2能够从Spout发出的初始元组,我不确定如何.

为了保证容错(即:重新发送元组),我想在螺栓2中确认Spout发出的元组,以防万一它在过程中的某个地方失败,因此可以重新发送.

考虑这个例子:

喷口:

 _collector.emit(new Values(queue.dequeue())
Run Code Online (Sandbox Code Playgroud)

Bolt1:

def execute(tuple: Tuple) {
 _collector.emit(tuple, new Values("stuff"))
}
Run Code Online (Sandbox Code Playgroud)

在这一点上,元组是由喷口发送的元组.我可以在这里说它没有问题.现在添加另一个监听Bolt1发出的元组的螺栓.

Bolt2:

def execute(tuple2: Tuple) {
 _collector.emit(tuple2, new Values("foo"))
}
Run Code Online (Sandbox Code Playgroud)

此时tuple2中的元组是从Bolt1发送的元组(其中包含字符串"stuff"的元组).
因此,如果我在Bolt2中发送一个ack,这将从Bolt1中获取元组,而不是从Spout发送的元组.正确?

我如何识别从喷口发出的元组?我应该把所有其他喷口上的初始喷口扛回来,这样我就可以在最后一个螺栓上找回它并确认它吗?

我阅读了Nathan的教程,我得到的印象是,在发出tuple2后,我可以在那里收到Bolt1(来自Spout)收到的元组.这会将新发出的tuple2链接到Spout发送的原始元组,所以当Bolt2确认元组2时,它实际上会从Spout中获取原始元组.这是真的?

如果我在解释中遗漏了某些内容,请告诉我.

distributed-computing apache-storm

24
推荐指数
2
解决办法
8477
查看次数

Google Dataflow与Apache Spark

我正在调查Google DataflowApache Spark,以确定哪个更适合我们的bigdata分析业务需求.

我发现有Spark SQLMLlib火花平台上做结构化数据查询和机器学习.

我想知道Google Dataflow平台中是否有相应的解决方案?

distributed-computing bigdata apache-spark google-cloud-dataflow google-cloud-ml

24
推荐指数
2
解决办法
9066
查看次数

什么是zookeeper端口及其用法?

我是动物园管理员港口的新手,我过去几天就遇到过这个港口.
我两次介绍了zookeeper port关键字:

  • 配置neo4j数据库集群(链接)和
  • 运行编译的voltdb目录(链接)(请参阅网络配置参数)

然后,我遇到了Apache Zookeeper,(我猜这与分布式应用程序有关,我也是分布式应用程序的新手).因此问题在我脑海中浮现:

  1. 在上述2个场景中是否有apache zookeeper的任何实现?
  2. 这个动物园管理员端口到底在做什么?

任何帮助将不胜感激,谢谢.

java distributed-computing neo4j voltdb apache-zookeeper

23
推荐指数
1
解决办法
4万
查看次数

在Spark中将简单的一行字符串转换为RDD

我有一个简单的路线:

line = "Hello, world"
Run Code Online (Sandbox Code Playgroud)

我想将它转换为只有一个元素的RDD.我试过了

sc.parallelize(line)
Run Code Online (Sandbox Code Playgroud)

但它得到:

sc.parallelize(line).collect()
['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python distributed-computing apache-spark rdd pyspark

23
推荐指数
1
解决办法
4万
查看次数

AMQP和ZeroMQ之间的差异

最近开始研究这些AMQP(RabbitMQ,ActiveMQ)和ZeroMQ技术,对分布式系统/计算感兴趣.一直在谷歌搜索和StackOverflow'周围,找不到两者之间的明确比较.

我得到的最远的是两者不太可比,但我想知道差异.在我看来ZeroMQ更加分散(没有消息经纪人在播放中间人处理消息/ guarenteering交付)并且因此更快,但并不意味着是一个完全成熟的系统,而是需要以编程方式处理的事情,比如演员.

另一方面,AMQP似乎是一个更完善的系统,中央消息代理确保可靠的交付,但由于这一点,比ZeroMQ慢.但是,中央经纪人会造成单点故障.

也许比喻是客户/服务器与P2P?

我的发现是真的吗?另外,使用一个优于另一个的优点,缺点或用例是什么?比较使用*MQ与像Akka Actors这样的东西也会很好.

编辑多看了一下.. ZeroMQ似乎是AMQP的新竞争者,似乎要快得多,唯一的问题是采用/实现?

distributed-computing amqp zeromq actor

22
推荐指数
3
解决办法
1万
查看次数

跨多个服务器复制sqlite数据库的方法

我正在开发一个分布式的应用程序,我有一个必须在分布式服务器之间共享的SQLite数据库.如果我在serverA中,并且更改sqlite行,则此更改必须立即在其他服务器中,但如果服务器处于脱机状态,然后它在线,则必须更新所有信息等于其他服务器.

我正在尝试使用小型SQLite数据库开发HA服务.

我正在考虑像MongoDB或ReThinkDB这样的东西,因为复制工作正常,我有独立的服务器在线数据.

有一个库或其他SQL方法在服务器之间共享数据?

提前致谢.

sqlite replication high-availability distributed-computing rethinkdb

22
推荐指数
3
解决办法
3万
查看次数

分布式计算框架(.NET) - 专门用于CPU密集型操作

我目前正在研究开发分布式应用程序的可用选项(包括开源和商业).

"分布式系统由多台通过计算机网络进行通信的自主计算机组成." 维基百科

该应用程序专注于分发高CPU密集型操作(而不是数据密集型),因此我确信MapReduce解决方案不符合要求.

您可以推荐的任何框架(+给出任何经验的简要概述或与其他框架的比较)将不胜感激.

.net distributed frameworks distributed-computing grid-computing

21
推荐指数
1
解决办法
1万
查看次数

任何开源Pregel喜欢的框架,用于大型图形的分布式处理?

Google已经描述了一种用于Massive Graphs的分布式处理的新颖框架.

http://portal.acm.org/citation.cfm?id=1582716.1582723

我想知道是否有类似于Hadoop(Map-Reduce)的这个框架的任何开源实现?

我实际上正在使用python和多处理模块编写一个伪分布的,因此想知道其他人是否也尝试过实现它.由于关于这个框架的公共信息非常稀缺.(上面的链接和Google Research的博客文章)

language-agnostic hadoop graph distributed-computing

21
推荐指数
2
解决办法
4571
查看次数

活动任务是Spark UI中的负数

当使用,我看到了这个:

在此输入图像描述

您可以看到活动任务是否为负数(总任务与已完成任务的差异).

这个错误的来源是什么?


节点我有很多执行者.但是,似乎有一项任务似乎已经空闲(我没有看到任何进展),而另一项相同的任务正常完成.


这也是相关的:邮件我可以确认正在创建许多任务,因为我使用的是1k或2k执行程序.

我得到的错误有点不同:

16/08/15 20:03:38 ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListeners is too slow and cannot keep up with the rate at which tasks are being started by the scheduler.
16/08/15 20:07:18 WARN TaskSetManager: Lost task 20652.0 in stage 4.0 (TID 116652, myfoo.com): FetchFailed(BlockManagerId(61, mybar.com, 7337), shuffleId=0, mapId=328, reduceId=20652, message=
org.apache.spark.shuffle.FetchFailedException: java.util.concurrent.TimeoutException: Timeout waiting for …
Run Code Online (Sandbox Code Playgroud)

python hadoop distributed-computing bigdata apache-spark

21
推荐指数
2
解决办法
2361
查看次数