1. 程式人生 > >ElasticSearch概述及Linux下的單機ElasticSearch安裝

ElasticSearch概述及Linux下的單機ElasticSearch安裝

這兩天在專案中要涉及到ElasticSearch的使用,就上網去搜索了一些這方面的資料,發現elasticSearch的安裝分為單機和叢集兩種方式。在本例中,我們重點介紹單機下的ElasticSearch的安裝,親測可用,記錄下來與各位同仁分享。

一、ElasticSearch概述

ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。

我們建立一個網站或應用程式,並要新增搜尋功能,令我們受打擊的是:搜尋工作是很難的。我們希望我們的搜尋解決方案要快,我們希望有一個零配置和一個完全免費的搜尋模式,我們希望能夠簡單地使用JSON通過HTTP的索引資料,我們希望我們的搜尋伺服器始終可用,我們希望能夠一臺開始並擴充套件到數百,我們要實時搜尋,我們要簡單的多租戶,我們希望建立一個雲的解決方案。Elasticsearch旨在解決所有這些問題和更多的問題。【百度百科】

幾個重要的核心概念

1、接近實時
ElasticSearch是一個接近實時的搜尋平臺,這就是說,從索引這個文件到這個文件能夠被搜尋到有一個輕微的延遲。

2、叢集和節點

一個叢集就是由一個或者多個節點組織在一起,它們共同的持有你整個的資料,通俗的來說就是一個或者多個伺服器,即組成叢集,而每個獨立的伺服器即是一個節點,一般在叢集中會有一個主節點,剩下的即為從節點,主節點和從節點共同負責參與資料的儲存和管理。

3、索引(index)

一個索引就是一個擁有幾分相似特徵的文件的集合。舉個例子,相信各位肯定有過在圖書館找書的經歷,每本書上都會貼著一個索引,而我們可以將每本書中的每一頁看作是文件,這樣的話看,索引就是一系列文件的集合。一個索引由一個名字來標識,並且當我們要對對應於這個索引中的文件進行索引,進行搜尋、更新和刪除的時候,都會用到這個名字。當然了,在叢集中,你可以根據自己的想法定義任意多的索引。

4、型別(type)

在一個索引中,你可以定義一種或者多種型別。一個型別是一個索引的一個邏輯上的分類/分割槽,其語義完全由你來定。通常來說,會為具有一組共同欄位的文件定義一個型別。再拿上述的例子,我們可以將書中的文字定義為一個數據型別,而為書中的資料定義為另外一個數據型別。

5、文件(document)

一個文件是一個可被索引的基礎資訊單元。文件是以JSON格式來表示,而JSON是一個到處存在的網際網路資料互動格式。

6、分片和複製

一個索引可以儲存超出單個結點硬體限制的大量資料。比如,一個具有10億文件的索引佔據1TB的磁碟空間,而任一節點都沒有這樣大的磁碟空間;或者單個節點處理搜尋請求,響應太慢。

為了解決這個問題,Elasticsearch提供了將索引劃分成多份的能力,這些份就叫做分片。當你建立一個索引的時候,你可以指定你想要的分片的數量。每個分片本身也是一個功能完善並且獨立的“索引”,這個“索引”可以被放置到叢集中的任何節點上。

分片的重要性的原因:
允許你水平分割/擴充套件你的內容容量
允許你在分片(潛在地,位於多個節點上)之上進行分散式的、並行的操作,進而提高效能/吞吐量

在一個網路/雲的環境裡,失敗隨時都可能發生,在某個分片/節點不知怎麼的就處於離線狀態,或者由於任何原因消失了,這種情況下,有一個故障轉移機制是非常有用並且是強烈推薦的。為此目的,Elasticsearch允許你建立分片的一份或多份拷貝,這些拷貝叫做複製分片,或者直接叫複製。

複製的重要性的原因:
在分片/節點失敗的情況下,提供了高可用性。因為這個原因,注意到複製分片從不與原/主要(original/primary)分片置於同一節點上是非常重要的。
擴充套件你的搜尋量/吞吐量,因為搜尋可以在所有的複製上並行執行

總之,每個索引可以被分成多個分片。一個索引也可以被複制0次(意思是沒有複製)或多次。一旦複製了,每個索引就有了主分片(作為複製源的原來的分片)和複製分片(主分片的拷貝)之別。分片和複製的數量可以在索引建立的時候指定。在索引建立之後,你可以在任何時候動態地改變複製的數量,但是你事後不能改變分片的數量。

