之前剛剛開始用 elasticsearch 的時候,記得是0.9版本,如今都2.0+了。html
再玩一下 elasticsearch 的新版本。2.2.0下載地址:點擊下載。java
下載後在 elasticsearch 根目錄下啓動。node
elasticsearch-2.2.0]# ./bin/elasticsearch
提示錯誤:git
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.
由於版本的問題,最新的版本安全級別提升了,不容許採用root賬號啓動,因此咱們要添加一個用戶。github
#添加一個用戶:elasticsearch $useradd elasticsearch #給用戶elasticsearch設置密碼,連續輸入2次 $passwd elasticsearch #建立一個用戶組 es groupadd es #分配 elasticsearch 到 es 組 usermod -G elasticsearch es #這裏注意下,若是提示用戶「es」不存在,那麼是由於服務器版本問題,你能夠換成 usermod -G es elasticsearch ,也就是用戶和用戶組對調一下使用。 #在elasticsearch 根目錄下,給定用戶權限。-R表示逐級(N層目錄) , * 表示 任何文件 chown -R elasticsearch.es * #切換到elasticsearch用戶 su elasticsearch
若是不按上面的給用戶 elasticsearch 分配權限目錄。那麼會報下面的錯。apache
java.io.FileNotFoundException: /home/es/elasticsearch-2.2.0/logs/elasticsearch.log (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:221) at java.io.FileOutputStream.(FileOutputStream.java:142) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) at org.elasticsearch.bootstrap.Bootstrap.setupLogging(Bootstrap.java:204) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:258) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) log4j:ERROR Either File or DatePattern options are not set for appender [file]. log4j:ERROR setFile(null,true) call failed.
修改配置文件:json
$ vi config/elasticsearch.yml #cluster name cluster.name: sojson-application #節點名稱 node.name: node-1 #綁定IP和端口 network.host: 本機ip http.port: 9200
安裝 head 插件。bootstrap
下載安裝方式安全
從https://github.com/mobz/elasticsearch-head下載ZIP包。服務器
在 elasticsearch 目錄下建立目錄/plugins/head/
而且將剛剛解壓的elasticsearch-head-master
目錄下全部內容COPY
到當前建立的/plugins/head/
目錄下便可。
訪問地址是http://{你的ip地址}:9200/_plugin/head/
http 端口默認是9200 。
由於我是單點的,因此健康度直接是yellow,黃色不影響使用,紅色就有問題了,不過具體看問題是什麼問題。
我這個不知道怎麼回事,直接是中文的,是根據地區IP默認識別安裝的。因此其餘功能我不講了,我就直說一下看索引(index)的 Mapping 在哪看。
這個能夠看到當前索引(index)下全部類型(Type) 的 Mapping ,固然你不建立,就會根據你數據類型來自動生成 Mapping ,我後面會講到 Mapping 生成的方式方法。
查看命中數據詳情。
其餘功能,本身去探索。
由於該插件能夠對數據進行,增刪改查。故生產環境儘可能不要使用,若是要使用,最少要限制IP地址。儘可能不要使用。