在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
2.4 配置elasticsearch.yml接下來在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/bingrunt 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啟動成功,如下圖所示:
5601是kibana默認的埠
問題: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