在 centos7 上搭建 elasticsearch時,發生了一些報錯,總結如下:
1. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
原因:內存空間不足
解決辦法:由於 elasticsearhc 默認分配空間爲2g,可以通過修改配置文件 /config/jvm.options,降低分配的內存空間
vim /conf/jvm.options
2.max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因: 權限不夠,導致 /usr/local/elasticsearch/logs/elasticsearch.log日誌文件時,xxx 用戶沒權限寫入
解決方式:切換到 root 用戶,並給 elasticssearch 用戶權限即可
# 轉換身份爲 root 用戶
su root
# 賦予用戶 elasticsearch(或是其他用戶) 操作權限
cd /usr/local/elasticsearch
chown -R elasticsearch .
3. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:用戶最大可創建文件數太小
解決方式:
# 使用 root 賬戶
su root
# 編輯文件
vi /etc/security/limits.conf
# 添加如下內容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
4. max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
原因: 用戶最大可創建線程數太小
解決方式:
# 使用 root 賬戶
su root
# 編輯文件
vi /etc/security/limits.d/90-nproc.conf
# 修改文件內容
舊內容: * soft nproc 1024
新內容: * soft nproc 2048
5. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因: 虛擬內存區域開闢不足
解決方式:
######## 臨時解決,重啓linux會失效 #######
sudo sysctl -w vm.max_map_count=262144
######## 永久解決 #######
# 轉爲 root 用戶
su root
# 編輯文件
vim /etc/sysctl.conf
# 增加內容
vm.max_map_count=262144
# 重啓linux生效
reboot
6. 用chrome訪問192.168.47.135:9200時出進入不了頁面
原因:es的配置文件限制了指定的ip訪問,默認是服務器的locallhost:9200
解決方式:
修改 /usr/local/elasticsearch/conf/elasticsearch.yml
若還是訪問不了,注意需要使用 ip 訪問,即: 192.168.47.135:9200,不能使用 127.0.0.1:9200 或 http://localhost:9200