一、概述

  推荐路神的ES权威指南翻译:https://es.xiaoleilu.com/010_Intro/00_README.html

  官网:https://www.elastic.co/cn/products/elasticsearch

  精品博文:https://blog.csdn.net/laoyang360/article/details/52244917

  1.es是什么

  官网的中文介绍:

  Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

  权威指南的入门介绍:

Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。

它用于全文搜索、结构化搜索、分析以及将这三者混合使用

  2.特征

    查询、分析、速度、可拓展性、弹性、灵活

    // 更多详细特征介绍,参考官网

二、安装

  安装es需要先安装JDK,这里我们安装es5.6,提请安装一下JDK8

  1.下载

    https://www.elastic.co/cn/downloads/elasticsearch

    选择一个合适的版本,下载即可

  2.解压

    #es启动时需要使用非root用户!如果非要使用,另行配置,这里暂不展开

[hadoop@mini1 ~]$ tar -zxvf elasticsearch-5.6..tar.gz -C /es

  // 相应的目录需要有权限

  3.修改配置

[hadoop@mini1 config]$ vim elasticsearch.yml 

  主要需要修改的项如下:

#集群名称,通过组播的方式通信,通过名称判断属于哪个集群
cluster.name: es
#节点名称,要唯一
node.name: es-
#数据存放位置
path.data: /es/data
#日志存放位置
path.logs: /es/log
#es绑定的ip地址
network.host: 192.168.137.128
#初始化时可进行选举的节点
discovery.zen.ping.unicast.hosts: ["mini1", "mini2", "mini3"]

  4.拷贝到其他节点

[hadoop@mini1 es]$ scp -r elasticsearch-5.6./ mini2:/es/
[hadoop@mini1 es]$ scp -r elasticsearch-5.6./ mini3:/es/

  5.修改其他节点配置

  需要修改的有node.name和network.host

  6.启动 

  bin/elasticsearch -h查看帮助文档)
  bin/elasticsearch -d

  启动时会报:Cannot allocate memory,原因是内存不足,ES默认JVM内存为2G

  解决方案参考自:https://blog.csdn.net/qq942477618/article/details/53414983

  其他也会有一些启动问题,根据日志与博文排查即可:https://blog.csdn.net/feinifi/article/details/73633235?utm_source=itdadao&utm_medium=referral

  7.验证

    根据以上两篇博文排查完问题后就可以启动了,启动后访问默认的9200端口即可:mini1:9200