預設情況下,Elasticsearch中的每個索引被分片5個主分片和1個複製,這意味著,如果你的叢集中至少有兩個節點,你的索引將會有5個主分片和另外5個複製分片(1個完全拷貝),這樣的話每個索引總共就有10個分片。

二、Linux下的單機ElasticSearch安裝

準備工作:

作業系統:Centos 7 IP:192.168..18.228

這裡寫圖片描述

1、安裝JDK,並且設定環境變數和使之生效(略,這一步可以去參照我之前的博文“hadoop+hive的安裝配置”裡寫的很詳細),如圖所示,jdk安裝成功:

這裡寫圖片描述

2、新增新的使用者,在本例中新增的使用者名稱為es:

[[email protected] ~] useradd es
[[email protected] ~] passwd es

切換到es使用者下:

3、建立新的資料夾,並將之後的所有的檔案放到這個資料夾,如圖:

這裡寫圖片描述

4、將下載好的elasticsearch-1.7.3.tar.gz複製到3中新建的資料夾下,並解壓:

如何上傳呢?請參照我之前的博文“hadoop+hive的安裝配置”,用scp命令將elasticsearch-1.7.3.tar.gz從本地上傳到3中新建的資料夾下。

解壓:

tar -zxvf elasticsearch-1.7.3.tar.gz

解壓後,並賦予普通使用者es,如下圖:

這裡寫圖片描述

5、進入elasticsearch的bin目錄下,啟動elassticsearch指令碼,如下圖:

這裡寫圖片描述

啟動成功後如下圖所示:

這裡寫圖片描述

也可以用如下命令進行後臺啟動:

這裡寫圖片描述

6、測試

(1)可以通過jps檢視,如圖:

這裡寫圖片描述

(2)用如下方法檢視:下圖中192.168.18.228有時可以換做是localhost,(另外是否要將elascticsearch下的config下的elasticsearch.yml中的network處替換成192.168.18.228,我未驗證,若未出現下圖所示,請將yml的network處替換成192.168.18.228,囧)

這裡寫圖片描述

若出現上圖,即為elasticsearch安裝成功。

7、安裝外掛elasticsearch-servicewrapper方便管理elasticsearch服務:

附:
./elasticsearch console ——-前臺執行
./elasticsearch start ——-後臺執行
./elasticsearch install——-新增到系統自動啟動
./elasticsearch remove——-取消隨系統自動啟動

8、後面的兩種外掛head和bigdesk是針對叢集管理的,我在本例中只是單機安裝,所以就沒必要安裝這兩款外掛了,有需要的可以參考以下的連結:

或者更多的連結可以參考學習交流:

本文同時參考了以下的連結:

相關推薦

ElasticSearch概述Linux單機ElasticSearch安裝

這兩天在專案中要涉及到ElasticSearch的使用,就上網去搜索了一些這方面的資料,發現elasticSearch的安裝分為單機和叢集兩種方式。在本例中,我們重點介紹單機下的ElasticSearch的安裝,親測可用,記錄下來與各位同仁分享。 一、Elas

elasticsearch+Kibana在linux的詳細安裝步驟

elasticsearch-6.4.2.tar.gz安裝介紹(單機版) 步驟1:安裝包下載拷貝至伺服器上。(啟動命令 進入檔案的bin目錄 ./elasticsearch 加上-d 後臺執行) 注意點:es不允許root使用者啟動,所以要新建另外一個使用者啟動es。Es預

Linux單機安裝部署kafka代碼實現

{} edt serial integer exc height 復制 有一個 images 技術交流群:233513714 這幾天研究了kafka的安裝及使用,在網上找了很多教程但是均以失敗告終,直到最後想起網絡方面的問題最終才安裝部署成功,下面就介紹一下kaf

Linuxrz/sz安裝使用方法

文件選擇 登錄 class onf track 運行 使用方法 con rec 新搞的雲服務器用SecureCRT不支持上傳和下載,沒有找到rz命令。記錄一下如何安裝rz/sz命令的方法。 一、工具說明 在SecureCR

linuxvsftpd的安裝配置

transfer rem mon wrap attack comment ftpd 用戶 user 1. 安裝 執行 yum -y install vsftpd 註:(1)可通過 rpm -qa|grep vsftpd 檢查是否已安裝 vsftpd .

