小编Dan*_*bos的帖子

使用HAProxy负载平衡与Tornado应用程序的WebSocket连接?

我正在使用一个使用websocket处理程序的Tornado应用程序.我正在使用Supervisord运行应用程序的多个实例,但是我无法平衡websocket连接.

我知道nginx不支持处理开箱即用的websockets,但我按照http://www.letseehere.com/reverse-proxy-web-sockets中的说明使用nginx tcp_proxy模块来反转代理websocket连接.但是,这不起作用,因为模块无法路由websocket url(例如:ws:// localhost:80/something).所以它不适用于我在Tornado应用程序中定义的URL路由.

从我对网络的研究来看,似乎HAProxy是对我的websocket连接进行负载均衡的方法.但是,我很难找到任何体面的指导来设置HAProxy来加载平衡websocket连接,并且还能够处理websocket URL路由.

我真的很感激有关如何实现这一目标的一些详细指示.我也完全接受其他解决方案.

proxy nginx tornado haproxy websocket

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

查询EC2实例类型属性

有没有办法从命令行aws工具获取实例类型的内核数量和内存量?

基本上我想以编程方式访问http://aws.amazon.com/ec2/instance-types/上的数据.

amazon-ec2 amazon-web-services ec2-api-tools

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

Spark:如何向Spark foreach函数发送参数

我试图使用以下代码将Spark RDD的内容保存到Redis

import redis
class RedisStorageAdapter(BaseStorageAdapter):
    @staticmethod
    def save(record):

        ###--- How do I get action_name ---- ###
        redis_key = #<self.source_action_name>
        redis_host=settings['REDIS']['HOST']
        redis_port=settings['REDIS']['PORT']
        redis_db=settings['REDIS']['DB']

        redis_client = redis.StrictRedis(redis_host, redis_port, redis_db)
        redis_client.sadd(redis_key, record)

    def store_output(self, results_rdd):

        print self.source_action_name
        results_rdd.foreach(RedisStorageAdapter.save)
Run Code Online (Sandbox Code Playgroud)

但我想根据self.source_action_name初始化的内容(在BaseStorageAdapter中)使Redis Key不同

如何将source_action_name传递给RedisStorageAdapter.save函数?foreach函数只允许执行函数的名称而不允许参数列表

另外 - 如果有更好的方法将数据从RDD移动到Redis,请告诉我

redis apache-spark pyspark

2
推荐指数
1
解决办法
2839
查看次数

无法使用不等数量的分区压缩RDD

现在我有3个这样的RDD:

RDD1集:

1 2
3 4
5 6
7 8
9 10
Run Code Online (Sandbox Code Playgroud)

RDD2:

11 12
13 14
Run Code Online (Sandbox Code Playgroud)

rdd3:

15 16
17 18
19 20
Run Code Online (Sandbox Code Playgroud)

我想这样做:

rdd1.zip(rdd2.union(rdd3))
Run Code Online (Sandbox Code Playgroud)

我希望结果是这样的:

1 2 11 12
3 4 13 14
5 6 15 16
7 8 17 18
9 10 19 20
Run Code Online (Sandbox Code Playgroud)

但我有这样的例外:

线程"main"中的异常java.lang.IllegalArgumentException:无法压缩具有不等分区数的RDD

有人告诉我,我可以毫无例外地做到这一点:

rdd1.zip(rdd2.union(rdd3).repartition(1))
Run Code Online (Sandbox Code Playgroud)

但似乎这只是一点点成本.所以我想知道是否有其他方法可以解决这个问题.

apache-spark rdd

2
推荐指数
1
解决办法
3015
查看次数

将RDD的Iterable [(String,Double)]更改为Array或List

我有一个,org.apache.spark.rdd.RDD[(String, (Double, Double), Iterable[(String, Double)])]但它似乎与Iterable努力工作.我有什么办法可以改成它Array[(String, Double)]吗?

scala apache-spark

2
推荐指数
1
解决办法
5236
查看次数

Spark RDD.saveAsTextFile是异步的

我有一个很大的RDD需要花费很多时间collect.我想让每个分区通过使用将其内容写入文本文件mapPartitionsWithIndex.但这不是一种异步方法.

有没有人知道如何异步写出RDD内容?

apache-spark

2
推荐指数
1
解决办法
937
查看次数