ELK集群部署实例(转)
转载自:http://blog.51cto.com/ckl893/1772287,感谢原博。
一、ELK说明
二、架构图
三、规划说明
四、安装部署nginx+logstash
五、安装部署redis
六、安装部署logstash server
七、安装部署elasticsearch集群
八、安装kibana
一、ELK说明
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
二、架构图
三、规划说明
logstash收集数据:
192.168.1.90(nginx+logstash)
192.168.1.93(nginx+logstash)
redis提供队列:
192.168.1.89(redis)
logstash-server:
192.168.1.87(logstash[server])
elasticsearch集群:
192.168.1.88(elasticsearch)
192.168.1.91(elasticsearch)
192.168.1.92(elasticsearch+kibana)
所有服务器时间同步:
1
|
# ntpdate 133.100 . 11.8 |
软件版本:
1
2
3
4
|
jdk-8u91-linux-x64.tar.gz elasticsearch- 2.3 . 2 .rpm logstash- 2.3 . 2 - 1 .noarch.rpm kibana- 4.5 . 0 -linux-x64.tar.gz |
四、安装部署nginx+logstash
1
2
|
192.168 . 1.90 192.168 . 1.93 |
以上两个安装配置一样:
4.1.安装zlib
1
2
3
4
5
|
tar -xf zlib- 1.2 . 8 .tar.gz cd zlib- 1.2 . 8 ./configure make make insatll |
4.2.安装pcre
1
2
3
4
5
|
tar -xf pcre- 8.37 .tar.gz ./configure cd pcre- 8.37 make make install |
4.3.安装openssl
1
2
3
4
|
tar -xf openssl- 1.0 . 2 .tar.gz ./config --prefix=/usr/local --openssldir=/usr/local/openssl make make insatll |
4.4.安装nginx
1
2
3
4
5
6
7
8
9
10
11
12
|
tar -xf nginx- 1.8 . 1 .tar.gz ./configure --prefix=/app/local/nginx \ --pid-path=/app/local/nginx \ --user=nginx \ --group=nginx \ -- with -threads \ -- with -file-aio \ -- with -http_ssl_module \ -- with -pcre=/tmp/soft/pcre- 8.37 \ -- with -openssl=/tmp/soft/openssl- 1.0 . 2 make make install |
4.5.查看配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
vim /app/local/nginx/conf/nginx.conf user nginx; worker_processes 1 ; error_log logs/error.log notice; pid logs/nginx.pid; events { worker_connections 1024 ; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for $request_length $msec $connection_requests $request_time' ; sendfile on; keepalive_timeout 65 ; server { listen 80 ; server_name localhost; access_log logs/access.log main; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } |
4.6.启动nginx
1
|
/app/local/nginx/sbin/nginx -c /app/local/nginx/conf/nginx.conf |
4.7.部署java环境
下载oracle jdk
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
4.8.安装jdk
1
2
3
4
5
|
tar -xf jdk-8u91-linux-x64.tar.gz -C /usr/local/ vim /etc/profile export JAVA_HOME=/usr/local/jdk1. 8 .0_91 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar |
4.9.安装logstsh
下载:https://www.elastic.co/
1
|
#yum install logstash- 2.3 . 2 - 1 .noarch.rpm |
4.10.配置logstash
1
2
3
4
5
6
7
8
9
10
11
12
13
|
vim /etc/logstash/conf.d/logstash_cli.conf input { file { path => [ "/app/local/nginx/logs/access.log" ] type => "nginx_log" start_position => "beginning" } } output { stdout { codec => rubydebug } } |
检查语法:
1
2
|
/opt/logstash/bin/logstash -f ./logstash_cli.conf --configtest Configuration OK |
启动查看收集nginx状况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# /opt/logstash/bin/logstash -f ./logstash_cli.conf Settings: Default pipeline workers: 4 Pipeline main started { "message" => "192.168.1.105 - - [11/May/2016:14:09:59 +0800] \"GET / HTTP/1.1\" 304 0 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36\" - 476 1462946999.744 9 0.000" , "@version" => "1" , "@timestamp" => "2016-05-11T06:10:00.546Z" , "path" => "/app/local/nginx/logs/access.log" , "host" => "qmcent7.com" , "type" => "nginx_log" } { "message" => "192.168.1.105 - - [11/May/2016:14:09:59 +0800] \"GET / HTTP/1.1\" 304 0 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36\" - 476 1462946999.952 10 0.000" , "@version" => "1" , "@timestamp" => "2016-05-11T06:10:00.547Z" , "path" => "/app/local/nginx/logs/access.log" , "host" => "qmcent7.com" , "type" => "nginx_log" } ........................ |
修改配置文件,将数据输出到redis:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
vim /etc/logstash/conf.d/logstash_cli.conf input { file { path => [ "/app/local/nginx/logs/access.log" ] type => "nginx_log" start_position => "beginning" } } output { redis { host => "192.168.1.89" key => 'logstash-redis' data_type => 'list' } } |
检查语法:
1
2
|
/opt/logstash/bin/logstash -f ./logstash_cli.conf --configtest Configuration OK |
启动服务:
1
|
/etc/init.d/logstash start |
查看进程:
1
2
3
|
# ps -ef | grep logstash logstash 4818 1 0 May10 pts/ 2 00 : 03 : 42 /usr/local/jdk1. 8 .0_91/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless= true -XX:CMSInitiatingOccupancyFraction= 75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/ var /lib/logstash -Xmx1g -Xss2048k -Djffi.boot.library.path=/opt/logstash/vendor/jruby/lib/jni -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless= true -XX:CMSInitiatingOccupancyFraction= 75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/ var /lib/logstash -XX:HeapDumpPath=/opt/logstash/heapdump.hprof -Xbootclasspath/a:/opt/logstash/vendor/jruby/lib/jruby.jar -classpath :.:/usr/local/jdk1. 8 .0_91/lib/dt.jar:/usr/local/jdk1. 8 .0_91/lib/tools.jar -Djruby.home=/opt/logstash/vendor/jruby -Djruby.lib=/opt/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main -- 1.9 /opt/logstash/lib/bootstrap/environment.rb logstash/runner.rb agent -f /etc/logstash/conf.d -l / var /log/logstash/logstash.log root 6097 3733 0 15 : 07 pts/ 2 00 : 00 : 00 grep logstash |
五、安装部署redis
1
|
192.168 . 1.89 (redis) |
5.1.下载redis官网下载
1
2
3
4
5
6
7
8
9
|
tar -xf redis- 3.0 . 7 .tar.gz cd redis- 3.0 . 7 make mkdir -p /usr/local/redis/{conf,bin} cp *.conf /usr/local/redis/conf/ cp runtest* /usr/local/redis/ cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/ mkdir -pv /data/redis/db mkdir /data/log/redis -pv |
5.2.启动redis:
1
|
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf |
六、安装部署logstash server
1
|
192.168 . 1.87 (logstash[server]) |
6.1.安装jdk
1
2
3
4
5
|
tar -xf jdk-8u91-linux-x64.tar.gz -C /usr/local/ vim /etc/profile export JAVA_HOME=/usr/local/jdk1. 8 .0_91 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar |
6.2.安装logstsh
下载:https://www.elastic.co/
#yum install logstash-2.3.2-1.noarch.rpm
6.3.配置logstash server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
vim /etc/logstash/conf.d/logstash_server.conf input { redis { port => "6379" host => "192.168.1.89" data_type => "list" key => "logstash-redis" type => "redis-input" } } output { stdout { codec => rubydebug } } |
检查语法:
1
2
|
/opt/logstash/bin/logstash -f ./logstash_server.conf --configtest Configuration OK |
检查收集数据:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# /opt/logstash/bin/logstash -f ./logstash_server.conf Settings: Default pipeline workers: 4 Pipeline main started { "message" => "192.168.1.105 - - [11/May/2016:22:00:53 +0800] \"GET / HTTP/1.1\" 200 612 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36\" - 369 1462975253.311 1 0.000" , "@version" => "1" , "@timestamp" => "2016-05-11T14:08:15.895Z" , "path" => "/app/local/nginx/logs/access.log" , "host" => "qmcent7.com" , "type" => "nginx_log" } { "message" => "192.168.1.105 - - [11/May/2016:22:00:53 +0800] \"GET /favicon.ico HTTP/1.1\" 404 570 \"http://192.168.1.93/\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36\" - 310 1462975253.373 2 0.000" , "@version" => "1" , "@timestamp" => "2016-05-11T14:08:16.024Z" , "path" => "/app/local/nginx/logs/access.log" , "host" => "qmcent7.com" , "type" => "nginx_log" ..... |
修改logstash配置文件:
将收集的数据输出到ES集群中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
input { redis { port => "6379" host => "192.168.1.89" data_type => "list" key => "logstash-redis" type => "redis-input" } } output { elasticsearch { hosts => "192.168.1.91" index => "logstash-%{+YYYY.MM.dd}" } } |
启动服务:
1
|
/etc/init.d/logstash start |
七、安装部署elasticsearch集群
1
2
3
|
192.168 . 1.88 (elasticsearch) 192.168 . 1.91 (elasticsearch) 192.168 . 1.92 (elasticsearch) |
部署java环境,全部一致:
tar -xf jdk-8u91-linux-x64.tar.gz -C /usr/local/
1
2
3
4
5
|
vim /etc/profile export JAVA_HOME=/usr/local/jdk1. 8 .0_91 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar |
安装ES、全部一致:
1
|
yum install elasticsearch- 2.3 . 2 .rpm |
192.168.1.88(elasticsearch)
修改ES配置文件:
1
2
3
4
5
6
7
|
vim /etc/elasticsearch/elasticsearch.yml cluster.name: qm.ela.com node.name: n1.qm.com path.logs: /data/log/ network.host: 192.168 . 1.88 http.port: 9200 discovery.zen.ping.unicast.hosts: [ "192.168.1.91" , "192.168.1.92" ] |
[88]启动服务:
1
|
/etc/init.d/elasticsearch start |
192.168.1.91(elasticsearch)
修改ES配置文件:
1
2
3
4
5
6
7
|
vim /etc/elasticsearch/elasticsearch.yml cluster.name: qm.ela.com node.name: n2.qm.com path.logs: /data/log network.host: 192.168 . 1.91 http.port: 9200 discovery.zen.ping.unicast.hosts: [ "192.168.1.88" , "192.168.1.92" ] |
[91]启动服务:
1
|
/etc/init.d/elasticsearch start |
192.168.1.92(elasticsearch)
1
2
3
4
5
6
7
|
vim /etc/elasticsearch/elasticsearch.yml cluster.name: qm.ela.com node.name: n3.qm.com path.logs: /data/log network.host: 192.168 . 1.92 http.port: 9200 discovery.zen.ping.unicast.hosts: [ "192.168.1.88" , "192.168.1.91" ] |
[92]启动服务:
1
|
/etc/init.d/elasticsearch start |
查看端口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0 . 0.0 : 45955 0.0 . 0.0 :* LISTEN 1573 /rpc.statd tcp 0 0 0.0 . 0.0 : 111 0.0 . 0.0 :* LISTEN 1517 /rpcbind tcp 0 0 0.0 . 0.0 : 22 0.0 . 0.0 :* LISTEN 1847 /sshd tcp 0 0 127.0 . 0.1 : 631 0.0 . 0.0 :* LISTEN 1610 /cupsd tcp 0 0 127.0 . 0.1 : 25 0.0 . 0.0 :* LISTEN 1926 /master tcp 0 0 ::: 44937 :::* LISTEN 1573 /rpc.statd tcp 0 0 ::: 111 :::* LISTEN 1517 /rpcbind tcp 0 0 ::ffff: 192.168 . 1.88 : 9200 :::* LISTEN 1089 /java tcp 0 0 ::ffff: 192.168 . 1.88 : 9300 :::* LISTEN 1089 /java tcp 0 0 ::: 22 :::* LISTEN 1847 /sshd tcp 0 0 :: 1 : 631 :::* LISTEN 1610 /cupsd tcp 0 0 :: 1 : 25 :::* LISTEN 1926 /master |
启动两个端口
9200:集群之间事务通信
9300:集群选举等
信息查看
1.查看健康信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# curl -XGET 'http://192.168.1.88:9200/_cluster/health?pretty' { "cluster_name" : "qm.ela.com" , "status" : "green" , "timed_out" : false , "number_of_nodes" : 3 , "number_of_data_nodes" : 3 , "active_primary_shards" : 14 , "active_shards" : 28 , "relocating_shards" : 0 , "initializing_shards" : 0 , "unassigned_shards" : 0 , "delayed_unassigned_shards" : 0 , "number_of_pending_tasks" : 0 , "number_of_in_flight_fetch" : 0 , "task_max_waiting_in_queue_millis" : 0 , "active_shards_percent_as_number" : 100.0 } |
2.查看节点数:
1
2
3
4
5
|
# curl -XGET '192.168.1.88:9200/_cat/nodes?v' host ip heap.percent ram.percent load node.role master name 192.168 . 1.91 192.168 . 1.91 10 87 0.00 d m n2.qm.com 192.168 . 1.92 192.168 . 1.92 7 93 0.00 d m n3.qm.com 192.168 . 1.88 192.168 . 1.88 17 88 0.00 d * n1.qm.com |
由此可见,192.168.1.88已经成为主节点
3.查看节点分片信息:
1
2
3
4
5
6
7
8
|
# curl -XGET '192.168.1.88:9200/_cat/indices?v' health status index pri rep docs.count docs.deleted store.size pri.store.size green open .kibana 1 1 3 0 49 .8kb 24 .9kb green open .marvel-es-data- 1 1 1 14 274 131 .5kb 63 .2kb green open logstash- 2016.05 . 10 5 1 168 0 543 .3kb 271 .6kb green open logstash- 2016.05 . 11 5 1 118 0 315 .6kb 161kb green open .marvel-es- 1 - 2016.05 . 11 1 1 38433 56 35 .6mb 17 .8mb green open .marvel-es- 1 - 2016.05 . 10 1 1 42622 16 24 .5mb 12 .2mb |
安装插件:
1.安装插件marvel,三个节点安装一致:
1
2
|
/usr/share/elasticsearch/bin/plugin install license /usr/share/elasticsearch/bin/plugin install marvel-agent |
2.安装head插件,三个节点安装一致:
1
|
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head |
3.安装bigdesk 插件:
1
2
3
4
5
6
7
8
9
10
11
|
cd /usr/share/elasticsearch/plugins mkdir bigdesk cd bigdesk/ git clone https: //github.com/lukas-vlcek/bigdesk _site sed -i '142s/==/>=/' _site/js/store/BigdeskStore.js cat >plugin-descriptor.properties<<EOF description=bigdesk - Live charts and statistics for Elasticsearch cluster. version= 2.5 . 1 site= true name=bigdesk EOF |
4.安装kopf插件:
1
|
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf |
查看安装的插件:
1
2
3
4
5
6
7
8
|
/usr/share/elasticsearch/bin/plugin list Installed plugins in /usr/share/elasticsearch/plugins: - head - bigdesk - analysis-kuromoji - kopf - license - marvel-agent |
访问head,查看集群是否一致
访问bigdesk,查看信息:
访问kopf,查看信息:
八、安装kibana
1
|
192.168 . 1.92 (kibana) |
8.1.下载包:
https://www.elastic.co/downloads/kibana
8.2.安装:
1
|
tar -xf kibana- 4.5 . 0 -linux-x64.tar.gz -C /usr/local |
安装插件:
1
2
|
cd /usr/local/kibana bin/kibana plugin --install elasticsearch/marvel/latest |
启动服务:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bin/kibana log [ 12 : 47 : 34.251 ] [info][status][plugin:kibana] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.272 ] [info][status][plugin:elasticsearch] Status changed from uninitialized to yellow - Waiting for Elasticsearch log [ 12 : 47 : 34.275 ] [info][status][plugin:marvel] Status changed from uninitialized to yellow - Waiting for Elasticsearch log [ 12 : 47 : 34.312 ] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.316 ] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.319 ] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.328 ] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.331 ] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready log [ 12 : 47 : 34.337 ] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready log [ 12 : 47 : 34.338 ] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready log [ 12 : 47 : 35.599 ] [info][status][plugin:marvel] Status changed from yellow to green - Marvel index ready log [ 12 : 47 : 35.638 ] [info][listening] Server running at http: //0.0.0.0:5601 |
查看数据:
访问marvel:
错误说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Stopping elasticsearch: [ OK ] Starting elasticsearch: Exception in thread "main" java.lang.IllegalStateException: marvel plugin requires the license plugin to be installed at org.elasticsearch.marvel.license.LicenseModule.verifyLicensePlugin(LicenseModule.java: 37 ) at org.elasticsearch.marvel.license.LicenseModule.<init>(LicenseModule.java: 25 ) at org.elasticsearch.marvel.MarvelPlugin.nodeModules(MarvelPlugin.java: 87 ) at org.elasticsearch.plugins.PluginsService.nodeModules(PluginsService.java: 263 ) at org.elasticsearch.node.Node.<init>(Node.java: 179 ) at org.elasticsearch.node.Node.<init>(Node.java: 140 ) at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java: 143 ) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java: 178 ) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java: 270 ) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java: 35 ) Refer to the log for complete error details. [FAILED] |
需要安装license
1
|
/usr/share/elasticsearch/bin/plugin install license |
ELK集群部署实例(转)的更多相关文章
- Shell脚本实现---Swarm集群部署实例(Swarm Cluster)
Shell脚本实现---Swarm集群部署实例(Swarm Cluster) 一.机器环境(均是centos7.8) IP hostname 角色 192.168.10.200 manager-swa ...
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- zookeeper的单实例和伪集群部署
原文链接: http://gudaoyufu.com/?p=1395 zookeeper工作方式 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现 ...
- ELK + filebeat集群部署
ELK + filebeat集群部署 一.ELK简介 1. Elasticsearch Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数 ...
- ansible playbook部署ELK集群系统
一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...
- ActionMQ集群部署
ActiveMQ集群部署 一.应用场景 消息中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件.目 ...
- Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)
一. ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...
- ELK集群之elasticsearch(3)
Elasticsearch-基础介绍及索引原理分析 介绍 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引 ...
- Quartz.net持久化与集群部署开发详解
序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...
随机推荐
- Host does not support domain type kvm for virtualization type 'hvm' arch 'x86_64'
kvm创建虚拟机报错: qemu-img create -f qcow2 /tmp/centos.qcow2 10G virt-install --virt-type kvm --name cento ...
- Java锁的选择
1.synchronized: 当只有少量竞争者.synchronized不会引发死锁 2.ReentrantLock:竞争者不少,但是趋势可以预估.使用不当,可能造成死锁.
- 开源自然语言处理工具包hanlp中CRF分词实现详解
CRF简介 CRF是序列标注场景中常用的模型,比HMM能利用更多的特征,比MEMM更能抵抗标记偏置的问题. [gerative-discriminative.png] CRF训练 这类耗时的任务,还 ...
- 安装chrome扩展json-handle
chrome插件安装 方式一,在线安装 直接插到json-handle地址,添加即可 https://chrome.google.com/webstore/detail/json-handle/iah ...
- VGA图像显示组成模块分析
VGA图像显示组成模块分析 1.片上内存(FPGA RAM)充当存储器 2.静态内存(SRAM)充当存储器 3.将静态内存换为动态内存 动态内存容量大,但是即时能力不好,它无法立即响应VGA功能模块, ...
- 银行卡所属公司判断 参考自https://blog.csdn.net/well2049/article/details/79429130
在网上找到了一个银行卡的验证,通过阿里的支付宝接口进行校验,能够准确识别是否存在,归属行,卡号类型是储蓄卡(DC)还是信用卡(CC). 接口api:需要传入的2个参数,卡号cardNo和cardBin ...
- Python中的self和init
From: https://www.crifan.com/summary_the_meaning_of_self_and___init___in_python_and_why_need_them/ 背 ...
- 三星GT-N8010刷机教程
本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ...
- spring4.0之一:简介
我们共同来构建更好的企业应用.Spring帮助全世界的开发团队构建简单.便携.快速和灵活的基于JVM的系统和应用.这两句话已经足以说明Spring的目标,它针对的领域是企业应用,这套框架构建的应用有着 ...
- 信息安全-加密:AES 加密
ylbtech-信息安全-加密:AES 加密 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一 ...