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.gzkibana-6.4.2-linux-x86_64.tar.gzAmbari-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-serverambari-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', '']12解决办法:需要修改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 true12345
手动创建用户(所有master和slave节点,组其实脚本已经创建了)
useradd -g elasticsearch elasticsearch1
上述执行完之后,安装界面点击retry重试,仍然有错误。
2、无法导入format_hdp_stack_version
错误提示:
ImportError: cannot import name format_hdp_stack_version1解决办法:
进入/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/*1server节点重启
ambari-server restart1slave节点重启
ambari-agent restart1之后重新安装或者重试,遇到下面错误。
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 kibana1之后重试,遇到下面警告,出现警告不能重试,暂时安装完成。
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!12345解决办法:进入目录
/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/configuration1
编辑elasticsearch-config.xml,发现其中的discovery.zen.ping.unicast.hosts属性的值是空的。
我们在安装的时候是填了这个参数的,将这个参数的值给补上。
<name>discovery.zen.ping.unicast.hosts</name><value>manager.node</value>12进入目录
/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts1编辑params.py,发现其中有两处hostname=config[‘hostname’]的写法。
将两处都修改为:
hostname = config['configurations']['elasticsearch-config']['discovery.zen.ping.unicast.hosts'] 1
清除所有elasticsearch slave节点的ambari-agent缓存。server节点重启ambari-server restartslave节点重启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 -Hnulimit -Sn12修改/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=2621441
然后执行命令sysctl -p生效
sysctl -p1
重启elasticsearch服务,发现出现如下错误。
7、parent directory /opt/elasticsearch/master/config doesnot exist
这个错误在另外两个slave节点上出现的。解决办法很简单,直接创建一个空的目录就可以。
mkdir -p /opt/elasticsearch/master/config1重启elasticsearch服务,服务不再停止了。
五、安装完成最终的主页如下图。
浏览器中打开http://manager.node:9200,出现如下界面。