2014-10-02 13 views
5

Mam serwer z systemem Ubuntu 14.04 z 220 GB pamięci RAM, na którym chciałbym uruchomić elastyczne wyszukiwanie. Zgodnie z dokumentacją jeden węzeł nie powinien mieć więcej niż 32 GB pamięci RAM, więc sądzę, że muszę uruchomić kilka węzłów na tym komputerze, aby móc korzystać z całej tej pamięci RAM. Rozważam uruchomienie 4 węzłów z 28 GB pamięci dla każdego.Uruchom wiele elastycznych węzłów jako usługa na jednym serwerze Ubuntu

Jak ustawić to jako usługę ubuntu, tak aby wszystkie węzły automatycznie pojawiły się ponownie po ponownym uruchomieniu systemu? Chyba muszę w jakiś sposób edytować /etc/init.d/elasticsearch - czy ktoś może mi pomóc?

Dziękuję wam bardzo!

+0

Czy mogę zaproponować uruchomienie maszyn wirtualnych N (4?) I ustawienie ich jako węzłów? Możesz na przykład wykonać 10 maszyn z 20Gb, nie jestem pewien, czy jesteś bardziej wąski przez barana czy procesor. –

+0

Dzięki za pomysł! Jednak nie jestem pewien, czy nie tracę zbyt dużej mocy obliczeniowej i pojemności pamięci przez obciążenie konfiguracji VM ... serwer ma 8 1 TB SSD skonfigurowany jako RAID 10 i chciałby w pełni wykorzystać to też ... – user167172

Odpowiedz

3

Poddałem się po chwili, usunięto instalację repozytorium elasticsearch i pobrałem plik zip. Potem stworzyłem dwie nowe prace - wszystko jak dotąd działa sprawnie.

  1. Wrapper

    description "Start several ES-instances at once (this is a wrapper)." 

    start on (local-filesystems and net-device-up IFACE!=lo) 
    stop on runlevel [06] 
    respawn 

    # Give up respawn if restart occurs 5 times in 120 seconds 
    respawn limit 5 120 

    env NUM_INSTANCES=4 

    pre-start script 
     for i in $(seq 1 $NUM_INSTANCES) 
     do 
      start elasticsearch-instance ID=$i 
     done 
    end script 

    pre-stop script 
     curl -XPOST "http://localhost:9200/_cluster/nodes/_local/_shutdown" 
    end script 

  1. Przypadki

    description "starts up an elasticsearch instance (node)" 

    stop on stopping elasticsearch 
    respawn 

    instance $ID 

    limit nofile 64000 64000 

    setuid elasticsearch 
    setgid elasticsearch 

    env JAVA_OPTS="-XX:+UseCompressedOops" 
    env ES_HEAP_SIZE=28G 
    exec /data/elasticsearch/bin/elasticsearch -Des.config=/data/elasticsearch/config/elasticsearch.yml 
+1

Myślę, że powinieneś również rzucić okiem na ustawienie cluster.routing.allocation.same_shard.host. http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/heap-sizing.html#compressed_oops – slawek

2

Zakładając, że rpm lub deb stworzył skrypt init.d, aby uruchomić drugi węzeł na tym samym komputerze, wykonaj następujące czynności:

cd /etc/init.d 
cp --preserve elasticsearch elasticsearch2 

skrypt Edit elasticsearch2:

  1. zmiana # elasticsearch do # elasticsearch2
  2. add węzeł = "2" po linii prog = "elasticsearch"
  3. zmiana pidfile =/var/run/elasticsearch/$ {prog} .pid do pliku pidfile =/var/run/elasticsearch/$ {prog} $ {węzeł} .pid
  4. zmiana pliku blokującego =/var/lock/subsys/$ prog do pliku blokującego =/var/lock/subsys/$ prog $ node
  5. zmiana echo -n $ "Uruchamianie $ prog:" na echo -n $ "Uruchamianie progu $: (węzeł $ węzeł)"
  6. zmiana echa -n $ "Zatrzymywanie progu $:" na echo -n $ "Zatrzymywanie $ prog: (węzeł $ węzeł) "

Zapisz plik. Wykonanie

+1

Musiałem również dodać -Des.config = do działaj – JBernhardt

Powiązane problemy