{"id":1526,"date":"2024-09-17T14:59:35","date_gmt":"2024-09-17T12:59:35","guid":{"rendered":"https:\/\/spgoo.org\/?page_id=1526"},"modified":"2024-09-17T15:44:03","modified_gmt":"2024-09-17T13:44:03","slug":"clutser-neo4j","status":"publish","type":"page","link":"https:\/\/spgoo.org\/?page_id=1526","title":{"rendered":"Cluster &#8211; Neo4j"},"content":{"rendered":"\n<p>Fiche de configuration d&#8217;un cluster dans le cadre d&#8217;EMOLGINE 2024 <\/p>\n\n\n\n<p>Dans le cadre du projet Emolgine, nous allons mettre en oeuvre un cluster <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span> afin d&#8217;estimer les besoins n\u00e9cessaires \u00e0 la manipulation de quelques milliards de mol\u00e9cules. L&#8217;architecture mise en place est compos\u00e9e de trois VMs de 60 Go de disque et de 16 Go de Ram avec 4 cores sur un r\u00e9seau d\u00e9di\u00e9 192.168.100.0\/24.  <\/p>\n\n\n\n<p>Installation de 3&nbsp;Vms de 16 Go et 4 cores avec Ubuntu 24.04 avec arborescence suivante <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"314\" src=\"https:\/\/spgoo.org\/wp-content\/uploads\/2024\/09\/architecture_cluster_neo4j_v1.png\" alt=\"\" class=\"wp-image-1556\" style=\"width:608px;height:auto\" srcset=\"https:\/\/spgoo.org\/wp-content\/uploads\/2024\/09\/architecture_cluster_neo4j_v1.png 905w, https:\/\/spgoo.org\/wp-content\/uploads\/2024\/09\/architecture_cluster_neo4j_v1-300x104.png 300w, https:\/\/spgoo.org\/wp-content\/uploads\/2024\/09\/architecture_cluster_neo4j_v1-768x266.png 768w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/figure>\n<\/div>\n\n\n<p>Arborescence des fichiers sur chaque machine.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span><br>R\u00e9pertoire contenant l&#8217;archive de la version community<br><br>R\u00e9pertoire contenant les fichiers de param\u00e9trage de <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span><br><br><br>Script de lancement de l&#8217;instance <br>Script de chargement de la base <br>R\u00e9pertoire qui va contenir les fichiers des bases<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code><span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\n\u251c\u2500\u2500 \/backups\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>.dump\n\u251c\u2500\u2500 \/conf \n\u2502\u00a0\u00a0 \u251c\u2500\u2500 <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>-admin.conf\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>.conf\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 server-logs.xml\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 user-logs.xml\n\u251c\u2500\u2500 lance_conf.sh  \n\u251c\u2500\u2500 lance_load.sh  \n\u251c\u2500\u2500 \/newdata <\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Script de&nbsp;d\u00e9marrage des instances de <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span> enterprise 5.23.0 : lance_conf.sh<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code has-small-font-size\"><code>!#\/bin\/bash\ndocker run --name=server1 -d \\\n--network=host \\\n-p 7474:7474 -p 7687:7687 \\\n-p 5000:5000 -p 6000:6000 -p 7000:7000 \\\n--hostname=192.168.100.220 \\\n--env <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>_ACCEPT_LICENSE_AGREEMENT=eval \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/newdata:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/data \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf \\\n<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>:5.23.0-enterprise<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code has-small-font-size\"><code>!#\/bin\/bash\ndocker run --name=server1 -d \\\n--network=host \\\n-p 7474:7474 -p 7687:7687 \\\n-p 5000:5000 -p 6000:6000 -p 7000:7000 \\\n--hostname=192.168.100.221 \\\n--env <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>_ACCEPT_LICENSE_AGREEMENT=eval \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/newdata:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/data \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf \\\n<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>:5.23.0-enterprise<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code has-small-font-size\"><code>!#\/bin\/bash\ndocker run --name=server1 -d \\\n--network=host \\\n-p 7474:7474 -p 7687:7687 \\\n-p 5000:5000 -p 6000:6000 -p 7000:7000 \\\n--hostname=192.168.100.222 \\\n--env <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>_ACCEPT_LICENSE_AGREEMENT=eval \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/newdata:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/data \\\n-v \/home\/ystroppa\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf:\/var\/lib\/<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\/conf \\\n<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>:5.23.0-enterprise<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Contenu du fichier \/conf  4 fichiers <\/p>\n\n\n\n<p><span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>-admin.conf : par d\u00e9faut<\/p>\n\n\n\n<p>server-logs.xml: par d\u00e9faut<\/p>\n\n\n\n<p>user-logs.xml: par d\u00e9faut<\/p>\n\n\n\n<p><span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>.conf  (adaptation \u00e0&nbsp;notre contexte)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server.directories.import=import\nserver.bolt.enabled=true\nserver.http.enabled=true\nserver.https.enabled=false\nserver.metrics.csv.rotation.compression=zip\ndb.tx_log.rotation.retention_policy=2 days 2G\nserver.jvm.additional=-XX:+UseG1GC\nserver.jvm.additional=-XX:-OmitStackTraceInFastThrow\nserver.jvm.additional=-XX:+AlwaysPreTouch\nserver.jvm.additional=-XX:+UnlockExperimentalVMOptions\nserver.jvm.additional=-XX:+TrustFinalNonStaticFields\nserver.jvm.additional=-XX:+DisableExplicitGC\nserver.jvm.additional=-XX:-RestrictContended\nserver.jvm.additional=-Djdk.nio.maxCachedBufferSize=1024\nserver.jvm.additional=-Dio.netty.tryReflectionSetAccessible=true\nserver.jvm.additional=-Djdk.tls.ephemeralDHKeySize=2048\nserver.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true\nserver.jvm.additional=-XX:FlightRecorderOptions=stackdepth=256\nserver.jvm.additional=-XX:+UnlockDiagnosticVMOptions\nserver.jvm.additional=-XX:+DebugNonSafepoints\nserver.jvm.additional=--add-opens=java.base\/java.nio=ALL-UNNAMED\nserver.jvm.additional=--add-opens=java.base\/java.io=ALL-UNNAMED\nserver.jvm.additional=--add-opens=java.base\/sun.nio.ch=ALL-UNNAMED\nserver.jvm.additional=--enable-native-access=ALL-UNNAMED\nserver.jvm.additional=-Dlog4j2.disable.jmx=true\nserver.windows_service_name=<span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>\nserver.memory.pagecache.size=512M\nserver.default_listen_address=0.0.0.0\nserver.default_advertised_address=192.168.100.221\ndbms.cluster.discovery.v2.endpoints=192.168.100.220:6000,192.168.100.221:6000192.168.100.222:6000\ndbms.cluster.discovery.version=V2_ONLY\ninitial.dbms.default_primaries_count=3\nserver.cluster.advertised_address=192.168.100.221:6000\nserver.cluster.raft.advertised_address=192.168.100.221:7000\nserver.routing.advertised_address=192.168.100.221:7688\nserver.discovery.advertised_address=192.168.100.221:6000\nserver.directories.logs=\/logs<\/code><\/pre>\n\n\n\n<p>Chargement de la base <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span> pour Emolgine au niveau du cluster \u00e0 l&#8217;aide du fichier .dump<\/p>\n\n\n\n<p>On proc\u00e8de de la m\u00eame fa\u00e7on que sur la version community. Sur chaque n\u0153ud du serveur on ex\u00e9cute la script lance_load.sh qui consiste \u00e0 d\u00e9marrer un conteneur et d&#8217;activer <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>-admin pour charger le fichier <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span>.dump. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>V\u00e9rification du fonctionnement<\/p>\n\n\n\n<p>netstat -a |more et l&#8217;utilisation de cypher-shell pour se connecter sur les instances du cluster. <\/p>\n\n\n\n<p><\/p>\n<script type=\"text\/javascript\"> toolTips('.classtoolTips5','<a style=\"text-decoration: none;\" href=\"https:\/\/neo4j.com\/\"><img style=\"width: 180px; height: 50px;\" src=\"\/wp-content\/uploads\/2025\/01\/Neo4j-logo_color.png\" \/><\/a>'); <\/script>","protected":false},"excerpt":{"rendered":"<p>Fiche de configuration d&#8217;un cluster dans le cadre d&#8217;EMOLGINE 2024 Dans le cadre du projet Emolgine, nous allons mettre en oeuvre un cluster Neo4J afin d&#8217;estimer les besoins n\u00e9cessaires \u00e0 la manipulation de quelques milliards de mol\u00e9cules. L&#8217;architecture mise en place est compos\u00e9e de trois VMs de 60 Go de disque et de 16 Go [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1526","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/1526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1526"}],"version-history":[{"count":27,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/1526\/revisions"}],"predecessor-version":[{"id":4461,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/1526\/revisions\/4461"}],"wp:attachment":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}