一、elasticsearch-6.3.0安裝
- 安裝jdk1.8+
注意:(jdk version>8u40,低於8u40版本的jdk,G1垃圾回收機制會導致elasticsearch崩潰)
- 準備elasticsearch-6.3.0.tar.gz;
- 新建賬戶
adduser hxes
passwd hxes
- 解壓
mkdir /home/hxes/es
tar -zxvf elasticsearch-6.3.0.tar.gz -C /home/hxes/es/
- 環境變量.
二、配置elasticsearch.yml
- 配置elasticsearch集羣名稱和節點名稱
cluster.name: hxct
node.name: jcy01
#指定該節點是否有資格被選舉成爲master節點,默認是true,es是默認集羣中的第一臺機器爲master,如果這臺機掛了就會重新選舉master
node.master: true
#允許該節點存儲數據(默認開啓)
node.data: true
- 配置elasticsearch數據存放位置和日誌存放位置
path.data: /home/hxes/es/esdatas
path.logs: /home/hxes/es/eslogs
- 配置虛擬機永遠不會被交換到磁盤
bootstrap.memory_lock: true
- 自擔風險模式(linux提供的保護機制)
bootstrap.system_call_filter: true
- 配置network.host
network.host: 0.0.0.0
- 配置種子列表
discovery.zen.ping.unicast.hosts: [“192.168.0.10,ip2,ip3”]
#(集羣安裝,配置多臺機器的ip(多個ip使用逗號隔開),es有自動發現節點的功能,所以這裏只需要配置一部分節點)
- 配置候選節點( master-eligible node)的最少個數
(只有在集羣需要防止腦裂的情況下,才配置此參數;相對而言比較專業,請在百度上查詢相關的概念後,在對此參數進行配置)
discovery.zen.minimum_master_nodes: (master_eligible_nodes/2)+1
# 備註: master_eligible_nodes是具有master資格的節點的數量
- 單機多節點
# 要做到單機上開多個實例,需要修改ES的默認配置,以下是一些配置要點:
node.max_local_storage_nodes: 2
# 這個配置限制了單節點上可以開啓的ES存儲實例的個數,我們需要開多個實例,因此需要把這個配置寫到配置文件中,併爲這個配置賦值爲2或者更高。
三、設置bootstrap啓動檢查配置選項
- 修改jvm.options配置文件
設置jvm堆(heap size)大小。內存26G左右,指針壓縮功能處於開啓狀態,當指正壓縮功能關閉時,內存指針將是前面所佔內存的1.5倍。
-xms26g
-xmx26g
(備註,請根據內存而定;如果系統內存爲64g,此處最多配置爲28g;如果爲32G內存,此處配置16g)
2. 修改limits.conf配置文件
vi /etc/security/limits.conf
#打開文件的最大數量
hxes soft nofile 65536
hxes hard nofile 65536
#最大線程數量檢查 數值爲最小數量
hxes soft nproc 65536
hxes hard nproc 65536
#配置文件大小
hxes soft fsize unlimited
hxes hard fsize unlimited
#配置虛擬內存空間大小
hxes soft as unlimited
hxes hard as unlimited
#配置虛擬內存空間大小
hxes soft memlock unlimited
hxes hard memlock unlimited
備註:可以通過 ulimit命令對上述配置進行熱配置(即不需要重啓,配置參數即可生效)
3. 修改/etc/sysctl.conf配置文件
配置支持nmap參數,數值爲最小數量
[root@localhost ~]# vi /etc/sysctl.conf
在sysctl.conf文件追加
vm.max_map_count=262144
退出保存
[root@localhost ~]# sysctl -p
- 修改90-nproc.conf配置文件
vi /etc/security/limits.d/90-nproc.conf
在文件中修改 nproc的值,配置線程數量
* soft nproc 10240
root soft nproc unlimited
退出保存
啓動
默認爲server模式啓動,後臺啓動:
elasticsearch -d
通過http://ip:9200訪問ES。
Kibana安裝
- 解壓kibana-6.3.0-linux-x86_64.tar.gz
tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz -C /home/hxes/es/
- 修改配置文件
vi kibana.yml
- 修改server.host爲server.host: “0.0.0.0”
- 修改elasticsearch.url爲elasticsearch.url:“http://ESip:9200”
- 啓動kibana
nohup ./kibana &
訪問kibana地址 http://IP:5601
- 遇到的問題
- 1、從節點無法加入集羣?
防火牆 - 2、
failed to send join request to master [{pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}],
reason [RemoteTransportException[[pros-node-1][10.45.32.90:10800][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {pros-node-2}
{Dhq0h4IHS6GF4MgFwc1Vhw}{EttroN0-StienfP37gyLag}
{10.45.32.30}{10.45.32.30:10800}, found existing node {pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}
with the same id but is a different node instance]; ]
- 因爲複製虛擬機時,elsticsearch時,將elsticsearch文件夾下的data文件夾一併複製了。而在前面測試時,data文件夾下已經產生了data數據,於是報上面的錯誤。
- 解決辦法:刪除elsticsearch文件夾下的data文件夾下的節點數據。
1、爬蟲,來獲取網站的html數據
wget -o /tmp/wget.log -P /home/data --no-parent --no-verbose -m -D news.cctv.com -N --convert-links --random-wait -A html,HTML,shtml,SHTML http://news.cctv.com
2、數據抽取:從網頁中抽取數據
3、把抽取出來的數據同ES建立索引