1. 程式人生 > >在suse Linux環境下搭建ES叢集

在suse Linux環境下搭建ES叢集

想成長為大牛的小白心血帖
虛擬機器:virtualbox 系統:suse Linux 11 sp3 elasticsearch:5.6.4 kibana:5.6.4

一.安裝jdk1.8

參考:https://jingyan.baidu.com/album/d5c4b52bebcb64da570dc571.html?picindex=2

1.       下載地址:

選擇版本:jdk-8u152-linux-x64.tar.gz

2.       解壓安裝包

在usr目錄下新建java資料夾,並將jdk-8u152-linux-x64.tar.gz拷貝到該資料夾中

cd /

cd usr

mkdir java

cd /home/suse-jiao/Downloads

mv jdk-8u152-linux-x64.tar.gz /usr/java  註釋:在當前目錄下將該檔案移動到usr/java資料夾下

tar –zxvf jdk-8u152-linux-x64.tar.gz


3.       配置環境變數

vi /etc/profile


在文件末尾插入紅框中的文字,注意間隔使用的是冒號。(注:輸入i,開始插入操作,結束插入,按ESC鍵,然後輸入:wq!  表示儲存並退出)。

source /etc/profile,使環境變數配置立即生效。

4.       檢測jdk安裝是否成功:

javac

java -version

echo $JAVA_HOME

echo $CLASSPATH

echo $PATH

新增安裝成功後的上述命令顯示

二、安裝elasticsearch

2.1 下載elasticsearch

在suse環境下的瀏覽器firefox中輸入一下網址:

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

下載elasticsearch-5.6.4.tar.gz

獲得root許可權:su

在usr資料夾中新建資料夾 elasticsearch

mkdir /elasticsearch

開啟elasticsearch-5.6.4.tar.gz所在資料夾:cd Downloads

將安裝包移動到新建的資料夾中

mv elasticsearch-5.6.4.tar.gz  /usr/elasticsearch

在新建的檔案目錄下解安裝包

tar –xvf elasticsearch-5.6.4.tar.gz

mv elasticsearch-5.6.4 elasticsearch-node1

2.2 啟動elasticsearch

es 5.X無法從root使用者啟動,所以要新建使用者

根目錄下執行

useradd es-xue

chown R es-xue  /usr/elasticsearch/elasticsearch-node1/

su s-xue

然後在su-xue使用者下

chmod 777 es-xue /usr/elasticsearch/elasticsearch-node1/

我的安裝路徑是/usr/elasticsearch/elasticsearch-node1,進入bin目錄

cd  /usr/elasticsearch/elasticsearch-node1/bin

./elasticsearch                 

啟動成功,如下顯示

問題1.

could not find any executable java binary.Please install java in your PATH or set JAV_HOME.

解決辦法:返回去檢查jdk環境變數配置。

問題2

1. Error occurred during initialization of VM  

2. Could not allocate metaspace: 1073741824 bytes 

解決辦法:

修改虛擬機器的記憶體:由2G變為4G(修改虛擬機器記憶體:關閉suse後,在virtualBox中選擇   設定->系統->記憶體大小)

但還有其他辦法,不過沒看懂,參考這裡http://hllvm.group.iteye.com/group/topic/39890

問題3:

如果以root身份執行將會出現以下問題

解決辦法:

2.3 建立ES資料檔案和日誌檔案

在usr/elasticsearch目錄下建立ES-data,然後在ES-data下建立data和logs資料夾

在根目錄下:

mkdir data

chown –R es-xue/data/

sue s-xue

cd data

mkdir –p /es/data

mkdir –p /es/logs

接下來在elasticsearch.yml中配置資料路徑引數

2.4 配置elasticsearch.yml


問題1.

問題2:

在配置中嘗試network配置中嘗試network.host設定為127.0.0.1或者本機的ip地址10.0.2.15,均不可以,

啟動後,如果只有本地可以訪問,嘗試修改配置檔案 elasticsearch.yml (‘#’ 表示註釋掉了)中network.host(注.配置檔案格式     :冒號後要空一格) 

為network.host: 0.0.0.0      預設埠是 9200

注意:關閉防火牆 或者開放9200埠



再次啟動時,不必再做對es-xue使用者做elasticsearch-node1資料夾的授權,直接在elasticsearch-node1/bin目錄下執行

./elasticsearch –d

表示ES後臺執行,然後 curl localhost:9200  出現以下結果:



在瀏覽器中顯示:


三、安裝head外掛

head  外掛是最好安裝的其中一個,elasticsearch  head是叢集管理工具、資料可化、增工具,Elasticsearch  語句可視

1)      下載head外掛

