安装

  • root用户解压,修改配置文件
  • 创建新用户es
  • 修改文件权限:chown -R es:es /kkb/install/elasticsearch-6.7.0/
  • 用es用户启动ElasticSearch和kibana
  • kibana启动:nohup bin/kibana >/dev/null 2>&1 &

概念

  • Relational DB:Databases -> Tables -> Rows -> Columns
  • Elasticsearch:Indices   -> Types  -> Documents -> Fields
  • 索引(Indices):对应MySQL中的库
  • 类型(Types):对应MySQL中的表
  • 文档(Documents):对应MySQL中的行
  • 字段(Fields):对应MySQL中的列
  • 映射(mapping):定义数据类型
  • 分片(shards):将索引划分为多份,可以存放在任何节点上(每个索引默认5个)
  • 复制(replicas):分片的拷贝,防止数据丢失(每个索引默认1个)

与DB差异

  • ES不是关系数据库,不具备ACID特性,乐观锁VS乐观锁
  • ES是近似实时数据库,不是实时数据库,内部基于refresh机制更新
  • SQL VS Nosql
  • 任何两个异构数据库同步都会有问题,一致性,实时性

与DB混搭

  • DB全能(ACID),ES专长(海量查询)
  • 技术需求
    • 大数据量查询/关联查询,两个表作join,难以优化
    • 弹性扩展能力,大宽表
  • 业务需求
    • 业务领域复杂度,水平分库分表
    • 业务查询要求,多业务线联合查询  

单数据表,单索引

  • ES作为DB的映射
  • DB作为数据源
  • ES为查询引擎

单数据表,多索引

  • 同一DB表成为多个索引的数据

多数据表,单索引

  • 多个DB表
  • 一个索引
  • 大宽表

多数据表,多索引

  • 多DB表映射多索引

多数据源表,多索引

  • 多种数据源
  • 多种索引
  • Sql/Nosql

同步模式

  • 推Push:数据源主动推送
  • 拉Pull:数据目标主动拉取
  • 推拉结合Push+Pull

应用双写

应用异步双写MQ

  • 推拉结合
  • 早期基于Lucene搜索
  • 自主灵活
  • 耦合高

工具

  • Logstash
  • 拉Pull
  • JDBC+CRON
  • 单进程

Apache NiFi

  • 上百节点,一天200TB
  • 将Logstash平台化

SDC

CDC(Change Data Capture)

  • 推Push
  • 基于数据库底层同步机制
  • Mysql-binlog

自主开发同步程序

多数据源

多数据源数据交换

  • 没有统一解决方案

常用数据库

  • 关系数据库(MySQL)
  • 缓存(Redis)
  • ES

操作

  • curl :在命令行下面访问url的工具,可以简单实现常见的get/post请求。centos默认库里面是有curl工具,如果没有可通过yum安装

    • -X 指定http的请求方法 有HEAD GET POST PUT DELETE
    • -d 指定要传输的数据
    • -H 指定http请求头信息 
  • restful:在kibana中操作
  • java api

命令

  • curl
curl -XPUT http://node01:9200/blog01/?pretty
curl -XPUT http://node01:9200/blog01/article/1?pretty -d '{"id": "1", "title": "What is lucene"}'
curl -XGET http://node01:9200/blog01/article/1?prettycurl -XPUT http://node01:9200/blog01/article/1?pretty -d '{"id": "1", "title": " What is elasticsearch"}'
curl -XGET "http://node01:9200/blog01/article/_search?q=title:elasticsearch"
curl -XDELETE "http://node01:9200/blog01/article/1?pretty"
curl -XDELETE http://node01:9200/blog01?pretty
  • 增加数据(批量)
POST /school/student/_bulk
{ "index": { "_id": 1 }}
{ "name" : "liubei", "age" : 20 , "sex": "boy", "birth": "1996-01-02" , "about": "i like diaocan he girl" }
{ "index": { "_id": 2 }}
{ "name" : "guanyu", "age" : 21 , "sex": "boy", "birth": "1995-01-02" , "about": "i like diaocan" }
  • 查询(全部)
GET /school/student/_search?pretty
{
"query": {
"match_all": {}
}
}
  • 查询(关键字)
GET /school/student/_search?pretty
{
"query": {
"match": {"about": "travel"}
}
}
  • mapping定义字段类型 
DELETE school
PUT school
{
"mappings": {
"logs" : {
"properties": {"messages" : {"type": "text"}}
}
}
}
POST /school/_mapping/logs
{
"properties": {"number" : {"type": "text"}}
} GET /school/_mapping/logs
  • 管理分片和副本数
DELETE document
PUT document
{
"mappings": {
"article" : {
"properties":
{
"title" : {"type": "text"} ,
"author" : {"type": "text"} ,
"titleScore" : {"type": "double"} }
}
}
} GET /document/_settings
PUT /document/_settings
{
"number_of_replicas": 2
}

分片数初始定义后无法修改  

参考

安装

https://cloud.tencent.com/developer/article/1595027

root用户无法启动

https://www.cnblogs.com/tree1123/p/13152267.html

