Elasticsearch下载html
Elasticsearch的安装比较简单,下载下来直接解压到指定的目录就能够了。关键在于配置,这里咱们下载的是7.1.1版本的Elasticsearch。java
elasticsearch配置中最重要的是前面几项:node
cluster.name 表示集群的名字,默认是elasticsearch,最好设置一下,由于客户端链接会用到git
node.name 表示节点的名字,是为了方便区分不一样的节点github
node.master 为true表示这个节点有作为主节点的资格正则表达式
node.data 为true表示这个节点能够存储数据npm
path.data 数据目录bootstrap
path.logs 日志目录跨域
不一样的场景可使用不一样的组合,node.master: true,node.data:true表示又要协调客户端请求,又要存储数据。node.master:false,node.data:true表示只存储数据。node.master:true,node.data: false只协调客户端请求,不存储数据。node.master:false,node.data:false只处理客户端请求。浏览器
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html cluster.name: my-es node.name: node-1 node.master: true node.data: true # 数据存放目录,多个目录使用逗号分割 path.data: F:\component\esdata\data1 # 绑定HTTP端口 http.port: 9200 # 日志目录 path.logs: F:\component\esdata\logs1 # 绑定地址,以便于外网访问 #network.host: 0.0.0.0 #表示开启跨域访问支持,默认为false http.cors.enabled: true #表示跨域访问容许的域名地址,,可支持正则表达式,这里“*”表示容许全部域名访问 http.cors.allow-origin: "*" #容许跨域访问头部信息 #http.cors.allow-headers: "X-Requested-With,Content-Type, Content-Length, Authorization" # 配置host以便于节点启动的时候更快发现其余节点,默认["127.0.0.1", "[::1]"] #discovery.seed_hosts: ["host1", "host2"] # Bootstrap the cluster using an initial set of master-eligible nodes: #cluster.initial_master_nodes: ["node-1", "node-2","node-3"] #设置true用来锁住物理内存 #bootstrap.memory_lock: true #索引字段缓存大小 #indices.fielddata.cache.size: 50mb #设置集群中master节点初始列表,可经过这些 #discovery.zen.ping.unicast.hosts: ["192.168.37.134:9300","192.168.37.135:9300","192.168.37.136:9300"] #配置当前集群最少的master节点数,默认为1 #discovery.zen.minimum_master_nodes: 1
jvm配置主要是配置启动Elasticsearch须要的JVM参数,通常状况不用配置,最经常使用的配置-Xms和-Xmx就是Elasticsearch使用的内存初始值和最大值。本地测试能够调小一点,线上能够调大一点。
-Xms512M -Xmx512M -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -XX:+HeapDumpOnOutOfMemoryError
启动:
elasticsearch
配置完成就能够在浏览器中访问: http://localhost:9200/
集群(cluster)是一组具备相同cluster.name的节点集合,他们协同工做,共享数据并提供故障转移和扩展功能,固然一个节点也能够组成一个集群。
启动Elasticsearch集群只须要多复制几个Elasticsearch,修改一下基本配置就能够了,主要是修改节点名称、日志目录和数据目录。 注意,集群方式只须要有一个节点配置http.port: 9200就能够了,不然会提示端口已经绑定而起不起来,通常状况主节点配置一下就能够了。
Elasticsearch提供了HTTP方式的交互方式,咱们能够经过curl、postman等工具直接发送http请求来获取相关信息,可是不少时候比较麻烦,咱们能够经过elasticsearch-head来查看相关的信息。 es-head下载,可使用git的方式,或者直接下载zip而后解压。
elasticsearch-head是运行须要node.js须要先安装一下node.js,顺便就吧npm也安装了。进入elasticsearch-head的根目录,执行下面的命令:
npm install npm run start
而后就能够访问: http://localhost:9100/
端口能够在Gruntfile.js文件中修改:
connect: { server: { options: { port: 9100, base: '.', keepalive: true } } }
注意由于elasticsearch-head使用的端口是9100,Elasticsearch使用的是9200,JavaScript代码访问的时候有跨越问题,因此使用elasticsearch-head,在Elasticsearch的elasticsearch.yml配置文件中必定要配置下面2项。
http.cors.enabled: true http.cors.allow-origin: "*"
咱们使用elasticsearch-head建立2个索引,分片是3,副本是1。
如上图所示,咱们能够看到每个6个分片被均匀的分布到了3个节点上,主分片和副本分片不在同一个节点,这样就算一个节点失效,也保证了可用。