在root使用者許可權下解壓到和elasticsearch-node1同級的安裝路徑(我的是/usr/elasticsearch)

unzip elasticsearch-head-master.zip

[email protected]/usr/elasticsearch下修改檔名稱:mv elasticsearch-head-master head

2)      安裝node.js

head外掛的本質是一個nodejs工程,需要先安裝nodejs

選擇Linux系統64位

將下載的檔案安裝在和elasticsearch-node1(elasticsearch的安裝目錄)同級的目錄下

解壓node-v8.9.0-linux-x64.tar.gz

修改/etc/profile檔案,在檔案末尾新增

然後執行source/etc/profile


輸入node –v,驗證nodejs是否安裝成功

輸入npm –v,驗證npm是否成功

修改 cd 命令進入到elasticsearch-node1/config 檔案中,vi elasticsearch.yml檔案下新增 :http.cors.enabled:true

http.cors.allow-origin:"*"

3)    安裝grunt

root許可權下:開啟node安裝路徑,執行命令

npm install –g grunt

修改head路徑下的Gruntfile.js

4)      安裝head外掛

安裝head外掛的過程中,遇到phantomjs not found on path問題

下載phantomjs-2.1.1-linux-x86_64.tar.bz2

將其拷貝到head/tmp/phantomjs中

再次安裝head外掛

切換使用者到es-xue

安裝成功,啟動gruntserver

cd /head/node_modules/grunt/bin
grunt server

 

再次啟動elasticsearch

cd /elasticsearch-node1/bin
./elasticsearch -d

問題: 

ERROR: bootstrap checks failed

max file descriptors [4096] for elasticsearch process likely toolow, increase to at least [65536]

原因:無法建立本地檔案問題,使用者最大可建立檔案數太小

解決方案:

切換到root使用者,編輯limits.conf配置檔案, 新增類似如下內容:

vi /etc/security/limits.conf

新增如下內容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

注意*和字母之間的空格,否則永遠不會生效。

備註:* 代表Linux所有使用者名稱稱(比如hadoop)儲存、退出、重新登入才可生效

問題: 

max virtual memory areas vm.max_map_count [65530] likely too low, increase toat least [262144]

原因:最大虛擬記憶體太小

解決方案:切換到root使用者下,修改配置檔案sysctl.conf

vi /etc/sysctl.conf

新增下面配置:

vm.max_map_count=655360

並執行命令:

sysctl -p

然後重新啟動elasticsearch,即可啟動成功。

問題

max size virtual memory [4930928640] for user [es-xue] is too low, increase to [unlimited]

max size virtual memory [52729364480] for user [elastic] is too low, increase to [unlimited]

