CDH中添加Elasticsearch服务

此前Elasticsearch我一直是单独搭建的,后来偶然发现可以在Cloudera Manager中添加ES服务,在搭建过程中这篇博客给了我很多帮助

https://www.cnblogs.com/zhangrui153169/p/11447423.html

但存在一些问题,在这里记录下来以作为这篇文章的补充,也希望能帮助大家减少踩坑。

目前测试该方法适用于CDH5.X和6.X版本,对于6.X版本需要稍做修改,下面会有详细说明。

一、制作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=/home/plugin/apache-maven-3.3.9
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

如果mvn package出现如下的报错,两种解决方法:

第一种方法(推荐):

将mvn package改为执行:mvn clean package -Dmaven.test.skip=true

CDH中添加Elasticsearch服务_第1张图片

第二种方法:

在GitHub中下载完整的cm_ext包:https://github.com/guoliduo3/cm_ext ,上传到 /github/cloudera 目录中,然后解压,将解压文件改名为cm_ext,进入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 目录

下面是CDH6.X版本需要修改之处:

对于CDH6.X版本需要进行两处修改:
1.将elasticsearch-parcel文件夹下的 /parcel-src/meta/parcel.json文件 中 "depends": "CDH (>= 5.0), CDH (<< 6.0)" 修改为 "depends": "CDH (>= 5.0), CDH (<< 10.0)",

2.将elasticsearch-parcel文件夹下的 /csd-src/descriptor/service.sd1 文件中 "cdhVersion": {"min":5} 修改为:"cdhVersion": {"min":6}
  • 制作 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

浏览器访问测试是否部署成功:

CDH中添加Elasticsearch服务_第2张图片

2.将生成的csd文件(在生成的 build-csd 文件夹下),复制到cloudera-manager-server服务所在节点的/opt/cloudera/csd目录下

[root@cdh-001 build-csd]# cp /github/cloudera/elasticsearch-parcel/build-csd/ELASTICSEARCH-1.0.jar /opt/cloudera/csd
[root@cdh-001 build-csd]# cd /opt/cloudera/csd
[root@cdh-001 csd]# ll
total 8
-rwxrwxrwx 1 root root 5426  ELASTICSEARCH-1.0.jar

 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.下载,分配,并激活 (因为我的已经添加了,所以显示为停用)CDH中添加Elasticsearch服务_第3张图片

6.添加服务(因为我已经添加了,所以无法选择)

CDH中添加Elasticsearch服务_第4张图片 选择主机,定义ES集群名称(cluster.name),名称任意取,默认名称为data-lakes,但是集群的每台主机的集群名字需要一样,不然会被认为是另一个ES集群的主机。

CDH中添加Elasticsearch服务_第5张图片

 第一次添加失败,产生stdout(标准输出设备)和stderr(标准错误输出设备)两种日志,查看stdout完整日志发现:

CDH中添加Elasticsearch服务_第6张图片

需要修改服务器配置 (每一台添加了ES服务的主机都要修改)

[root@cdh-001 ~]# vim /etc/security/limits.conf
#添加配置,*代表所有的用户都使用该配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

再重启Elasticsearch,启动成功。

CDH中添加Elasticsearch服务_第7张图片

 

你可能感兴趣的:(#,ELK)