hive数据存入ES

http://www.bubuko.com/infodetail-3047662.html

elasticsearch-head安装

https://www.chajianmi.com/topic/ffmkiejjmecolpfloofpjologoblkegm#download

https://blog.csdn.net/boss_way/article/details/105826584

基本操作

https://www.cnblogs.com/leohahah/p/10310214.html

分片异常

https://www.cnblogs.com/carryLess/p/9452000.html

kibana

https://blog.csdn.net/baidu_24545901/article/details/79031291

ES与Hive集成

https://blog.csdn.net/tototuzuoquan/article/details/102601040

Spark将Hive数据写入ES(将hive离线计算的结果通过spark任务导入es中以便业务功能快速查询)

https://blog.csdn.net/LXWalaz1s1s/article/details/109264520

SparkStreaming--Kafka--Hive--ES

https://blog.csdn.net/m0_37592814/article/details/105027815?

[DB] ElasticSearch的更多相关文章

  1. Docker部署ElasticSearch以及使用

    ElasticSearch笔记 1. ElasticSearch前期 1.1 聊聊ElasticSearch的简介 ​ Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引 ...

  2. SpringBoot进阶教程(七十三)整合elasticsearch

    Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据具有搜索.分析和探索的能力.充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更 ...

  3. elasticSearch 7.6.1 入门及elasticSearch整合springboot

    一.ElasticSearch概述 官网:https://www.elastic.co/cn/downloads/elasticsearch Elaticsearch,简称为es,es是一个开源的高扩 ...

  4. Maven私服Nexus3.x环境构建操作记录

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  5. GrayLog + Logspout + Docker 实现分布式日志聚合

    前提条件:你的服务器上已经安装了Docker和Docker Compose 一.安装GrayLog(Docker方式) version: '2' services: mongodb: image: m ...

  6. Linux下Maven私服Nexus3.x环境构建操作记录【转】

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  7. nexus3

    Maven 介绍 Apache Maven 是一个创新的软件项目管理和综合工具. Maven 提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和 ...

  8. DevOps - 项目私库 - Nexus Repository

    相关链接 Sonatype官网:https://www.sonatype.com Products: Nexus Repository OSS2.x & 3.x Documentation:  ...

  9. Centos7 搭建最新 Nexus3 Maven 私服

    Maven 介绍 Apache Maven 是一个创新的软件项目管理和综合工具.Maven 提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文 ...

随机推荐

  1. [Fundamental of Power Electronics]-PART I-6.变换器电路-6.3 变压器隔离

    6.3 变压器隔离 在许多应用场合中,期望将变压器结合到开关变换器中,从而在变换器的输入输出之间形成直流隔离.例如,在离线(off-line)应用中(变换器输入连接到交流公用系统),根据监管部门要求, ...

  2. Spring Cloud Alibaba(2)---Nacos概述

    Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...

  3. 201871010129-郑文潇 实验二 个人项目—《D{0-1}背包问题 》项目报告

    项目 内容 课程班级博客链接 课程链接 这个作业要求链接 [作业要求](https://www.cnblogs.com/nwnu-daizh/p/14552393.html) 我的课程学习目标 1.掌 ...

  4. MindSpore函数拟合

    技术背景 在前面一篇博客中我们介绍过基于docker的mindspore编程环境配置,这里我们基于这个环境,使用mindspore来拟合一个线性的函数,演示一下mindspore的基本用法. 环境准备 ...

  5. 基于sinc的音频重采样(二):实现

    上篇(基于sinc的音频重采样(一):原理)讲了基于sinc方法的重采样原理,并给出了数学表达式,如下:                  (1) 本文讲如何基于这个数学表达式来做软件实现.软件实现的 ...

  6. es的分布式架构原理能说一下么(es是如何实现分布式的啊)?

    在搜索这块,lucene是最流行的搜索库.几年前业内一般都问,你了解lucene吗?你知道倒排索引的原理吗?现在早已经out了,因为现在很多项目都是直接用基于lucene的分布式搜索引擎--elast ...

  7. 《鸟哥的Linux私房菜》部分章节学习笔记整理

    简介 此笔记为<鸟哥的Linux私房菜·基础学习篇>中部分章节的学习笔记. 目录 0 计算机概论 1 Linux是什么与如何学习 2 主机规划与磁盘分区 3 安装CentOS7.x 4 首 ...

  8. Day16_96_IO_available() 和 skip()方法

    available() 和 skip()方法 int available()方法 返回流中估计剩余字节数,int i ,i 值表示所剩余的字节数.使用read()方法读取数据,读取一个字节,avail ...

  9. kubernetes资源优化

    kubernetes资源优化方向 系统参数限制 设置系统内核参数: vm.overcommit_memory = 0 vm.swappiness = 0 sysctl -p #生效 内核参数overc ...

  10. 03- web表单测试

    软件分为 b/s c/s两种架构 表单测试 1.用户注册,登录,信息提交. 2.用户查询商品. 3.用户订购商品. 4.用户查询订单等. 表单测试实例 表单数据添加测试(一) 添加按钮可用,测试点击添 ...