瘋狂創客圈 Java 高併發【 億級流量聊天室實戰】實戰系列 【博客園總入口 】html
架構師成長+面試必備之 高併發基礎書籍 【Netty Zookeeper Redis 高併發實戰 】java
瘋狂創客圈 高併發 環境 視頻,陸續上線:node
小視頻以及所需工具的百度網盤連接,請參見 瘋狂創客圈 高併發社羣 博客python
建議須要安裝6以上版本,這裏使用的版本是6.2.2,能夠在ElasticSearch官方網站上下載。因爲ElasticSearch官方網站的文檔很是的全面,對於初學者解決學習、開發過程當中的實際問題都很是有參考價值,因此,這裏列出官網的地址: https://www.elastic.co/linux
why 6.2.2?git
因爲截止目前,與spring-data集成的最高版本,是6.2.2, 集成spring-data後,能夠使用JPA直接操做ElasticSearch,減小編程的壓力。github
1:下載須要安裝的ElasticSearch版本,這裏爲6.2.2面試
ElasticSearch 6.2.2版本的下載地址爲spring
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz編程
瘋狂創客圈網盤,已經備好,能夠直接下載
2:下載須要安裝的Kibana版本,須要與ElasticSearch匹配
kibana是Elasticsearch官方提供的工具,可是在實際生產使用過程當中, 可視化作的不足,沒有elasticsearch-head全面。kibana官方地址爲
https://www.elastic.co/cn/downloads/kibana/
瘋狂創客圈網盤,已經備好,能夠直接下載
3:下載IK分詞器,做爲中文分詞器
在IK 分詞器的github網頁地址爲:https://github.com/medcl/elasticsearch-analysis-ik。在這個網址上,找到與前面安裝的ElasticSearch相互匹配的版本,這裏這裏版本爲6.2.2,下載連接以下:
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip
瘋狂創客圈網盤,已經備好,能夠直接下載
上傳到Linux服務器,建立JDK的安裝目錄,將jdk壓縮包解壓到建立的安裝目錄
mkdir -p /usr/local/elasticsearch-6.2.2 tar -zxvf /usr/local/elasticsearch-6.2.2.tar.gz -C /usr/local/elasticsearch-6.2.2
爲了方便後續的使用,和elasticsearch版本的升級,能夠爲elasticsearch創建一個統一的軟鏈接 /usr/elasticsearch,命令以下:
ln -s /usr/local/elasticsearch-6.2.2/elasticsearch-6.2.2/ /usr/elasticsearch
創建用來存放elasticsearch數據存儲目錄,命令以下:
mkdir -p /home/elasticsearch/data mkdir -p /home/elasticsearch/log
elasticsearch的配置文件爲安裝目錄下的config/elasticsearch.yml,主要修改的選項爲:節點名稱、集羣名稱、日誌目錄、數據目錄等等,修改後的配置文件以下:
vi /usr/elasticsearch/config/elasticsearch.yml
#節點名稱 cluster.name: singlenode-cluster #集羣名稱 node.name: node-1 #數據目錄 path.data: /home/elasticsearch/data #日誌目錄 path.logs: /home/elasticsearch/log #主機地址 network.host: 10.18.3.91 #下面配置爲head插件配置,若是要用到head的話 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"
注意elasticsearch默認是不支持使用root運行的,須要新建專門的用戶,用戶的名稱爲es,使用以下命令:
[root@localhost elasticsearch]# useradd es 爲es設置密碼,使用以下命令: [root@localhost elasticsearch]# passwd es
密碼的保密程度要求比較高,新的密碼設置爲:123!@#qwe
給es用戶,授予安裝目錄、數據目錄、日誌的所有權限,使用的命令爲:
chown -R es:es /usr/local/elasticsearch-6.2.2/ chown -R es:es /home/elasticsearch/data chown -R es:es /home/elasticsearch/log
注意:在使用chown指令修改目錄的owner時,須要對原始目錄進行修改;若是對軟鏈接進行修改,目錄是無效的。
修改 Linux下/etc/security/limits.conf文件設置
vim /etc/security/limits.conf
更改linux的最大文件描述限制要求
添加或修改以下:
* soft nofile 262144 * hard nofile 262144 es soft memlock unlimited es hard memlock unlimited
vi /etc/security/limits.d/90-nproc.conf
更改linux的的最大線程數,添加或修改以下:
* soft nproc unlimited root soft nproc unlimited
更改linux一個進行能擁有的最多的內存區域要求,Linux下/etc/sysctl.conf文件設置
,添加或修改以下:
vi /etc/sysctl.conf
vm.max_map_count = 262144 vm.swappiness = 1
更改linux禁用swapping,:vm.swappiness = 1
啓動以前,請切換到es用戶,命令以下:
su es /usr/elasticsearch/bin/elasticsearch
若是要後臺啓動elasticsearch,加上&符號便可,完整的命令爲:
/usr/elasticsearch/bin/elasticsearch -d
Elasticsearch 的經常使用的工具大體有兩個:一個是elasticsearch-head,另一個是kibana。elasticsearch-head 是一個開源項目,官方地址爲:
https://github.com/mobz/elasticsearch-head
kibana是Elasticsearch官方提供的工具,雖然圖形化的用戶操做沒有elasticsearch-head全面。可是在實際生產使用過程當中,使用也是不少的。
kibana是Elasticsearch官方提供的工具,可是在實際生產使用過程當中, 可視化作的不足,沒有elasticsearch-head全面。kibana官方地址爲
https://www.elastic.co/cn/downloads/kibana/
將安裝包上傳到Linux服務器,建立kibana的安裝目錄,將kibana壓縮包解壓到安裝目錄
mkdir -p /usr/local/kibana tar -zxvf /usr/local/kibana-6.2.2-linux-x86_64.tar.gz -C /usr/local/kibana
爲了方便後續的使用,和kibana版本的升級,能夠爲kibana創建一個統一的軟鏈接 /usr/kibana,命令以下:
ln -s /usr/local/kibana/kibana-6.2.2-linux-x86_64 /usr/kibana
修改kibana更目錄下config/kibana.yml 配置文件,配置kibana須要監控的ElasticSearch服務器,和kibana服務所在的機器。配置的內容以下:
vi /usr/kibana/config/kibana.yml
elasticsearch.url: "http://172.18.7.49:9200" # kibana監控哪臺es機器 server.host: "172.18.7.49" # kibana運行在哪臺機器
啓動kibana,運行使用下面的命令:
/usr/kibana/bin/kibana
[root@localhost ~]# /usr/kibana/bin/kibana log [00:48:50.903] Status changed from uninitialized to green - Ready log [00:48:51.005] Status changed from uninitialized to yellow - Waiting for Elasticsearch log [00:48:51.030] Status changed from uninitialized to green - Ready log [00:48:51.296] Status changed from uninitialized to green - Ready log [00:48:51.303] Status changed from uninitialized to green - Ready log [00:48:51.336] Server running at http://172.18.7.49:5601 log [00:48:51.511] Status changed from yellow to green - Ready
使用瀏覽器能夠訪問http://ip:5601 ,查看kibana的操做界面
在kibana啓動成功後,若是瀏覽器不能訪問,有多是linux 的防火牆進行了請求的攔截,在測試環境,能夠關閉防火牆。
首先使用systemctl status firewalld 命令,查看防火牆的狀態,執行命令以下:
[root@localhost ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 四 2019-07-25 19:15:01 CST; 18h ago Docs: man:firewalld(1) Main PID: 634 (firewalld) Memory: 220.0K CGroup: /system.slice/firewalld.service └─634 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
結果中的Active: active (running) ,表示防火牆正在運行,實驗和測試環境,建議進行關閉。關閉防火牆的命令以下:
service firewalld stop
首先查看防火牆狀態:
service iptables status
永久性生效,重啓後不會復原
chkconfig iptables off
關閉:
即時生效,重啓後復原
後臺啓動:
nohup /usr/kibana/bin/kibana &
查看進程
netstat -anltp|grep 5601
Elasticsearch默認狀況下,只支持英文分詞。默認狀況下,Elasticsearch會將中文句子,分紅一個一個的漢字。因此,須要給Elasticsearch安裝中文分詞器插件,這裏選擇的是IK分詞器插件。
IK分詞器有兩種分詞模式:ik_max_word和ik_smart模式。兩種模式的區別,在於分詞結果的顆粒度粗細不一樣:ik_max_word會將中文作最細粒度分詞,而ik_smart會作最粗粒度的分詞。好比,對於「中華人民共和國人民大會堂」一個字符串,在ik_max_word分詞模式下,將被拆分爲「中華人民共和國、中華人民、中華、華人、人民共和國、人民、共和國、大會堂、大會、會堂等詞語。在ik_smart 模式下,該字符串將被拆分爲中華人民共和國、人民大會堂等詞語。
將壓縮包elasticsearch-analysis-ik-6.2.2.zip上傳到/usr/local目錄後,而且創建一個解壓縮的目標目錄。而後,將壓縮包解壓縮到目標目錄。以上兩步,所使用的命令以下:
mkdir -p /usr/local/elasticsearch-analysis-ik-6.2.2 unzip /usr/local/elasticsearch-analysis-ik-6.2.2.zip -d /usr/local/elasticsearch-analysis-ik-6.2.2
將elasticsearch-analysis-ik-6.2.2解壓縮目錄,複製到elasticsearch的插件目錄plugins下,而後重啓elasticsearch服務。
mv -fiv /usr/local/elasticsearch-analysis-ik-6.2.2/elasticsearch /usr/elasticsearch/plugins
能夠經過kibana工具,測試ik_max_word.
POST /_analyze { "text":"中華人民共和國人民大會堂", "analyzer":"ik_max_word" } { "tokens" : [ { "token" : "中華人民共和國", "start_offset" : 0, "end_offset" : 7, "type" : "CN_WORD", "position" : 0 }, { "token" : "中華人民", "start_offset" : 0, "end_offset" : 4, "type" : "CN_WORD", "position" : 1 }, ….(篇幅緣由,省略了10以上的分詞結果) ] }
具體,請關注 Java 高併發研習社羣 【博客園 總入口 】
最後,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高併發研習社羣 【博客園 總入口 】
瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高併發實戰》