java - أعد تشغيل عقدة elasticsearch




scala (4)

هناك واجهة برمجة تطبيقات لإعادة التشغيل مشابهة لـ API shutdown . مجرد استبدال "اغلاق" مع "إعادة تشغيل". انظر أيضا القضية على جيثب .

ما هي الطريقة الصحيحة لإعادة تشغيل عقدة في elasticsearch؟ (من المفضل عبر واجهة برمجة تطبيقات REST ، فقد تكون واجهة برمجة تطبيقات جافا جيدة أيضًا)


الطريقة الصحيحة لإعادة تشغيل العقدة هي إغلاقها ، إما باستخدام واجهة برمجة التطبيقات لإيقاف التشغيل أو إرسال إشارة TERM إلى العملية (على سبيل المثال مع kill $PID ).

بمجرد إيقاف التشغيل ، يمكنك بدء عقدة جديدة باستخدام كل ما تستخدمه لتشغيل elasticsearch ، مثل غلاف الخدمة ، أو مجرد بدء تشغيله من سطر الأوامر.

إذا كنت تستخدم غلاف الخدمة ، فيمكنك إعادة تشغيل عقدة بتمريرها أمر restart : على سبيل المثال ، /etc/init.d/elasticsearch restart ولكن هذا مجرد غلاف ملائم لما سبق.

تم تعطيل واجهة برمجة تطبيقات restart منذ الإصدار 0.11 نظرًا لأنه كان يمثل مشكلة.


في كل مرة تنقطع فيها العقدة و / أو ستظهر عقدة جديدة ، تقوم الكتلة بإعادة توزيع القطع ، والتي قد لا تكون مرغوبة عندما تحتاج فقط إلى إعادة تشغيل عقدة ، وبالتالي يمكنك الاستفادة من إعادة التشغيل:

  1. أولا تعطيل توزيع القطع:

    PUT / _cluster / settings {"transient": {"cluster.routing.allocation.enable": "none"}}

  2. إعادة تشغيل service elasticsearch restart العقدة

  3. تمكين توزيع القطع:

    PUT / _cluster / settings {"transient": {"cluster.routing.allocation.enable": "all"}}

المزيد عن هذا: Here


Map<String, String> map = ...
for (Map.Entry<String, String> entry : map.entrySet())
{
    System.out.println(entry.getKey() + "/" + entry.getValue());
}






java scala elasticsearch