大家好闻镶,我是小悟
1、概念
ElasticSearch丸升,官方的解釋Elasticsearch 是一個分布式的開源搜索和分析引擎,適用于所有類型的數(shù)據(jù)牺氨,包括文本狡耻、數(shù)字、地理空間掉奄、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)画饥。Elasticsearch 在 Apache Lucene 的基礎(chǔ)上開發(fā)而成肩狂,由 Elasticsearch N.V.(即現(xiàn)在的 Elastic)于 2010 年首次發(fā)布。
Elasticsearch 以其簡單的 REST 風(fēng)格 API沼头、分布式特性、速度和可擴展性而聞名,是 Elastic Stack 的核心組件进倍;Elastic Stack 是適用于數(shù)據(jù)采集土至、充實、存儲猾昆、分析和可視化的一組開源工具陶因。
人們通常將 Elastic Stack 稱為 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana)垂蜗,目前 Elastic Stack 包括一系列豐富的輕量型數(shù)據(jù)采集代理楷扬,這些代理統(tǒng)稱為 Beats,可用來向 Elasticsearch 發(fā)送數(shù)據(jù)√現(xiàn)在大部分服務(wù)器是基于Linux底層烘苹,今天介紹下Linux上Elasticsearch的安裝、遇到的問題以及解決方法片部。
2镣衡、安裝
解壓elasticsearch-6.4.3.tar.gz到/usr/local/elastic-plugin目錄:
進入解壓后的elasticsearch目錄:/usr/local/elastic-plugin/elasticsearch-6.4.3
(1)新建data目錄:
mkdir data
(2)修改config/elasticsearch.yml:
在Memory下面添加
bootstrap.system_call_filter: false
在最后添加下列內(nèi)容
#數(shù)據(jù)和日志的存儲目錄
path.data: /usr/local/elastic-plugin/elasticsearch-6.4.3/data
path.logs: /usr/local/elastic-plugin/elasticsearch-6.4.3/logs
#設(shè)置綁定的ip,設(shè)置為0.0.0.0以后就可以讓任何計算機節(jié)點訪問到了
network.host: 0.0.0.0
http.port: 9200 #端口
#qcl自己加的
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
修改完畢后吞琐,:wq 保存退出vim
準備啟動es
進入/bin目錄執(zhí)行命令:
后臺啟動:./elasticsearch -d
3捆探、問題以及解決方法
問題:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d4cc0000, 724828160, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 724828160 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid8507.log
[root@VM_97_229_centos elasticsearch-6.4.3]#
[root@VM_0_2_centos bin]#
解決:
看來是我這1G的內(nèi)存太小了啊,elasticsearch使用java的jvm默認是使用1G的內(nèi)存的站粟,這里我們修改一下內(nèi)存黍图,直接把內(nèi)存改到200m
cd 到es目錄修改 ./config/jvm.options:
vim ./config/jvm.options
修改該內(nèi)容:
-Xms200m
-Xmx200m
:wq 保存并退出vim,再次啟動es
再次啟動出現(xiàn)如下錯誤:
[2019-06-21T16:20:03,039][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler][node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.3.jar:6.4.3.jar:6.4.3:7.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.4.3.jar:6.4.3]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:102) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:169) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.4.3.jar:6.4.3]
... 6 more
[root@VM_0_2_centos elasticsearch-7.1.1]#
這是不能使用root用戶操作奴烙,添加一個其他的用戶再試試:
用戶名和密碼都是admin
[root@VM_0_2_centos elasticsearch-6.4.3]# passwd admin
Changing password for user admin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
改一下admin目錄所屬用戶:
[root@VM_0_2_centos elasticsearch-6.4.3]# chown admin /usr/local/elastic-plugin/elasticsearch-
vim 編輯 /etc/security/limits.conf助被,在末尾加上:
admin hard nofile 65536
admin soft nproc 4096
admin hard nproc 4096
vim 編輯 vim /etc/security/limits.d/20-nproc.conf,將* 改為用戶名(admin):
# accidental fork bombs.
# See rhbz #432903 for reasoning.
admin soft nproc 4096
root soft nproc unlimited
vim 編輯 /etc/sysctl.conf切诀,在末尾加上:
vm.max_map_count = 655360
執(zhí)行:
[root@VM_0_2_centos ~]# sysctl -p
kernel.printk = 5
vm.max_map_count = 655360
[root@VM_0_2_centos ~]#
登錄剛才新建的admin用戶揩环,并啟動elasticsearch,OK
[root@VM_0_2_centos elasticsearch-6.4.3]# su admin
[es@VM_0_2_centos elasticsearch-6.4.3]$ ./bin/elasticsearch
記得服務(wù)器開放安全組端口9200
后臺啟動:
[es@VM_0_2_centos elasticsearch-6.4.3]$ ./bin/elasticsearch -d
[es@VM_0_2_centos elasticsearch-6.4.3]$
查看進程:
[es@VM_0_2_centos elasticsearch-6.4.3]$ ./bin/elasticsearch -d
[es@VM_0_2_centos elasticsearch-6.4.3]$ ps -ef|grep elasticsearch
es 18652 1 19 17:48 pts/2 00:00:00 /usr/local/java/jdk1.8.0_211/bin/java -Xms200m -Xmx200m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch-182563007296674551 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Dio.netty.allocator.type=unpooled -Des.path.home=/usr/local/elasticsearch-6.4.3 -Des.path.conf=/usr/local/elasticsearch-6.4.3/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch-6.4.3/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
es 18728 8399 0 17:48 pts/2 00:00:00 grep --color=auto elasticsearch
[es@VM_0_2_centos elasticsearch-6.4.3]$
您的一鍵三連幅虑,是我更新的最大動力丰滑,謝謝
山水有相逢,來日皆可期倒庵,謝謝閱讀褒墨,我們再會
我手中的金箍棒,上能通天擎宝,下能探海