Affichage d'un faible nombre d'écritures dans elasticsearch à l'aide de spark java.Problème de performance d'écriture Spark + Elastic search
Voici les configurations
utilisant 13.xlarge machines pour le cluster ES
4 instances each have 4 processors.
Set refresh interval to -1 and replications to '0' and other basic
configurations required for better writing.
Spark:
2 nœud de cluster DME avec
2 Core instances
- 8 vCPU, 16 GiB memory, EBS only storage
- EBS Storage:1000 GiB
1 Master node
- 1 vCPU, 3.8 GiB memory, 410 SSD GB storage
index ES a 16 tessons défini dans la cartographie.
ayant en dessous de config quand le travail en cours d'exécution,
executor-memory - 8g
spark.executor.instances=2
spark.executor.cores=4
et en utilisant
es.batch.size.bytes - 6MB
es.batch.size.entries - 10000
es.batch.write.refresh - false
avec cette configuration, j'essaie de charger des documents 1million (chaque document a une taille de 1300 octets), il fait la charge à 500 enregistrements/docs par nœuds ES.
et dans le journal d'allumage Voit chaque tâche
-1116 bytes result sent to driver
Code Spark
JavaRDD<String> javaRDD = jsc.textFile("<S3 Path>");
JavaEsSpark.saveJsonToEs(javaRDD,"<Index name>");
Aussi quand je regarde le graphique de-réseau dans le cluster ES, il est très faible, et je vois EMR n'envoie pas d'énormes données sur un réseau. Est-ce que je peux dire à Spark d'envoyer un bon nombre de données pour que l'écriture soit plus rapide?
OU
Y at-il autre config que je manque à modifier. Cause Je vois 500docs par seconde par instance es est plus faible. Quelqu'un peut-il s'il vous plaît guider ce me manque avec ces paramètres pour améliorer mes performances es écrire
Merci à l'avance
Dans votre répertoire s3, lisez-vous un seul fichier ou plusieurs fichiers? –
en utilisant de nombreux fichiers – camelBeginner