Elasticsearch之servicewrapper安裝

首先咱們看看Elasticsearch的啓動腳本:
  1. root@bicloud77 bin]# ./elasticsearch --help  
  2. Usage: ./elasticsearch [-vdh] [-p pidfile] [-D prop] [-X prop]  
  3. Start elasticsearch.  
  4.     -d            daemonize (run in background)  
  5.     -p pidfile    write PID to <pidfile>  
  6.     -h  
  7.     --help        print command line options  
  8.     -v            print elasticsearch version, then exit  
  9.     -D prop       set JAVA system property  
  10.     -X prop       set non-standard JAVA system property  
  11.    --prop=val  
  12.    --prop val     set elasticsearch property (i.e. -Des.<prop>=<val>)  

只能後臺啓動,沒有啓動,中止,重啓,查看狀態等命令,很是不方面管理。
 java

安裝servicewrapper

咱們在服務器環境下能夠使用elasticsearch-servicewrapper這個ES插件。下載地址是:https://github.com/elastic/elasticsearch-servicewrapper
下載完成後,將下來的項目的service目錄拷貝到elasticsearch的bin目錄中,而且設置service目錄下的elasticsearch文件的權限:git

  1. chmod a+x elasticsearch  


以下就是${ES_HOME}/bin/service/elasticsearch的使用說明:[java] view plain copygithub

  1. [root@bicloud77 service]# ./elasticsearch --help  
  2. Unexpected command: --help  
  3.   
  4. Usage: ./elasticsearch [ console | start | stop | restart | condrestart | status | install | remove | dump ]  
  5.   
  6. Commands:  
  7.   console      Launch in the current console.#控制檯啓動  
  8.   start        Start in the background as a daemon process.#後臺啓動  
  9.   stop         Stop if running as a daemon or in another console.#中止  
  10.   restart      Stop if running and then start.#重啓  
  11.   condrestart  Restart only if already running.#僅僅在已經運行的狀況下啓動  
  12.   status       Query the current status.#查看狀態  
  13.   install      Install to start automatically when system boots.  
  14.   remove       Uninstall.  
  15.   dump         Request a Java thread dump if running.  

 

servicewrapper配置文件

 

 

  1. [root@bicloud75 service]# pwd  
  2. /home/elasticsearch-1.4.0/bin/service  
  3. [root@bicloud75 service]# vi elasticsearch.conf   
  4.   
  5. set.default.ES_HOME=<Path to Elasticsearch Home>  
  6. set.default.ES_HEAP_SIZE=2048  //由於是測試機器,設置的內存比較少,服務器好的話,能夠設置大一些  
  7. set.default.ES_MIN_SIZE=2048  
  8. set.default.ES_MAX_SIZE=2048  
  9.   
  10. #Fish  
  11. #JVM參數Elasticsearch默認值Environment變量:  
  12. #-Xms      256m                         ES_MIN_MEM  
  13. #-Xmx      1g                           ES_MAX_MEM  
  14. #-Xms and -Xmx                          ES_HEAP_SIZE  
  15. #-Xmn                                           ES_HEAP_NEWSIZE  
  16. #-XX:MaxDirectMemorySize        ES_DIRECT_SIZE  
  17.   
  18. #********************************************************************  
  19. # Wrapper Timeout Properties  
  20. #********************************************************************  
  21. # How long to wait for the JVM to start (in seconds)  
  22. wrapper.startup.timeout=300  
  23. # How long to wait for the JVM to stop (in seconds)  
  24. wrapper.shutdown.timeout=300  
  25. # When a ping will timeout to consider the JVM hung (in seconds)  
  26. wrapper.ping.timeout=300  
  27.   
  28. #********************************************************************  
  29. # Wrapper Java Properties  
  30. #********************************************************************  
  31. # Java Application  
  32. wrapper.java.command=java  
  33.   
  34. # Tell the Wrapper to log the full generated Java command line.  
  35. #wrapper.java.command.loglevel=INFO  
  36.   
  37. wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp  
  38.   
  39. wrapper.working.dir=%ES_HOME%  
  40.   
  41. # Java Classpath (include wrapper.jar)  Add class path elements as  
  42. #  needed starting from 1  
  43. wrapper.java.classpath.1=%ES_HOME%/bin/service/lib/wrapper.jar  
  44. wrapper.java.classpath.2=%ES_HOME%/lib/elasticsearch*.jar  
  45. wrapper.java.classpath.3=%ES_HOME%/lib/*.jar  
  46. wrapper.java.classpath.4=%ES_HOME%/lib/sigar/*.jar  
  47.   
  48. # Java Library Path (location of Wrapper.DLL or libwrapper.so)  
  49. wrapper.java.library.path.1=%ES_HOME%/bin/service/lib  
  50.   
  51. # Java Bits.  On applicable platforms, tells the JVM to run in 32 or 64-bit mode.  
  52. wrapper.java.additional.auto_bits=TRUE  
  53.   
  54. # Java Additional Parameters  
  55. wrapper.java.additional.1=-Delasticsearch-service  
  56. wrapper.java.additional.2=-Des.path.home=%ES_HOME%  
  57. wrapper.java.additional.3=-Xss256k  
  58. wrapper.java.additional.4=-XX:+UseParNewGC  
  59. wrapper.java.additional.5=-XX:+UseConcMarkSweepGC  
  60.   
  61. # Initial Java Heap Size (in MB)  
  62. wrapper.java.initmemory=%ES_HEAP_SIZE%  
  63.   
  64. # Maximum Java Heap Size (in MB)  
  65. wrapper.java.maxmemory=%ES_HEAP_SIZE%  
  66. ...(更多)  

 

安裝問題總彙

[root@bicloud75 service]# sh ./elasticsearch start
: command not foundne 2: 
: command not foundne 4: 
: command not foundne 6: 
'/elasticsearch: line 138: syntax error near unexpected token `in
'/elasticsearch: line 138: `case $0 in
或者
[root@bicloud75service]# ./elasticsearch start
-bash: bin/service/elasticsearch: /bin/sh^M: bad interpreter: 沒有那個文件或目錄
 
在Linux中執行.sh腳本,異常/bin/sh^M: bad interpreter: No such file or directory。 

分析:這是不一樣系統編碼格式引發的:在windows系統中編輯的.sh文件可能有不可見字符,因此在Linux系統下執行會報以上異常信息。

解決:1)在windows下轉換: 
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式以下(UltraEdit):File-->Conversions-->DOS->UNIX便可。
若是是 Notepad++ 則是在:  編輯 -> EOL Conversion -> 轉換爲 UNIX 格式  中。

2)也可在Linux中轉換: 
首先要確保文件有可執行權限 
#sh>chmod a+x filename 

而後修改文件格式 
#sh>vi filename 

利用以下命令查看文件格式 
:set ff 或 :set fileformat 

能夠看到以下信息 
fileformat=dos 或 fileformat=unix 

利用以下命令修改文件格式 
:set ff=unix 或 :set fileformat=unix 

:wq (存盤退出) 

最後再執行文件 
#sh>./filename
 
修改步驟:
vi elasticsearch
按esc
輸入(:set ff=unix)
再按esc
再輸入(:wq)
相關文章
相關標籤/搜索