2014-06-25 3 views
0

J'ai mis en place un cluster Cassandra à deux (2) nœuds et j'essaie d'effectuer des requêtes à l'aide de requin. Mais cela prend environ 10 minutes pour une requête. Mais la requête fonctionne bien. (Je Cloudera pour installer le logiciel pour moi)Interroger Cassandra en utilisant Shark prend trop de temps

Time taken: 421.189 seconds 
shark> 

J'ai essayé de régler le requin en changeant certains paramètres (augmentant le: SPARK_MEM et SHARK_MASTER_MEM) dans le /opt/requin/shark/conf/shark- env.sh. Mais n'était pas une chance.

Très apprécié si quelqu'un peut me donner aucune idée de cette lenteur?
Voici la liste des versions que j'ai installé pour différents logiciels impliqués:

Cassandra: 2.0.8
Shark: requin-0.9.1-bin-cdh4.6.0-fe75a886
Spark: SPARK-0.9.0-1.cdh4.6.0.p0.98
Hadoop: 2.0.0-cdh4.7.0

Spec Matériel:
RAM: 256 Go
CPU: 2x Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz (Total 20 cœurs avec HT)

+0

Savez-vous où le temps est passé? Est-ce Spark/Shark ou Cassandra? –

+0

Merci pour votre réponse. Non je ne sais pas exactement car il y a beaucoup de composants impliqués (Cassandra, étincelle, requin). – Tharanga

+0

En général, si vous avez un problème de performances, vous devez en déterminer la source. Exécuter 'top'? Essayez 'visualvm'? Ou espérons que quelqu'un sur Stack Overflow est clairvoyant :). –

Répondre

0

Désolé, ne peut pas commenter. Ce n'est pas une réponse, mais quelques réflexions sur le problème. J'ai également rencontré un problème similaire, mais en testant la configuration locale avec un nœud Cassandra. La requête la plus simple à la table à 10 lignes

cqlsh:db> SELECT * FROM table; 

prend moins d'une seconde dans le shell CQL.

Mais chez les requins cela prend environ 10 secondes.

shark> USE db; SELECT * FROM table; 
... 
Time taken: 11.274 seconds 

Il est bin/shark-withinfo exécutable dir requin, qui donne des informations à la demande. Peut-être que cela éclairera votre cas. Dans mon cas, il est dit qu'une énorme quantité de tâches est faite pour traiter ma demande. Donc, je devine que le boulanger mange la plupart du temps, mais je ne suis pas tout à fait sûr

... 
14/07/09 17:35:19 INFO scheduler.TaskSetManager: Starting task 0.0:255 as TID 255 on executor localhost: localhost (PROCESS_LOCAL) 
14/07/09 17:35:19 INFO scheduler.TaskSetManager: Serialized task 0.0:255 as 5456 bytes in 0 ms 
14/07/09 17:35:19 INFO executor.Executor: Running task ID 255 
14/07/09 17:35:19 INFO scheduler.TaskSetManager: Finished TID 254 in 30 ms on localhost (progress: 255/257) 
14/07/09 17:35:19 INFO scheduler.DAGScheduler: Completed ResultTask(0, 254) 
14/07/09 17:35:19 INFO storage.BlockManager: Found block broadcast_0 locally 
14/07/09 17:35:19 INFO rdd.HadoopRDD: Input split: localhost 9160 org.apache.cassandra.dht.Murmur3Partitioner 
14/07/09 17:35:19 INFO cql.HiveCqlInputFormat: Validators : null 
14/07/09 17:35:19 INFO exec.FileSinkOperator: Initializing Self 260 FS 
14/07/09 17:35:19 INFO exec.FileSinkOperator: Operator 260 FS initialized 
14/07/09 17:35:19 INFO exec.FileSinkOperator: Initialization Done 260 FS 
14/07/09 17:35:19 INFO exec.FileSinkOperator: Final Path: FS file:... 
14/07/09 17:35:19 INFO exec.FileSinkOperator: Writing to temp file: ... 
14/07/09 17:35:19 INFO exec.FileSinkOperator: New Final Path: ... 
14/07/09 17:35:19 INFO executor.Executor: Serialized size of result for 255 is 563 
14/07/09 17:35:19 INFO executor.Executor: Sending result for 255 directly to driver 
14/07/09 17:35:19 INFO executor.Executor: Finished task ID 255 
...