ambari2.7.4+hdp3.1集成elastic search


一、准備工作

1、環境准備

ambari版本 2.7.4 hdp版本3.1

已在虛擬機中提前搭建好了集群環境。

只有一台虛擬機 所以全部采取單節點模式。

主機名 master

ip 192.168.134.132

其中,elasticsearch master安裝到master管理節點,elasticsearch slave安裝到所有節點。
Kibana server服務安裝到master管理節點。
(注意:/etc/hosts中一定要將主機名和IP做好對應)

2、所需要安裝包
elasticsearch-6.4.2.tar.gz
kibana-6.4.2-linux-x86_64.tar.gz
Ambari-Elastic-Service-master.zip
下載地址:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-2
下載地址:
https://www.elastic.co/cn/downloads/past-releases/kibana-6-4-2
下載地址:
https://github.com/BalaBalaYi/Ambari-Elastic-Service

 

二、上傳解壓拷貝
1、Ambari-Elastic-Service-master.zip
新建/opt/es目錄,將Ambari-Elastic-Service-master.zip上傳至此目錄並解壓。

進入解壓后的目錄內

將ELASTICSEARCH-6.4.x文件夾和KIBANA-6.4.x文件夾拷貝到/var/lib/ambari-server/resources/stacks/HDP/3.0/services目錄

進入/var/lib/ambari-server/resources/stacks/HDP/3.0/services目錄

將ELASTICSEARCH-6.4.x和KIBANA-6.4.x重命名

2、elasticsearch-6.4.2.tar.gz 和 kibana-6.4.2-linux-x86_64.tar.gz
新建/var/www/html/es目錄,將kibana-6.4.2-linux-x86_64.tar.gz和elasticsearch-6.4.2.tar.gz兩個壓縮包上傳至此目錄
通過瀏覽器輸入http://manager.node/es測試能否訪問此目錄(需要有httpd服務)

3、重啟ambari-server
ambari-server restart
三、安裝
addservice

勾選Elasticsearch和Kibana

選擇master和server服務安裝的節點

選擇slave服務安裝的節點

服務配置界面有紅點提示需要補充完整

elasticsearch的Discovery Zen Ping Unicast Hosts參數(之前所選安裝的節點)

elasticsearch的Elasticsearch Download Url參數(安裝包地址)

kibana的Elasticsearch Url參數(es的使用地址)

kibana的Server Host參數(之前所選安裝的節點)

kibana的Kibana Download Url(安裝包地址)

點下一步點部署,遇到了錯誤。

四、遇到問題
1、用戶名組的問題

錯誤提示:

KeyError: u'elasticsearch'
Error: Error: Unable to run the custom hook script ['/usr/bin/python', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py', 'ANY', '/var/lib/ambari-agent/data/command-102.json', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY', '/var/lib/ambari-agent/data/structured-out-102.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1_2', '']
1
2
解決辦法:需要修改ambari-server資源中的一個配置參數,將gnore_groupsusers_create由false改為true。之后手動創建用戶。
具體步驟:

cd /var/lib/ambari-server/resources/scripts

python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a get -c cluster-env | grep -i ignore_groupsusers_create

python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a set -c cluster-env -k ignore_groupsusers_create -v true
1
2
3
4
5

手動創建用戶(所有master和slave節點,組其實腳本已經創建了)

useradd -g elasticsearch elasticsearch
1

上述執行完之后,安裝界面點擊retry重試,仍然有錯誤。

2、無法導入format_hdp_stack_version

錯誤提示:

ImportError: cannot import name format_hdp_stack_version
1
解決辦法:

進入/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts目錄。

編輯 params.py,將params.py文件中的format_hdp_stack_version刪除。

清除所有elasticsearch slave節點的ambari-agent緩存。

rm -rf /var/lib/ambari-agent/cache/*
1
server節點重啟

ambari-server restart
1
slave節點重啟

ambari-agent restart
1
之后重新安裝或者重試,遇到下面錯誤。


3、kibana無法導入format_hdp_stack_version

解決辦法同上。
只不過進入的目錄是/var/lib/ambari-server/resources/stacks/HDP/3.0/services/KIBANA/package/scripts目錄。
清除緩存,重啟ambari server和agent服務。
之后重新安裝或者重試,遇到下面錯誤。

4、kibana的_new__() takes at least 2 arguments(1 given)

原因是需要創建kibana用戶。
在kibana server節點上創建kibana用戶(組其實腳本已經創建了)。

useradd -g kibana kibana
1
之后重試,遇到下面警告,出現警告不能重試,暫時安裝完成。


5、hostname was not found in configuration dictionary

點擊restart重啟服務,失敗,查看錯誤信息。

錯誤提示:

File "/var/lib/ambari-agent/cache/stacks/HDP/3.0/services/ELASTICSEARCH/package/templates/elasticsearch.master.yml.j2", line 93, in top-level template code
action.destructive_requires_name: {{action_destructive_requires_name}}
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/config_dictionary.py", line 73, in __getattr__
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'hostname' was not found in configurations dictionary!
1
2
3
4
5
解決辦法:
進入目錄

/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/configuration
1

編輯elasticsearch-config.xml,發現其中的discovery.zen.ping.unicast.hosts屬性的值是空的。

我們在安裝的時候是填了這個參數的,將這個參數的值給補上。

<name>discovery.zen.ping.unicast.hosts</name>
<value>manager.node</value>
1
2
進入目錄

/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts
1
編輯params.py,發現其中有兩處hostname=config[‘hostname’]的寫法。

將兩處都修改為:

hostname = config['configurations']['elasticsearch-config']['discovery.zen.ping.unicast.hosts']
1

清除所有elasticsearch slave節點的ambari-agent緩存。
server節點重啟ambari-server restart
slave節點重啟ambari-agent restart
重啟elasticsearch服務,發現服務可以啟動了,但是沒過多久又失敗了。

6、master和slave都啟動又停止
查看日志會發現提示這兩個錯誤。

錯誤提示:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
1
解決辦法:
每個進程最大同時打開文件數太小,可通過下面2個命令查看當前數量

ulimit -Hn
ulimit -Sn
1
2
修改/etc/security/limits.conf文件,增加配置(所有master和slave節點)。

錯誤提示:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
1
解決辦法:
修改/etc/sysctl.conf文件,增加配置(所有master和slave節點)。

vm.max_map_count=262144
1

然后執行命令sysctl -p生效

sysctl -p
1

重啟elasticsearch服務,發現出現如下錯誤。

7、parent directory /opt/elasticsearch/master/config doesnot exist

這個錯誤在另外兩個slave節點上出現的。
解決辦法很簡單,直接創建一個空的目錄就可以。

mkdir -p /opt/elasticsearch/master/config
1
重啟elasticsearch服務,服務不再停止了。

五、安裝完成
最終的主頁如下圖。

瀏覽器中打開http://manager.node:9200,出現如下界面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM