一、术语 1、索引(index) 相当于关系数据库当中的数据库 2、文档(document) 相当于MySQL中的一行记录,但是ES中的文档没有固定结构 3、文档类型(type) 一个索引当中可以用不同的文档类型代表不同的数据集合 4、节点(node) 一个节点就是一个实例 5、集群(cluster) 一个集群可以有一个或者多个节点组成(同一个集群下的节点名不能重复) 6、分片(shards) 一个索引会被分割成多个分片,分别存放在集群的不同节点 7、副本
每个分片可以设置多个副本,可以用来容错和提高查询性能
一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。
二、配置
代码语言:javascript复制//文件elasticsearch.yml
#集群名称
cluster.name: elasticsearch_dev
#节点名称
node.name: node-102
#节点属性,可以用于集群碎片分配时过滤
node.attr.rack: r102
#设置索引数据的存储路径
path.data: /data/es/data
#设置日志路径
path.logs: /data/es/logs
#设置内存锁
bootstrap.memory_lock: true
#绑定的IP地址,默认为0.0.0.0
network.host: 192.168.56.102
#对外服务的Http端口
http.port: 9200
三、启动 执行如下命令 ps -p 1 查看是init还是systemd systemd执行如下命令
代码语言:javascript复制/bin/systemctl daemon-reload
/bin/systemctl enable elasticsearch.service
systemctl start elasticsearch
systemctl stop elasticsearch
四、错误解决 1.Unable to lock JVM Memory: error=12, reason=Cannot allocate memory 解决办法:设置配置当中
bootstrap.memory_lock: false
2..NoSuchFileException: /usr/share/elasticsearch/config
执行 ln -s /etc/elasticsearch /usr/share/elasticsearch/config
五、检查 访问http://192.168.56.102:9200可以看到
代码语言:javascript复制{
"name": "node-102",
"cluster_name": "elasticsearch_dev",
"cluster_uuid": "PUxoA1mSTsGzGBZB7S6ZHQ",
"version": {
"number": "5.4.1",
"build_hash": "2cfe0df",
"build_date": "2017-05-29T16:05:51.443Z",
"build_snapshot": false,
"lucene_version": "6.5.1"
},
"tagline": "You Know, for Search"
}