He instalado ElasticSearch en Mac OS X uso de Homebrew. Funciona. El clúster se inició con la «verde» salud. Sin embargo, justo después de la adición de los datos, se ha ido a «amarillo».

El clúster de la salud es el estado es: verde, amarillo o rojo. En el fragmento de nivel, un estado rojo indica que el fragmento no está asignada en el clúster, el amarillo significa que el primer fragmento está asignado, pero las réplicas no son, y el color verde significa que todos los fragmentos son asignados. El nivel del índice de estado es controlado por el peor de los fragmentos de estado. El estado del grupo es controlado por el peor índice de estado.

Por lo tanto, mi réplica fragmentos no están asignados. ¿Cómo puedo asignar ellos? (Estoy pensando en voz alta.)

De acuerdo a Shay en «Sigo recibiendo clúster estado de salud de los Amarillos»: «el fragmento mecanismo de asignación de no asignar un fragmento y su réplica en el mismo nodo, aunque no asignar diferentes fragmentos en el mismo nodo. Así, se necesita de dos nodos para obtener estado del clúster de verde.»

Por lo tanto, necesito para iniciar un segundo nodo. Hice esto:

cd ~/Library/LaunchAgents/
cp homebrew.mxcl.elasticsearch.plist homebrew.mxcl.elasticsearch-2.plist 
# cambiar la línea 8: homebrew.mxcl.elasticsearch-2 
launchctl load-wF ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch-2.plist 

Ahora tengo «Korvus» en http://localhost:9200/ y «Iron Monger» en http://localhost:9201/. Woot. Pero, yo no veo ningún indicio de que saben el uno del otro. ¿Cómo puedo conectar /presentarlos?

Nota: he leído Zen Descubrimiento, pero no se siente iluminado todavía.

Actualización 2012-08-13 11:30 PM EST:

Aquí están mis dos nodos:

curl "http://localhost:9200/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

curl "http://localhost:9201/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

Actualización 2012-08-13 11:35 PM EST:

Para aclarar, mi pregunta es no cómo «ignorar» el problema mediante el establecimiento de index.number_of_replicas: 0. Quiero múltiples nodos, conectados.

Actualización 2012-08-13 11:48 PM EST:

Me acaba de publicar un doble gist que incluye elasticsearch.yml y elasticsearch_david.registro de. A mí me parece que ambos nodos se llaman a sí mismos ‘maestro’. Es que lo que debo esperar?

Actualización 2012-08-14 12:36 AM EST:

Y la novela sigue! 🙂 Si me desconecte de mi Mac de todas las redes externas y, a continuación, reinicie los nodos, luego se encuentran entre sí. Doble Woot. Esto me hace pensar que el problema es con mi red/configuración de multidifusión. Actualmente tengo esto en mi config: network.host: 127.0.0.1. Tal vez esto no es correcto?

OriginalEl autor David J. | 2012-08-14

3 Comentarios

  1. 19

    Resuelto. No utilice network.host: 127.0.0.1. Deje esa línea, comentó a dejar que se derivan automáticamente.

    El valor predeterminado elasticsearch.yml era correcta. Un configuración de ajustar por el Homebrew instalador especifica el 127.0.0.1 interfaz de bucle invertido:

    # Set up ElasticSearch for local development:
    inreplace "#{prefix}/config/elasticsearch.yml" do |s|
      # ...
      # 3. Bind to loopback IP for laptops roaming different networks
      s.gsub! /#\s*network\.host\: [^\n]+/, "network.host: 127.0.0.1"
    end
    

    He presentado un problema en el Homebrew issue tracker.

    Que extraño. Se debe trabajar con 127.0.0.1. Podría publicar los archivos de registro con el descubrimiento y el monitor.de la red a nivel de SEGUIMIENTO en algún lugar?

    OriginalEl autor David J.

  2. 13

    Como usted bien notó el grupo llegó a ser de color amarillo porque se ha creado un índice con las réplicas, pero solamente tenía un nodo en el clúster. Una manera de resolver este problema es mediante la asignación de los mismos en un segundo nodo. Otra forma es mediante el giro de réplicas de apagado. El número de réplicas se puede especificar durante la creación de índices. El siguiente comando para crear un nuevo índice con el nombre de new-index-name con 1 fragmento y no réplicas.

    curl -XPUT 'localhost:9200/new-index-name' -d '
    {
        "settings": {
            "index" : {
                "number_of_shards" : 1,
                "number_of_replicas" : 0
            }
        }
    }
    '
    

    También es posible cambiar el número de réplicas después de que el índice ya fue creado mediante Los índices de Actualización de la Configuración de la API. El siguiente comando para cambiar el número de réplicas a 0 para todos los índices clúster:

    curl -XPUT 'localhost:9200/_settings' -d '
    {
        "index" : {
            "number_of_replicas" : 0
        }
    }
    '
    

    Puede comprobar que los nodos encontraron el uno al otro mediante la ejecución de clúster de la salud de comando:

    $ curl "http://localhost:9200/_cluster/health?pretty=true"
    {
      "cluster_name" : "elasticsearch",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 2,
      "number_of_data_nodes" : 2,
      "active_primary_shards" : 30,
      "active_shards" : 55,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0
    } 
    

    Aquí la línea "number_of_data_nodes" : 2, indica que mi grupo consiste de dos nodos, significa que se encontraron el uno al otro. También puede ejecutar Los Nodos Info comando para ver los nodos del clúster se compone de:

    curl "http://localhost:9200/_cluster/nodes?pretty=true"
    
    Quiero correr con una o más réplicas, así que familiarizarse con las que el programa de instalación. El problema es este: ¿cómo puedo llegar a encontrar a llegar a otros? ¿Cuáles son los pasos de solución de problemas?
    Podría publicar los registros de ambos servidores y elasticsearch.yml archivo?
    Yo lo hice, gracias por echar un vistazo.
    Todo parece bien. Podría ser mal momento. Ambos servidores se iniciaron en casi exactamente el mismo tiempo. Pruebe a iniciar un servidor, espere a llegar a la {0.19.8}[20082]: started línea y, a continuación, iniciar otro.
    Hmmm. No me parece que la lógica persuasiva — nodos necesitan para empezar a horas similares y todavía enlace; por lo que no debe ser la causa de la raíz. Sólo para comprobar, me hizo kill X en uno y launchctl reinicia automáticamente. Pero son dos nodos separados. 🙁

    OriginalEl autor imotov

  3. 0

    Me he encontrado con el mismo problema. Cuando la red externa, los dos nodos (dos elasticsearch instancias se ejecutan con diferentes archivos yml:
    elasticsearch – config=/usr/local/opt/elasticsearch/config/elasticsearch.yml
    elasticsearch –config=/usr/local/opt/elasticsearch/config/elasticsearch-1.yml) no puede encontrar uno al otro, en primera instancia, es en el nivel amarillo, el segundo no tiene repllica sido asignada.

    Resuelto por:
    sudo route add -net 224.0.0.0/4 127.0.0.1

    con la referencia de:

    https://issues.jboss.org/browse/JGRP-1808

    OriginalEl autor Pointbreak

Dejar respuesta

Please enter your comment!
Please enter your name here