(參考:https://stackoverflow.com/questions/42510873/elasticsearch-5-x-donot-start-max-size-virtual-memory-for-user-elastic-is-too

修改/etc/security/limits.conf,新增

* hard memlock unlimited
* soft memlock unlimited
*  - as unlimited

參考:


四 安裝kibana外掛

4.1 安裝kibana外掛

kibana是一個ElasticSearch的管理工具,它也是提供了對ES叢集操作的API.

下載:https://www.elastic.co/downloads/past-releases/kibana-5-6-4

版本:kibana-5.6.4   (和ElasticSearch版本一致)

Suse Linux系統下下載到本地,解壓到和ElasticSearch安裝同級的目錄,我的是/usr/elasticsearch/

根目錄下:

tar -xzf kibana-5.2.2-linux-x86_64.tar.gz

mv tar -xzf kibana-5.2.2-linux-x86_64.tar.gz kibana

es-xue

cd /usr/elasticsearch/kibana/conf

vi kibana.yml

server.host: “localhost”

elasticsearch.url=http://localhost:9201

儲存並關閉配置檔案後:

cd /usr/elasticsearch/kibana/bin

./kibana

kibana成功,如下所示:

 

5601kibana的埠


問題:kibanastaus: red    

根本原因是在配置kibana.yml中elasticsearch.url的值不存在,需要設定自己已經搭建好的ES連結。

五 搭建ES叢集

       以上在虛擬機器內將ES建好,並啟動起來了可以訪問了。將安裝好的elasticsearch-node1複製兩份,分別重新命名為elasticsearch-node2和elasticsearch-node3,對三個節點進行yml檔案的配置,配置引數如下:

       es-node1的elasticsearch.yml配置引數

cluster.name: elasticsearch-try
 
node.name: es-node1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
 
path.data: /data/es/data/
path.logs: /data/es/logs/
 
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
 
network.host: 0.0.0.0
transport.tcp.port: 9303
http.port: 9203
 
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts:["localhost:9301"]
discovery.zen.minimum_master_nodes: 1

es-node2的elasticsearch.yml配置引數
cluster.name: elasticsearch-try
 
node.name: es-node2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
 
path.data: /data/es/data/
path.logs: /data/es/logs/
 
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
 
network.host: 0.0.0.0
transport.tcp.port: 9305
http.port: 9205
 
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts: ["localhost:9301"]
discovery.zen.minimum_master_nodes: 1

es-node3的elasticsearch.yml配置引數

cluster.name: elasticsearch-try
 
node.name: es-node3
node.master: true
node.data: true
node.max_local_storage_nodes: 3
 
path.data: /data/es/data/
path.logs: /data/es/logs/
 
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
 
network.host: 0.0.0.0
transport.tcp.port: 9303
http.port: 9203
 
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts:["localhost:9301"]
discovery.zen.minimum_master_nodes: 1

終於將三個節點在虛擬機器本地建起來了,5.6.4這個版本配置起來簡直是要吐血。

elasticsearch配置:http://rockelixir.iteye.com/blog/1883373

問題main error rollingfilemanager


其實是因為將data資料夾建在了根目錄下,沒有賦予使用者es-xue訪問許可權,在root許可權下執行命令:chown –R es-xue /data/es

問題:

No log4j2 configuration file found. Usingdefault configuration: log ging only errors to console.


在config/elasticsearch.yml中添加了node.max_local_storage_nodes: 3

然後對elasticsearch做了es-xue授權

問題:elasticsearch5.X 版本中,index的相關設定將不在yml配置檔案中定義,否則會出現以下錯誤提示:


es 2.*和5.*的配置差別:https://my.oschina.net/u/2475483/blog/849840







參考:https://www.cnblogs.com/lizichao1991/p/7809156.html

相關推薦

suse Linux環境搭建ES叢集

想成長為大牛的小白心血帖 虛擬機器:virtualbox 系統:suse Linux 11 sp3 elasticsearch:5.6.4 kibana:5.6.4 一.安裝jdk1.8 參考:ht

linux環境搭建memcached叢集(一)

一,準備工作 下載所需要的安裝包: memcached支援軟體:libevent memcached 叢集管理軟體:magent 連線到linux機器,將檔案拷貝上去。 二,開始安裝 1.安裝libevent: a.解壓libevent: tar -zxvf libe

Linux 環境搭建 Jenkins(Hudson)平臺

效果 swd gpo conf 有一個 信息 hudson track 文件 安裝jenkins:安裝 jenkins 有兩種方式:安裝方式一: [java] view plain copy sudo java -jar jenkins.war –htt

linux環境搭建MySQL

啟動mysql charset serve spool arm bundle mes SQ sign linux下搭建mysql的方式很多,網上也詳解了很多種搭建方式,有直接yum的、有rpm的、、總之,“坑”是層出不窮,有相關文件依賴性、權限、GPG keys等等。 本人

linux環境搭建MySQL數據庫的雙擊熱備

RoCE offset 可能 引入 The repl chang 操作系統 lis 準備服務器 由於Mysql不同版本之間的(二進制日誌)binlog格式可能會不太一樣,因此最好的搭配組合是主(Master)服務器的Mysql版本和從(Slave)服務器版本相同或者更低,

測試環境搭建和部署(在Linux環境搭建jdk+Tomcat+mysql環境和項目包的部署)

pri 環境 安裝包 mysq 自己 進行 配置jdk linu 連接數   1.Linux環境(我搭建的是64位centos版本的linux系統)   1.下載並安裝一個VMware Workstation虛擬機,是搭建Linux系統的平臺。     2.下載一個

linux環境搭建Go語言開發環境並設定語法高亮

這個部落格是我自己從頭開始搭建,在設定語法高亮的時候碰到了很多問題,主要原因嘛,就是網上搜索很多東西,大多都是同樣的內容,但是根據這個內容根本搭建不出Go語言的開發環境,為了給大家減少不必要的麻煩,現在我以我搭建的過程給大家講一下。 我使用的環境是CentOS6.5版,使用的是虛擬機器版本,

Linux環境搭建VPS服務

說明   由於大部分VPN被封,FQ過程中無意間接觸到了VPS(Virtual Private Server 虛擬專用伺服器,可用於FQ),所以簡單記錄下VPS服務搭建流程。   此教程基於centos7,本人選擇使用阿里雲伺服器(香港區域,可訪問外網)進行搭建。 安裝元件   安裝pyt

linux環境搭建自動化Jenkins管理工具

一、搭建一個jak--tomcat伺服器到自己的linux伺服器上   具體的伺服器搭建這裡可以參考華華大佬的部落格:https://www.cnblogs.com/liulinghua90/p/4661424.html 二、 如果通過http:ip地址:埠在瀏覽器訪問出現下   說明

linux環境搭建java web測試環境(非常詳細!!)

一.專案必備軟體及基本思路 專案必備:虛擬機器:VMware Workstation (已安裝linux的 CentOS6.5版本) 專案:java web專案 (必須在本地部署編譯後選擇專案的webRoot,改為ROOT(ROOT包含下面四個關鍵檔案),放到tomcat下的webapps

windows環境搭建Redis叢集

轉載請註明出處,原文章地址: https://www.cnblogs.com/tommy-huang/p/6240083.html Redis叢集:  如果部署到多臺電腦,就跟普通的叢集一樣;因為Redis是單執行緒處理的,多核CPU也只能使用一個核, 所以部署在同一臺電腦上,通過執行多個Re

docker環境搭建hadoop叢集(ubuntu16.04 LTS系統)

我的思路是這樣: 安裝ubuntu系統---->下載docker---->在docker里拉取hadoop映象---->在此映象裡建立三個容器(Master、Slave1、Slave2)---->完成完全分散式 1.   安裝ubuntu系統(無論你

Linux環境搭建Apache伺服器(完整版)

Linux下搭建Apache伺服器(完整版) 什麼是Apache? Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵程式碼共享和尊重原作者的著作權,同樣允許程式碼修改,再發布(作為開源或商業軟體)。需要

linux環境搭建禪道管理系統

vmware Linux: Centos 6.7禪道安裝包:ZenTaoPMS.10.0.stable.zbox_64.tar.gz將安裝包放在/opt目錄下並解壓tar -zxvf ZenTaoPMS.10.0.stable.zbox_64.tar.gzcd /zbox./

linux環境搭建一個基於tcp的客戶端和伺服器

客戶端 //TCP 客戶端程式碼 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #in

Linux環境搭建jenkins平臺

1.下載jenkins.war包 2.使用Xshell 5工具通過SSH連線到linux伺服器,在/usr/local下新建一個jenkins目錄,用來存放jenkins.war包:mkdir jenkins 3.使用Xftp工具將jenkins.war拖到/usr/loc

linux 環境搭建django開發環境

Django是網站開發不錯的框架,使用python可以快速方便的搭建網站開發環境,如果想快速學習Django,“the django book”是一個不錯的選擇,下邊簡介一下linux下搭建django開發環境。 1. pyhton安裝 當下大部分的Mac和Linux系統中

在windows環境搭建mysql叢集

1. 前(fei)言(hua) 最近實訓老師給我們佈置了一個建立mysql叢集的任務,並扔了兩個部落格連結給我們參考,然後就沒有然後了。根據老師給的部落格上面的步驟試了一下,發現並不能成功建立,於是自己百度,找到了一個挺靠譜的部落格,於是參考了一下,感覺總體還

Windows和Linux環境搭建SVN伺服器

--------------------------Windows下搭建SVN伺服器----------------------------- 一、安裝SVN服務端 軟體包Setup-Subversion-1.8.17.msi,下載地址:https://source

linux環境搭建java web測試環境

一.專案必備軟體及基本思路 專案必備: 虛擬機器:VMware Workstation (已安裝linux的 CentOS6.5版本)  專案:java web專案 (必須在本地部署編譯後選擇專案的webRoot,改為ROOT(ROOT包含下面四個關鍵檔案),放到tomca