I am currently trying a few code changes to see if I can squash this
error. I have created https://issues.apache.org/jira/browse/SPARK-11193
to track progress, hope that is okay!
In the meantime, can anyone confirm their ability to run the Kinesis-ASL
example using Spark > 1.5.x ? Would be helpful to know if it works in
some cases but not others.
http://spark.apache.org/docs/1.5.1/streaming-kinesis-integration.html
Thanks
Phil
On Thu, Oct 15, 2015 at 10:35 PM, Jean-Baptiste Onofré <j...@nanthrax.net
<mailto:j...@nanthrax.net>> wrote:
Hi Phil,
sorry I didn't have time to investigate yesterday (I was on a couple
of other Apache projects ;)). I will try to do it today. I keep you
posted.
Regards
JB
On 10/16/2015 07:21 AM, Phil Kallos wrote:
JB,
To clarify, you are able to run the Amazon Kinesis example
provided in
the spark examples dir?
bin/run-example streaming.KinesisWordCountASL [app name] [stream
name]
[endpoint url] ?
If it helps, below are the steps I used to build spark
mvn -Pyarn -Pkinesis-asl -Phadoop-2.6 -DskipTests clean package
And I did this with revision
4f894dd6906311cb57add6757690069a18078783
(v.1.5.1)
Thanks,
Phil
On Thu, Oct 15, 2015 at 2:31 AM, Eugen Cepoi
<cepoi.eu...@gmail.com <mailto:cepoi.eu...@gmail.com>
<mailto:cepoi.eu...@gmail.com <mailto:cepoi.eu...@gmail.com>>>
wrote:
So running it using spark-submit doesnt change anything, it
still works.
When reading the code
https://github.com/apache/spark/blob/branch-1.5/streaming/src/main/scala/org/apache/spark/streaming/scheduler/ReceiverTracker.scala#L100
it looks like the receivers are definitely being ser/de. I
think
this is the issue, need to find a way to confirm that now...
2015-10-15 16:12 GMT+07:00 Eugen Cepoi
<cepoi.eu...@gmail.com <mailto:cepoi.eu...@gmail.com>
<mailto:cepoi.eu...@gmail.com
<mailto:cepoi.eu...@gmail.com>>>:
Hey,
A quick update on other things that have been tested.
When looking at the compiled code of the
spark-streaming-kinesis-asl jar everything looks normal
(there
is a class that implements SyncMap and it is used
inside the
receiver).
Starting a spark shell and using introspection to
instantiate a
receiver and check that blockIdToSeqNumRanges
implements SyncMap
works too. So obviously it has the correct type
according to that.
Another thing to test could be to do the same
introspection
stuff but inside a spark job to make sure it is not a
problem in
the way the jobs are run.
The other idea would be that this is a problem
related to
ser/de. For example if the receiver was being
serialized and
then deserialized it could definitely happen depending
on the
lib used and its configuration that it just doesn't
preserve the
concrete type. So it would deserialize using the
compile type
instead of the runtime type.
Cheers,
Eugen
2015-10-15 13:41 GMT+07:00 Jean-Baptiste Onofré
<j...@nanthrax.net <mailto:j...@nanthrax.net>
<mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>>>:
Thanks for the update Phil.
I'm preparing a environment to reproduce it.
I keep you posted.
Thanks again,
Regards
JB
On 10/15/2015 08:36 AM, Phil Kallos wrote:
Not a dumb question, but yes I updated all of
the
library references to
1.5, including (even tried 1.5.1).
// Versions.spark set elsewhere to "1.5.0"
"org.apache.spark" %%
"spark-streaming-kinesis-asl" %
Versions.spark %
"provided"
I am experiencing the issue in my own spark
project, but
also when I try
to run the spark streaming kinesis example that
comes in
spark/examples
Tried running the streaming job locally, and
also in EMR
with release
4.1.0 that includes Spark 1.5
Very strange!
---------- Forwarded message ----------
From: "Jean-Baptiste Onofré"
<j...@nanthrax.net <mailto:j...@nanthrax.net>
<mailto:j...@nanthrax.net
<mailto:j...@nanthrax.net>> <mailto:j...@nanthrax.net
<mailto:j...@nanthrax.net>
<mailto:j...@nanthrax.net
<mailto:j...@nanthrax.net>>>>
To: user@spark.apache.org
<mailto:user@spark.apache.org>
<mailto:user@spark.apache.org
<mailto:user@spark.apache.org>>
<mailto:user@spark.apache.org
<mailto:user@spark.apache.org>
<mailto:user@spark.apache.org
<mailto:user@spark.apache.org>>>
Cc:
Date: Thu, 15 Oct 2015 08:03:55 +0200
Subject: Re: Spark 1.5 Streaming and
Kinesis
Hi Phil,
KinesisReceiver is part of extra. Just a
dumb
question: did you
update all, including the Spark Kinesis
extra
containing the
KinesisReceiver ?
I checked on tag v1.5.0, and at line 175
of the
KinesisReceiver, we see:
blockIdToSeqNumRanges.clear()
which is a:
private val blockIdToSeqNumRanges = new
mutable.HashMap[StreamBlockId,
SequenceNumberRanges]
with
mutable.SynchronizedMap[StreamBlockId,
SequenceNumberRanges]
So, it doesn't look fully correct to me.
Let me investigate a bit this morning.
Regards
JB
On 10/15/2015 07:49 AM, Phil Kallos wrote:
We are trying to migrate from Spark1.4 to
Spark1.5
for our Kinesis
streaming applications, to take advantage
of the
new Kinesis
checkpointing improvements in 1.5.
However after upgrading, we are
consistently seeing
the following error:
java.lang.ClassCastException:
scala.collection.mutable.HashMap cannot be
cast to
scala.collection.mutable.SynchronizedMap
at
org.apache.spark.streaming.kinesis.KinesisReceiver.onStart(KinesisReceiver.scala:175)
at
org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:148)
at
org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:130)
at
org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:542)
at
org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:532)
at
org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1984)
at
org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1984)
at
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at
org.apache.spark.scheduler.Task.run(Task.scala:88)
at
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
I even get this when running the Kinesis
examples :
http://spark.apache.org/docs/latest/streaming-kinesis-integration.html
with
bin/run-example
streaming.KinesisWordCountASL
Am I doing something incorrect?
--
Jean-Baptiste Onofré
jbono...@apache.org <mailto:jbono...@apache.org>
<mailto:jbono...@apache.org <mailto:jbono...@apache.org>>
<mailto:jbono...@apache.org
<mailto:jbono...@apache.org> <mailto:jbono...@apache.org
<mailto:jbono...@apache.org>>>
http://blog.nanthrax.net <http://blog.nanthrax.net/>
Talend - http://www.talend.com
<http://www.talend.com/>
Hi,
--
Jean-Baptiste Onofré
jbono...@apache.org <mailto:jbono...@apache.org>
<mailto:jbono...@apache.org <mailto:jbono...@apache.org>>
http://blog.nanthrax.net
Talend - http://www.talend.com
---------------------------------------------------------------------
To unsubscribe, e-mail:
user-unsubscr...@spark.apache.org
<mailto:user-unsubscr...@spark.apache.org>
<mailto:user-unsubscr...@spark.apache.org
<mailto:user-unsubscr...@spark.apache.org>>
For additional commands, e-mail:
user-h...@spark.apache.org <mailto:user-h...@spark.apache.org>
<mailto:user-h...@spark.apache.org
<mailto:user-h...@spark.apache.org>>
--
Jean-Baptiste Onofré
jbono...@apache.org <mailto:jbono...@apache.org>
http://blog.nanthrax.net
Talend - http://www.talend.com