Linuxrsync的安裝簡單使用

roc ack blog 應用 保持 image 常用 yum afa 一、RSYNC安裝源碼安裝:到rsync官網下載rsync源碼安裝包,上傳到服務器上,或者wget下載。解壓rsync源碼安裝包進入解壓後的目錄,執行 ./configure --prefix=/usr

LinuxMysql的安裝執行(詳解)

1、組及使用者建立: sudo groupadd mysql #新增組 sudo useradd -r -g mysql mysql #新增所建立組下的使用者 2、官方下載網址 wget http://downloads.mysql.com/archives/get/file/mysql-5

Linux使用ElasticSearch教程(一)

一:ElasticSearch在Linux下安裝簡單總結.       1.本次安裝的版本是ES6.3.2.版本.下載到壓縮包.解壓後直接來到當前的解壓目錄.       cd config     &n

Linux的MySQL安裝解除安裝

1.1  檢視mysql的安裝路徑: [[email protected] ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql/usr/share/mysql /usr/share/man/man1

【轉載】linux的samba安裝配置

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linuxeclipse的安裝配置

Eclipse for Ubuntu:         Eclipse這款免費的IDE至今還有不少人在用,由於win10系統太耗費CPU資源,加之一直對Linux非常感興趣,想在Linux系統下玩玩,安裝配置過程中也踩了一些坑

LinuxOpencv的安裝配置使用

OpenCV是提供原始碼的,所以從這個角度來說,是不區分32或64位的。但是,OpenCV裡面也會有一些已經編譯好了的庫或執行檔案,那麼這個是要區分32或64位的。 一、安裝 1 安裝cmake及一些依賴庫 sudo apt-get install cmake sudo apt-get

Kafka學習筆記(1)----Kafka的簡介和Linux單機安裝

1. Kafka簡介   Kafka is a distributed,partitioned,replicated commit logservice。它提供了類似於JMS的特性,但是在設計實現上完全不同,此外它並不是JMS規範的實現。kafka對訊息儲存時根據Topic進行歸類,傳送訊息者成為Produ

linux測試elasticsearch的步驟,圖文解析

自己在測試時候遇到的問題這裡都寫了,真的是一模一樣,一篇好文! 1、外網訪問9200埠 系統centos7.0安裝elasticsearch後本機可以訪問127.0.0.1:9200,但不能訪問【公網IP:9200】如何解決? 修改配置檔

Nginx介紹linux安裝

是什麼? 高效能HTTP伺服器/反向代理伺服器。 用途? HTTP伺服器,做靜態資源(靜態網頁,圖片等)伺服器。 虛擬主機,實現一臺伺服器虛擬多個小網站。 反向代理、負載均衡,多臺伺服器叢集需要Nginx做反向代理,使伺服器之間負載均衡。 安裝? 1.安裝環境及依賴包

centos 7( linux )搭建elasticsearch踩坑記

目錄 概述 環境準備 elasticsearch配置 啟動踩坑記 彩蛋 概述     公司最近在做全文檢索的專案,發現elasticsearch踩了不少坑,百度點進去又是坑,在此記錄一下自己的

Linux原始碼包安裝Swoole基本使用

下載Swoole PECL擴充套件原始碼包:http://pecl.php.net/package/swoole 關於PHP版本依賴選擇: 下載好放到/usr/local/src下,解壓縮: tar -zxvf swoole-2.2.0.tgz 準備擴充套件安裝編譯環境:

Spark本地安裝Linux偽分散式搭建

title: Spark本地安裝及Linux下偽分散式搭建 date: 2018-12-01 12:34:35 tags: Spark categories: 大資料 toc: true 個人github部落格:Josonlee’s Blog 文章目錄

LinuxmongoDB的安裝解除安裝

軟體包 MongoDB在自己的倉庫中提供官方支援的軟體包,該倉庫包含下列包: 包名 描述 mongodb-org 一個集合包,它將自動安裝下面列出的四個元件包 mongodb-org-server 該包中包含mongod守護程式,關聯的ini

linux通過yum安裝svn配置

1.環境 centos6.4 2.安裝svn yum -y install subversion 3.配置 建立版本庫目錄 mkdir /www/svndata svnserve -d -r /www/svndata 4.建立版本庫 建立一個新的Subversio