{
"name" : "es-1",
"cluster_name" : "es",
"cluster_uuid" : "qO0_NjifRiOnPUnWA-9W-Q",
"version" : {
"number" : "5.6.9",
"build_hash" : "877a590",
"build_date" : "2018-04-12T16:25:14.838Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}

  8.停止

    可以通过jps查看到其PID,也可以直接使用kill一步到位:

kill `ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'`

    当然,通过Jps也是可以轻松找出es的pid的:

jps | grep Elasticsearch | awk '{print $1}'

    那停止命令也可以长这样:

kill - `jps | grep Elasticsearch | awk '{print $1}'`

   9.一键启动脚本

    如果要编写一个一键启动脚本,那一个简单的示例如下:

#!/bin/bash
SERVERS="192.168.137.128 192.168.137.138 192.168.137.148"
echo "start es..."
for SERVER in $SERVERS
do
ssh $SERVER "source /etc/profile&&/es/elasticsearch-5.6.9/bin/elasticsearch -d"
done

  chmod +x以后就可以启动了

  10.安装head管理插件

    在线安装:

bin/plugin install mobz/elasticsearch-head

   离线安装需要先去github下载

./plugin install file:///home/bigdata/elasticsearch-head-master.zip

  这里通过查看es-head的github,发现已经不支持5.x了:

  

  独立server安装方式,参考:https://blog.csdn.net/xgjianstart/article/details/78780176

三、基本概念

    和之前的lucene是比较类似的,主要概念如下:

      node/cluster:Node是集群的节点,cluster表示集群;

      Index:数据管理的顶层单位叫index(索引),概念上类似数据库;

      Document:数据库中的记录就叫Document,一条条document组成了一个index;

      Type:Document的逻辑虚拟分组,概念上类似表,主要用来过滤Document;

    完整参考http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

四、基本操作

  es提供RESTful形式的操作,基本形式如下:

http://localhost:9200/<index>/<type>/[<id>]

  // 其中[]为可选,<>为必选

  1.新建与删除index

  使用linux的curl来完成,新增index:

[hadoop@mini1 elasticsearch-5.6.]$ curl -X PUT '192.168.137.128:9200/weather'

  删除同样简单,换成DELETE请求即可

[hadoop@mini1 elasticsearch-5.6.]$ curl -X DELETE '192.168.137.128:9200/weather'

  2.安装IK中文分词器

    https://github.com/medcl/elasticsearch-analysis-ik

    使用在线安装即可(安装博文参考:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

###更多操作,待更新

大数据入门第二十五天——elasticsearch入门的更多相关文章

  1. 大数据入门第二十五天——logstash入门

    一.概述 1.logstash是什么 根据官网介绍: Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据.转换数据,然后将数据发送到您最喜欢的 “存储库” 中.(我们的存储库 ...

  2. 大数据入门第十五天——HBase整合:云笔记项目

    一.功能简述 1.笔记本管理(增删改) 2.笔记管理 3.共享笔记查询功能 4.回收站 效果预览: 二.库表设计 1.设计理念 将云笔记信息分别存储在redis和hbase中. redis(缓存):存 ...

  3. 大数据笔记(十五)——Hive的体系结构与安装配置、数据模型

    一.常见的数据分析引擎 Hive:Hive是一个翻译器,一个基于Hadoop之上的数据仓库,把SQL语句翻译成一个  MapReduce程序.可以看成是Hive到MapReduce的映射器. Hive ...

  4. Spring入门第二十五课

    使用具名参数 直接看代码: db.properties jdbc.user=root jdbc.password=logan123 jdbc.driverClass=com.mysql.jdbc.Dr ...

  5. 孤荷凌寒自学python第二十五天初识python的time模块

    孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...

  6. 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

    无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...

  7. NeHe OpenGL教程 第二十五课:变形

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. javaSE第二十五天

    第二十五天    399 1:如何让Netbeans的东西Eclipse能访问.    399 2:GUI(了解)    399 (1)用户图形界面    399 (2)两个包:    399 (3) ...

  9. Bootstrap入门(十五)组件9:面板组件

    Bootstrap入门(十五)组件9:面板组件 虽然不总是必须,但是某些时候你可能需要将某些 DOM 内容放到一个盒子里.对于这种情况,可以试试面板组件. 1.基本实例 2.带标题的面板 3.情景效果 ...

随机推荐

  1. Echarts地图绘制(散点,色卡)

    echarts绘制地图时,提供了js内部注册,也提供了json数据手动注册,这两种都可以绘制对应地图,但有一点不同的是,js内部只注册了中国地图和世界地图,而json数据提供了世界,中国,中国城市的数 ...

  2. Origin绘制双Y轴图的方法

    1.已有数据绘图如下,其中网络流量的单位是M Bytes/s,与另外两组数据的单位(时间)不同,现在要为其添加右侧Y轴. 2.首先选中该图像,找到工具条,点击第三个按钮“Add Right-Y Lay ...

  3. 团队项目个人进展——Day06

    一.昨天工作总结 冲刺第六天,深入学习了小程序官方文档,并看了几节小程序教程的视频 二.遇到的问题 对文档中的内容只是熟悉,理解并运用起来还存在问题 三.今日工作规划 学习微信小程序中WebSocke ...

  4. jQuery EasyUI datagrid列名包含特殊字符会导致表格错位

    首先申明:本文所述的Bug存在于1.3.3以及更高版本中,其它低版本,本人未测试,太老的版本不想去折腾了. 洒家在写前端的SQL执行工具时,表格用了 jQuery EasyUI datagrid,因为 ...

  5. 从零自学Java-4.使用字符串来交流

    1.使用字符串来存储文本: 2.在程序中显示字符串: 3.在字符串中包含特殊的字符: 4.拼接字符串: 5.在字符串中包含变量: 6.比较字符串: 7.判断字符串的长度: 程序Credits:显示一部 ...

  6. Sql2008R2的一个补丁BUG-大家使用时请注意

    我们都知道Sqlserver为了提高并发,允许乐观隔离级别(读提交快照,快照)以便读与写之间不阻塞.这里有一个在Sqlserver2008R2 SP2 的热补丁(CU11)下RCSI(读提交快照)隔离 ...

  7. MySQL索引原理及慢查询优化-zz

    https://tech.meituan.com/mysql-index.html MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所 ...

  8. MySQL索引背后的数据结构及算法原理(employees实例)

    摘要 http://blog.codinglabs.org/articles/theory-of-mysql-index.html 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特 ...

  9. Tomcat 一端口多项目,多端口多项目 server.xml

    ​ ​ 8080端口下项目的webURL为 http://localhost:8080/HelloWorld_spring/HelloController/helloWorld ​ 8081端口下项目 ...

  10. 题解 P2701 【[USACO5.3]巨大的牛棚Big Barn】

    题面 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚. 他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方. 我们假定,他的农场划分成 N x N 的方格.输入数据中包括有树的 ...