日常学习elasticsearch搭建,集群搭建

由于es是需要用json格式的编写,简单介绍一下json。

json简介

• json 是什么?

– json 是 JavaScript 对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

– JSON中的分隔符限于单引号 ' 、小括号 ()、中括号[ ]、大括号 { } 、冒号 : 和逗号 ,

• json 特性

– JSON 是纯文本

– JSON 具有"自我描述性"(人类可读)

– JSON 具有层级结构(值中存在值)

– JSON 可通过 JavaScript 进行解析

 

es是属于ELK中的一部分,简单介绍一下ELK。

ELK 是什么?

• ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写

– Elasticsearch:负责日志检索和储存

– Logstash:负责日志的收集和分析、处理

– Kibana:负责日志的可视化

– 这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK

ELK能做什么

• ELK组件在海量日志系统的运维中,可用于解决:

– 分布式日志数据集中式查询和管理

– 系统监控,包含系统硬件和应用各个组件的监控

– 故障排查

– 安全信息和事件管理

– 报表功能

 

Elasticsearch部分

• 主要特点

– 实时分析

– 分布式实时文件存储,幵将每一个字段都编入索引

– 文档导向,所有的对象全部是文档

– 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)

– 接口友好,支持 JSON

• ES 没有什么?

• Elasticsearch 没有典型意义的事务.

• Elasticsearch 是一种面向文档的数据库。

• Elasticsearch 没有提供授权和认证特性

• 相关概念:

– Node: 装有一个 ES 服务器的节点。

– Cluster: 有多个Node组成的集群

– Document: 一个可被搜素的基础信息单元

– Index: 拥有相似特征的文档的集合

– Type: 一个索引中可以定义一种戒多种类型

– Filed: 是 ES 的最小单位,相当于数据的某一列

– Shards: 索引的分片,每一个分片就是一个 Shard

– Replicas: 索引的拷贝

SQL 与 NOSQL

• ES 与关系型数据库的对比

– 在 ES 中,文档归属于一种 类型 (type) ,而这些类型

存在于索引 (index) 中,类比传统关系型数据库

– DB -> Databases -> Tables -> Rows -> Columns

– 关系型   数据库           表           行            列

– ES -> Indices -> Types -> Documents -> Fields

– ES       索引        类型           文档            域(字段)

 

ES集群安装

搭建一台ES的步骤

• 步骤 1,设置 ip 主机名称对应关系

– 配置 /etc/hosts

192.168.x.x node1

• 步骤 2,安装 JDK

– Elasticsearch 要求至少 Java 7

– 一般推荐使用 OpenJDK 1.8

– 配置好安装源以后,我们先解决依赖关系

yum install -y java-1.8.0-openjdk

• 步骤 3

– 安装 ES

rpm –ivh elasticsearch-2.3.4-1.noarch

• 步骤 4

– 修改配置文件

– elasticsearch.yml

network.host: 0.0.0.0

• 步骤 5

– 启动服务,设置自启动

systemctl enable elasticsearch

systemctl start elasticsearch

– 验证:

netstat –ltunp

– 能够看到 9200,9300 被监听

• 通过浏览器戒 curl 访问 9200 端口

curl http://192.168.x.x:9200/

{

"name" : "node1",

"cluster_name" : "my-es",

"version" : {

"number" : "2.3.4",

...... ...... ......

"build_snapshot" : false,

"lucene_version" : "5.5.0"

},

"tagline" : "You Know, for Search“

}

• ES 集群配置

– ES 集群配置也很简单,只需要对配置文件做少量的修改即可,其他步骤和单机完全一致

– ES 集群配置文件

cluster.name: my-es

node.name: node1

network.host: 0.0.0.0

discovery.zen.ping.unicast.hosts: ["node1", "node2","node3"]

– 集群中的所有节点要相互能够 ping 通,要在所有集群机器上配置 /etc/hosts 中的主机名与 ip 对应关系

– 集群中所有机器都要安装 java 环境

– cluster.name 集群名称配置要求完全一致

– node.name 为当前节点标识,应配置本机的主机名

– discovery 为集群节点机器,不需要全部配置

– 配置完成以后启动所有节点服务(有可能会有一定的延时,需要等待几十秒)

– 验证集群,使用 ES 内置字段 _cluster/health

curl http://192.168.x.x:9200/_cluster/health?pretty

{

"cluster_name" : "my-es",

"status" : "green",

...... ...... ......

"number_of_nodes" : 5,

"number_of_data_nodes" : 5,

...... ...... ......

"task_max_waiting_in_queue_millis" : 0,

"active_shards_percent_as_number" : 100.0

}

系统命令 curl

• 在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持多种请求模式,自定义请求等强大功能,是一款综合工具。

• curl 常用参数介绍

– -A 修改请求 agent

– -X 设置请求方法

– -i 显示返回头信息

 

RESTful API 调用

• Rest API 的简单使用

– _cat API 查询集群状态,节点信息

– v 参数显示详细信息

http://192.168.x.x:9200/_cat/health?v

– help 显示帮助信息

http://192.168.x.x:9200/_cat/health?help

– nodes 查询节点状态信息

http://192.168.x.x:9200/_cat/nodes?v

– 索引信息

http://192.168.x.x:9200/_cat/indices?v

• RESTful API 增加

– 创建一个索引,设置分片数量与副本数量

curl -XPUT 'http://192.168.x.x:9200/yin1903/' -d '{

"settings":{

   "index":{

      "number_of_shards": 5,

      "number_of_replicas": 1

      }

   }

}'

• RESTful API 插入数据

curl -XPUT 'http://192.168.x.x:9200/yin1903/js/1' -d '{

  "姓名": "佛山林书豪",
  "爱好": "basketball",
  "年龄": 23,
  "等级": 99

}’

curl -XPUT 'http://192.168.x.x:9200/yin1903/2' -d '{

  "姓名": "大沥詹姆斯",
  "爱好": "LOL",
  "年龄": 19,
  "等级": 1

}'

• 修改

curl -XPOST 'http://192.168.x.x:9200/yin1903/js/2/_update' -d '{

> "doc": {
> "年龄": 20

}

}‘

• 查询与删除

curl -XGET 'http://192.168.x.x:9200/yin1903/js/1'

curl -XGET 'http://192.168.x.x:9200/yin1903/js/2'

curl -XDELETE 'http://192.168.x.x:9200/yin1903/js/1‘

curl -XDELETE 'http://192.168.x.x:9200/yin1903'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值