spark-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adrian Tanase <>
Subject Re: Spark handling parallel requests
Date Mon, 19 Oct 2015 15:49:59 GMT
To answer your specific question, you can’t push data to Kafka through a socket – you need
a smart client library as the cluster setup is pretty advanced (also requires zookeeper).

I bet there are php libraries for Kafka although after a quick search it seems they’re still
pretty young. Also – Kafka shines at larger deployments and throughput (tens of thousands
to millions of events per second) and may be overkill for 100 events / sec.

Here are some other ideas:

  *   Use a lighter weight message broker like Rabbit MQ or MQTT – both have good integrations
with spark and should be simpler to integrate with PHP
  *   Instead of doing a socket call, log the event on disk – this opens up 2 strategies
     *   If you have access to shared storage, spark could read the files directly
     *   Otherwise, you could rely on something like Flume<>
that can poll your logs and forward them to spark (There is a default integration in the spark
external package)
  *   Lastly, why not try to build on one of the custom receivers<>?
There are plenty code samples in the docs and examples
     *   This may not be a good choice if you can’t afford to lose any messages – in this
case your life is harder as you’ll need to also use WAL based implementation

Hope this helps,

From: "<>"
Reply-To: "<>"
Date: Sunday, October 18, 2015 at 10:28 AM
To: Xiao Li, Akhil Das
Cc: "<>"
Subject: Re: Spark handling parallel requests

hi Akhlis

its a must to push data to a socket as i am using php as a web service to push data to socket
, then spark catch the data on that socket and process it , is there a way to push data from
php to kafka directly ?

--  Best Regards, -- Tarek Abouzeid

On Sunday, October 18, 2015 10:26 AM, "<>"
<<>> wrote:

hi Xiao,
1- requests are not similar at all , but they use solr and do commit sometimes
2- no caching is required
3- the throughput must be very high yeah , the requests are tiny but the system may receive
100 request/sec ,
does kafka support listening to a socket ?

--  Best Regards, -- Tarek Abouzeid

On Monday, October 12, 2015 10:50 AM, Xiao Li <<>>

Hi, Tarek,

It is hard to answer your question. Are these requests similar? Caching your results or intermediate
results in your applications? Or does that mean your throughput requirement is very high?
Throttling the number of concurrent requests? ...

As Akhil said, Kafka might help in your case. Otherwise, you need to read the designs or even
source codes of Kafka and Spark Streaming.

 Best wishes,

Xiao Li

2015-10-11 23:19 GMT-07:00 Akhil Das <<>>:
Instead of pushing your requests to the socket, why don't you push them to a Kafka or any
other message queue and use spark streaming to process them?

Best Regards

On Mon, Oct 5, 2015 at 6:46 PM, <<>>
Hi ,
i am using Scala , doing a socket program to catch multiple requests at same time and then
call a function which uses spark to handle each process , i have a multi-threaded server to
handle the multiple requests and pass each to spark , but there's a bottleneck as the spark
doesn't initialize a sub task for the new request , is it even possible to do parallel processing
using single spark job ?
Best Regards,

--  Best Regards, -- Tarek Abouzeid

View raw message