此前Elasticsearch我一直是单独搭建的,后来偶然发现可以在Cloudera Manager中添加ES服务,在搭建过程中这篇博客给了我很多帮助
https://www.cnblogs.com/zhangrui153169/p/11447423.html
但存在一些问题,在这里记录下来以作为这篇文章的补充,也希望能帮助大家减少踩坑。
一、制作Elasticsearch的Parcel包和csd文件1.配置java,maven等环境变量
java:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASSPATH
maven:
export MVN_HOME=/usr/local/maven
export PATH=$MVN_HOME/bin:$PATH
2.下载cm_ext
Cloudera提供的cm_ext工具,对生成的csd和parcel进行校验
Cloudera提供的cm_ext工具,对生成的csd和parcel进行校验
[root@cdh-001 ~]# mkdir -p /github/cloudera
[root@cdh-001 ~]# cd /github/cloudera
[root@cdh-001 cloudera]# git clone https://github.com/cloudera/cm_ext.git
[root@cdh-001 cloudera]# cd cm_ext
[root@cdh-001 cm_ext]# mvn package
下载Elasticsearch安装包
[root@cdh-001 cloudera]# mkdir elasticsearch
[root@cdh-001 cloudera]# cd elasticsearch
将elasticsearch包上传到 /github/cloudera/elasticsearch 目录下,我用的elasticsearch-6.2.4版本,贴上下载地址:
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
[root@cdh-001 elasticsearch]# ll
total 290568
-rw-r--r-- 1 root root 29056810 elasticsearch-6.2.4.tar.gz
[root@cdh-001 elasticsearch]# pwd
/github/cloudera/elasticsearch
下载制作Parcel包和CSD文件的脚本
[root@cdh-001 cloudera]# git clone https://github.com/ibagomel/elasticsearch-parcel.git
注意:这里是 /github/cloudera 目录
制作 Elasticsearch 的Parcel包和CSD文件并校验
[root@cdh-001 cloudera]# cd elasticsearch-parcel
[root@cdh-001 elasticsearch-parcel]# POINT_VERSION=5 VALIDATOR_DIR=/github/cloudera/cm_ext OS_VER=el7 PARCEL_NAME=ElasticSearch ./build-parcel.sh /github/cloudera/elasticsearch/elasticsearch-6.2.4.tar.gz
[root@cdh-001 elasticsearch-parcel]# VALIDATOR_DIR=/github/cloudera/cm_ext CSD_NAME=ElasticSearch ./build-csd.sh
OS_VER=el7 是指 linux 使用的Centos7.X版本
值得一提的是 路径一定要正确,pwd命令确认一下路径是有必要的
制作完成之后,elasticsearch-parcel 新增了build-parcel 和 build-csd文件夹,查看:
[root@cdh-001 elasticsearch-parcel]# ll build-parcel
total 28360
drwxr-xr-x 9 root root 155 ELASTICSEARCH-0.0.5.elasticsearch.p0.5
-rw-r--r-- 1 root root 29034518 ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel
-rw-r--r-- 1 root root 482 manifest.json
[root@cdh-001 elasticsearch-parcel]# ll build-csd
total 8
-rw-r--r-- 1 root root 5426 Oct 15 ELASTICSEARCH-1.0.jar
二、在Cloudrea Manager中安装部署Elasticsearch服务
1.将Parcel包:ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel 和 manifest.json 文件部署到httpd服务中
[root@cdh-001 ~]# mkdir -p /var/www/html/elasticsearch
[root@cdh-001 ~]# cd /var/www/html/elasticsearch
[root@cdh-001 elasticsearch]# cp /github/cloudera/elasticsearch-parcel/build-parcel/ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel ./
[root@cdh-001 elasticsearch]# cp /github/cloudera/elasticsearch-parcel/build-parcel/manifest.json ./
查看:
[root@cdh-001 elasticsearch]# ll
total 28360
-rwxrwxrwx 1 root root 29034518 ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel
-rwxrwxrwx 1 root root 482 manifest.json
[root@cdh-001 elasticsearch]# pwd
/var/www/html/elasticsearch
浏览器访问测试是否部署成功:
2.将生成的csd文件,复制到cloudera-manager-server服务所在节点的/opt/cloudera/csd目录下
[root@cdh-001 csd]# ll
total 8
-rwxrwxrwx 1 root root 5426 ELASTICSEARCH-1.0.jar
[root@cdh-001 csd]# pwd
/opt/cloudera/csd
3.重启cloudera-scm-server服务
[root@cdh-001 ~]# cd /opt/cm-5.15.0/etc/init.d
[root@cdh-001 init.d]# ll
total 84
-rwxr-xr-x. 1 1106 4001 8871 May 24 2018 cloudera-scm-agent
-rwxr-xr-x. 1 1106 4001 8417 May 24 2018 cloudera-scm-server
-rwxr-xr-x. 1 1106 4001 4444 May 24 2018 cloudera-scm-server-db
-rw-r--r-- 1 root root 51988 Jun 26 2019 QueryResult.java
[root@cdh-001 init.d]# ./cloudera-scm-server restart
Stopping cloudera-scm-server: [ OK ]
Starting cloudera-scm-server: [ OK ]
4.配置远程Parcel存储库
5.下载,分配,并激活
6.添加服务(因为我已经添加了,所以无法选择)
选择主机,定义ES集群名称(cluster.name),名称任意取,默认名称为data-lakes,但是集群的每台主机的集群名字需要一样,不然会被认为是另一个ES集群的主机。
第一次添加失败,产生stdout(标准输出设备)和stderr(标准错误输出设备)两种日志,查看stdout完整日志发现:
需要修改服务器配置
[root@cdh-001 ~]# vim /etc/security/limits.conf
#添加配置,*代表所有的用户都使用该配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
再重启Elasticsearch,启动成功。
作者:果粒多