概述
2019独角兽企业重金招聘Python工程师标准>>>
1.下载及安装
从官网www.elasticsearch.org下载elasticsearch版本后,解压文件,我下载的linux下的版本是
elasticsearch-1.3.1.tar.gz
然后解压在目录bin下运行
cd elasticsearch-1.3.1/bin
./elasticsearch
如果想在后台启动加上参数-d,
不过运行前首先安装了jdk,不过官方推荐使用Java 8 update 20 之后, 或者 Java 7 update 55 or 之后. 这些之前版本的好像会有bug或出现数据丢失.
启动之后可以看到如下信息
[2014-12-14 21:53:46,990][INFO ][node ] [mynode] version[1.3.1], pid[7722], build[2de6dc5/2014-07-28T14:45:15Z]
[2014-12-14 21:53:46,990][INFO ][node ] [mynode] initializing ...
[2014-12-14 21:53:47,138][INFO ][plugins ] [mynode] loaded [jdbc-1.3.4.4-d2e33c3], sites [kopf, bigdesk, head]
[2014-12-14 21:53:52,048][INFO ][node ] [mynode] initialized
[2014-12-14 21:53:52,048][INFO ][node ] [mynode] starting ...
[2014-12-14 21:53:52,330][INFO ][transport ] [mynode] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.1.107:9300]}
[2014-12-14 21:53:52,399][INFO ][discovery ] [mynode] mycluster/twtuKzSBSUe4PHYHFOOZtw
[2014-12-14 21:53:55,417][INFO ][cluster.service ] [mynode] new_master [mynode][twtuKzSBSUe4PHYHFOOZtw][tonva-N53SV][inet[/192.168.1.107:9300]]{master=true}, reason: zen-disco-join (elected_as_master)
[2014-12-14 21:53:55,454][INFO ][http ] [mynode] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.1.107:9200]}
[2014-12-14 21:53:55,456][INFO ][node ] [mynode] started
[2014-12-14 21:53:56,312][INFO ][gateway ] [mynode] recovered [2] indices into cluster_state
[2014-12-14 21:53:58,024][INFO ][river.jdbc.JDBCRiver ] scheduled river instance with cron expressions [0/20 * * * * ? *]
[2014-12-14 21:54:00,012][INFO ][river.jdbc.RiverThread ] scheduled metrics thread at 60 seconds
[2014-12-14 21:54:00,014][INFO ][river.jdbc.RiverThread ] scheduled suspend check thread at 1 seconds
[2014-12-14 21:54:00,155][INFO ][index.shard.service ] [mynode] [firsttime][4] updating refresh_interval from [1s] to [-1]
[2014-12-14 21:54:00,155][INFO ][index.shard.service ] [mynode] [firsttime][3] updating refresh_interval from [1s] to [-1]
[2014-12-14 21:54:00,156][INFO ][index.shard.service ] [mynode] [firsttime][1] updating refresh_interval from [1s] to [-1]
[2014-12-14 21:54:00,156][INFO ][index.shard.service ] [mynode] [firsttime][2] updating refresh_interval from [1s] to [-1]
[2014-12-14 21:54:00,157][INFO ][index.shard.service ] [mynode] [firsttime][0] updating refresh_interval from [1s] to [-1]
[2014-12-14 21:54:00,828][INFO ][index.shard.service ] [mynode] [firsttime][4] updating refresh_interval from [-1] to [1s]
[2014-12-14 21:54:00,828][INFO ][index.shard.service ] [mynode] [firsttime][3] updating refresh_interval from [-1] to [1s]
[2014-12-14 21:54:00,828][INFO ][index.shard.service ] [mynode] [firsttime][1] updating refresh_interval from [-1] to [1s]
[2014-12-14 21:54:00,828][INFO ][index.shard.service ] [mynode] [firsttime][2] updating refresh_interval from [-1] to [1s]
[2014-12-14 21:54:00,829][INFO ][index.shard.service ] [mynode] [firsttime][0] updating refresh_interval from [-1] to [1s]
[2014-12-14 21:54:00,950][INFO ][river.jdbc.RiverMetrics ] pipeline org.xbib.elasticsearch.plugin.jdbc.RiverPipeline@e0928ee complete: river jdbc/firsttime metrics: 23 rows, 7.845077138492929 mean, (0.0 0.0 0.0), ingest metrics: elapsed 0 seconds, 3.42 KB bytes, 146.0 bytes avg, 0.004 MB/s
d看到这些信息可以大致讲一下, 第一行,后面有个version 1.3.1表示的是当前的版本消息,而mynode是我自己定义的节点名字,默认下载完elasticsearch如果没有配置任何信息,那么会有个随机的名字的.但是我之前修改了配置文件
cluster.name: mycluster
node.name: "mynode"
node.master: true
node.data: true
同时设置了集群名称为mycluster,默认当前节点是主节点,并且在data目录下生成数据
如果我们不想要修改配置文件,那么可以在启动是指定参数也可以达到效果
./elasticsearch --cluster.name mycluster --node.name mynode --node.master true --node.data true
像端口和ip也都可以用这种方式指定的
2.查看启动后存在的集群,节点,索引等消息状态
2.1查看cluster的健康状态
curl 'localhost:9200/_cat/health?v'
或者直接浏览器访问localhost:9200/_cat/health?v即可看到如下消息
epoch timestamp cluster status node.total node.data shards pri relo init unassign
1418566164 22:09:24 mycluster yellow 1 1 6 6 0 0 6
其中status有3中状态,green,yellow,red,green表示的是所有状态功能都是好的,而yellow表示所有数据可用,但是分片的副本replicas还没有分配.red表示数据不可用,它仍然是部分功能(例如,它会继续为从现有的碎片搜索请求),但你可能会需要修复它尽快,因为你有丢失的数据。
同时总共可以看到有1个node,节点上有一份数据,这份数据有6个分片,而且pri表示的是这上面有6个主节点,也就是这六个分片都是主节点,unassign表示的是还有其他6个没有分配,比如我在其他机器上又运行了一个elasticsearch服务来做集群,但是那台服务器没有运行,因此这里会显示对应的6个从节点没有启用.要注意,如果一开始启动elasticsearch服务,可以发现unassign会从一开始的6慢慢变为0,而init表示的是当前正在初始化的分片数量,因此如果一共有12个分片,那么shards+init+unassign一定是12,也就是随着elasticsearch集群多个启动,一开始的时候unassign有多个,多个服务启动后初始化init会显示当前初始化的个数,初始化完后会加到shards上面,unassign会慢慢减少为0,同时init也会变为0.
3.查看运行的节点数量
curl 'localhost:9200/_cat/nodes?v'
可以看到返回结果为:
host ip heap.percent ram.percent load node.role master name
tonva-N53SV 127.0.1.1 7 45 0.51 d * mynode
可以看到host,当前ip为本地ip,堆占用7%,内存占用45%,cpu负载0.51,并且当前*表示为主节点,名字为mynode
4.列出所有的索引
http://192.168.1.107:9200/_cat/indices?v
结果为:
health index pri rep docs.count docs.deleted store.size pri.store.size
yellow _river 1 1 2 0 7.8kb 7.8kb
yellow firsttime 5 1 23 0 39.1kb 39.1kb
可以发现当前节点是yellow,因为只有一个服务时候,rep复制分片并不会被启用,当还有其他服务做集群时,才会启用rep复制分片,这时候health会变green.结果显示当前有firsttime,_river两个索引数据库,单独讨论firsttime,它有5个主分片,1个复制分片(注意这个复制分片没有启用),有23条记录,被删除的0条,总数据存储的大小为39.1kb,主节点存储大小39.1kb,当有多个集群服务的时候那么总数据就是单个占用数据x集群数量,而主节点(包含5个主分片)只有1份
5.当然我们会根据需要在elasticsearch解压目录下config下的配置文件配置适合我们系统的一些参数,但是如果我们想要查看我们设置的节点,那么我们需要怎么做呢?难道我们还需要vim 文件吗?因此我们可以
curl localhost:9200/_nodes/process?pretty
{
"cluster_name" : "mycluster",
"nodes" : {
"twtuKzSBSUe4PHYHFOOZtw" : {
"name" : "mynode",
"transport_address" : "inet[/192.168.1.107:9300]",
"host" : "tonva-N53SV",
"ip" : "127.0.1.1",
"version" : "1.3.1",
"build" : "2de6dc5",
"http_address" : "inet[/192.168.1.107:9200]",
"attributes" : {
"max_local_storage_nodes" : "2",
"master" : "true"
},
"process" : {
"refresh_interval_in_millis" : 1000,
"id" : 18685,
"max_file_descriptors" : 4096,
"mlockall" : false
}
}
}
}
转载于:https://my.oschina.net/kittyMan/blog/359378
最后
以上就是俏皮裙子为你收集整理的elasticsearch安装与使用的全部内容,希望文章能够帮你解决elasticsearch安装与使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复