第1章 ElasticSearch 安裝時一些錯誤以及解決方法
1.1 JDK版本問題
1.1.1 問題:
[2020-01-16T09:26:22,296][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: org.elasticsearch.common.inject.CreationException: Guice creation errors:
1) An exception was caught and reported. Message: access denied ("java.lang.RuntimePermission" "accessClassInPackage.jdk.internal.vm.annotation")
at _unknown_
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.jdk.internal.vm.annotation")
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.base/java.security.AccessController.checkPermission(AccessController.java:1036)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408)
at java.base/java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1324)
1.1.2 解決方法:
JDK版本不對
java -version看了下是jdk13,卸載裝jdk11以及以下版本(版本也不能太低)
1.2 啟動用戶問題
問題:
java.lang.RuntimeException:can not run elasticsearch as root
解決方法:
useradd es(加用戶)
passwd es(給密碼)
chown –R es:es /usr/local/elasticsearch(給權限)
su – es(切換用戶)
./usr/local/elasticsearch/bin/elasticsearch &(后台啟動)
1.3 安裝phantomjs出錯
問題:
npm install
Phantom installation failed { Error: EACCES: permission denied, link '/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1496325965675/phantomjs-2.1.1-linux-x86_64' -> '/XXX/node_modules/phantomjs-prebuilt/lib/phantom'
at Error (native)
errno: -13,
code: 'EACCES',
syscall: 'link',
path: '/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1496325965675/phantomjs-2.1.1-linux-x86_64',
dest: '/XXX/node_modules/phantomjs-prebuilt/lib/phantom' } Error: EACCES: permission denied, link '/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1496325965675/phantomjs-2.1.1-linux-x86_64' -> '/XXX/node_modules/phantomjs-prebuilt/lib/phantom'
at Error (native)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! phantomjs-prebuilt@2.1.14 install: `node install.js`
npm ERR! Exit status 1
解決方法:
rm -rf node_modules(刪除前面構建錯的目錄)
npm install --unsafe-perm(重新構建)
1.4 文件描述符內存限制
1.4.1 問題:
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: max number of threads [3895] for user [es] is too low, increase to at least [4096]
1.4.2 解決方法:
vi /etc/security/limits.conf
增加(加完重啟)
* soft nofile 65536
* hard nofile 131072
vim /etc/sysctl.conf
增加(加完執行sysctl -p)
vm.max_map_count=262144