Linux下安装Elasticsearch2.x
elasticsearch ?Linux安裝:
1 安裝jdk 配置環境變量 參考:http://blog.csdn.net/sxdtzhaoxinguo/article/details/43731677
? (1)[root@localhost ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz?AuthParam=1467948071_cbd982c54f2f54335bb0cc84848627a1?
(2)java -version 檢查是否有jdk安裝,有的話就卸載。(rpm -qa | grep jdk 確定jdk版本 ,yum -y remove java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 卸載)
(3)?新建一個jdk的安裝目錄,我這里是在/usr/local/下新建了java目錄,命令:mkdir /usr/local/java ,再把jdk-8u91-linux-x64.tar.gz壓縮包從下載目錄復制到/usr/local/java目錄下,命令:cp jdk-8u91-linux-x64.tar.gz /usr/local/java
(4)[root@localhost java]# tar xzf jdk-8u91-linux-x64.tar.gz ? 解壓jdk
(5)配置環境變量,進入到etc,編輯profile,在末尾加上
export JAVA_HOME=/usr/local/java/jdk1.8.0_91 export JRE_HOME=/usr/local/java/jdk1.8.0_91/jre export PATH=$PATH:/usr/local/java/jdk1.8.0_91/bin export CLASSPATH=./:/usr/local/java/jdk1.8.0_91/lib:/usr/local/java(6)重啟電腦 reboot,輸入java -version命令查看是否安裝成功
[root@localhost ~]# java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)2 安裝elasticsearch ? //可能涉及針對非root賬號提權的問題,gedit /etc/sudoers 命令添加賬號的sodo權限
1)下載elasticesearch到新建的文件夾 /es/ wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.3/elasticsearch-2.3.3.zip2)解壓?[root@localhost es]# unzip elasticsearch-2.3.3.zip?
3)嘗試運行
[search@localhost es]$ cd elasticsearch-2.3.3 [search@localhost elasticsearch-2.3.3]$ bin/elasticsearch然后會報一堆錯!!!無非就是:權限問題,啟動賬號問題和缺少擴展文件夾的問題
錯誤1:不能再root賬號下運行es,需要用非root賬號,這里我們有一個search賬號
錯誤2:search賬號沒有針對es文件夾的讀寫權限,需要遍歷elasticsearch-2.3.3文件夾,提權限,root下執行命令:chmod 777?elasticsearch-2.3.3
錯誤3:還需要為search賬號設置sudo權限,root下執行命令:chmod 777 /etc/sudoers 使sudoers文件可寫,然后編輯此文件,在root?ALL=(ALL) ALL的下面?加入 search?ALL=(ALL) ALL 保存退出
錯誤4:elasticsearch-2.3.3/config/目錄下缺少scripts文件,可以通過在root命令在此目錄下手動創建此目錄 mkdir scripts
問題解決完,就可以訪問?http://localhost:9200 查看是否成功了
關于運行方式:
?
$ bin/elasticsearch (前臺運行) $ bin/elasticsearch -d (后臺進程運行) $ sudo service elasticsearch start (rpm安裝,服務方式啟動)?
關閉es:
前臺運行,可以通過"CTRL+C"組合鍵來停止運行 后臺運行,可以通過"kill -9 進程號"停止;也可以通過REST API接口"curl -XPOST http://主機IP:9200/_cluster/nodes/_shutdown"來關閉整個集群,"curl -XPOST http://主機IP:9200/_cluster/nodes/節點標示符(如Bjkhlujigopojhih)/_shutdown"來關閉單個節點 rpm安裝,"sudo service elasticsearch stop"關閉服務
3 安裝marvel/license/head/kopf插件?
(1)[search@localhost elasticsearch-2.3.3]$ bin/plugin install mobz/elasticsearch-head ?安裝head
ES-Head的主要作用
-
- 它展現ES集群的拓撲結構,并且可以通過它來進行索引(Index)和節點(Node)級別的操作
- 它提供一組針對集群的查詢API,并將結果以json和表格形式返回
- 它提供一些快捷菜單,用以展現集群的各種狀態
(2)[search@localhost elasticsearch-2.3.3]$ bin/plugin install lmenezes/elasticsearch-kopf/v2.1.1 安裝kopf
Kopf是一個ElasticSearch的管理工具,它也提供了對ES集群操作的API。
? (3)安裝別的插件
當然還有很多別的插件 :http://www.searchtech.pro/elasticsearch-plugins
例如bigdesk es性能監控插件:https://github.com/lukas-vlcek/bigdesk
如果是開源網站下載的插件,需要在plugin文件夾下建立對應插件名稱的文件夾(plugin/bigdesk/_site),然后將*-master文件夾下的文件拷貝進去即可
安裝好就可以在瀏覽器中訪問:http://localhost:9200/_plugin/head/ ?去查看效果了
目前為止只能在當前機器訪問es,我們需要在外網也能訪問,所以要做一些防火墻的配置:
4 修改elasticsearch.yml 在 /elasticsearch_2.3.3/config ?
編輯/elasticsearch_2.3.3/config/elasticsearch.yml下的文件?
5 針對9200端口添加防火墻例外在 /etc/sysconfig/iptables
[root@localhost ~]# gedit /etc/sysconfig/iptables
編輯防火墻配置文件,添加9200和9300的端口例外:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9300 -j ACCEPT ?#節點通訊用9300
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT ?#api訪問用9200
一般添加到“-A INPUT -p tcp -m state --state NEW -m tcp--dport 22 -j ACCEPT”行的上面或者下面,切記不要添加到最后一行,否則防火墻重啟后不生效
?
修改保存后運行:
[root@localhost ~]# /etc/init.d/iptables restart ?來重啟防火墻配置
[root@localhost ~]# /etc/init.d/iptables status ? 檢查防火墻端口狀態
[root@localhost ~]# service iptables stop 防火墻關閉
[root@localhost ~]# service iptables start 防火墻打開
centos7:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #查看默認防火墻狀態(關閉后顯示notrunning,開啟后顯示running)
systemctl restart iptables.service 重啟防火墻使之生效
6重啟電腦 訪問
?集群配置:
集群(cluster)
一個集群就是由一個或多個節點組織在一起,它們共同持有你整個的數據,并一起提供索引和搜索功能。一個集群由一個唯一的名字標識,這個名字默認就是“elasticsearch”。這個名字是重要的,因為一個節點只能通過指定某個集群的名字,來加入這個集群。在產品環境中顯式地設定這個名字是一個好習慣,但是使用默認值來進行測試/開發也是不錯的。
節點(node)
一個節點是你集群中的一個服務器,作為集群的一部分,它存儲你的數據,參與集群的索引和搜索功能。和集群類似,一個節點也是由一個名字來標識的,默認情況下,這個名字是一個隨機的漫威漫畫角色的名字,這個名字會在啟動的時候賦予節點。這個名字對于管理工作來說挺重要的,因為在這個管理過程中,你會去確定網絡中的哪些服務器對應于Elasticsearch集群中的哪些節點。
一個節點可以通過配置集群名稱的方式來加入一個指定的集群。默認情況下,每個節點都會被安排加入到一個叫做“elasticsearch”的集群中,這意味著,如果你在你的網絡中啟動了若干個節點,并假定它們能夠相互發現彼此,它們將會自動地形成并加入到一個叫做“elasticsearch”的集群中。
在一個集群里,只要你想,可以擁有任意多個節點。而且,如果當前你的網絡中沒有運行任何Elasticsearch節點,這時啟動一個節點,會默認創建并加入一個叫做“elasticsearch”的集群。
通過修改elasticsearch-2.3.3/config/elasticsearch.yml 進行集群配置
?
注意
1 http.port端口號每個node不能一樣
2 node.master 是否是主節點
3 每一個配置的key:后面有一個空格,注意書寫格式
4 改完以后 重啟es
殺死es進程的命令:
?ps -ef | grep elasticsearch 找到pid
kill -9 <pid>
?
DeleteByQuery :
使用deletebyquery API 需要安裝 deletebyquery插件
命令:sudo bin/plugin install?delete-by-query
移除插件命令:sudo bin/plugin remove?delete-by-query
?
轉載于:https://www.cnblogs.com/shaner/p/5651272.html
總結
以上是生活随笔為你收集整理的Linux下安装Elasticsearch2.x的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift の 函数式编程
- 下一篇: Linux虚拟机安装及与宿主机相互通信