1、部署java、maven及环境变量
maven下载:https://mirrors.bfsu.edu.cn/apache/maven/maven-3/
export JAVA_HOME=/home/bigdata/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin
export MVN_HOME=/home/bigdata/soft/maven
export PATH=$PATH:$MVN_HOME/bin
2、下载cm_ext
Cloudera提供的cm_ext工具,对生成的csd和parcel进行校验
[root@bigdata02 bigdata]# mkdir -p /home/bigdata/github/cloudera
[root@bigdata02 bigdata]# cd /home/bigdata/github/cloudera
[root@bigdata02 cloudera]# git clone http://github.com/cloudera/cm_ext.git
[root@bigdata02 cloudera]# ll
total 0
drwxr-xr-x 6 root root 142 Jul 27 11:00 cm_ext
[root@bigdata02 cloudera]# cd cm_ext/
[root@bigdata02 cm_ext]# ll
total 20
drwxr-xr-x 3 root root 32 Jul 27 11:00 cm-schema
-rw-r--r-- 1 root root 11358 Jul 27 11:00 LICENSE.txt
drwxr-xr-x 3 root root 122 Jul 27 11:00 make_manifest
-rw-r--r-- 1 root root 640 Jul 27 11:00 pom.xml
-rw-r--r-- 1 root root 844 Jul 27 11:00 README.md
drwxr-xr-x 3 root root 49 Jul 27 11:00 validator
mvn打包
[root@bigdata02 cm_ext]# mvn package -Dmaven.test.skip=true
build_parcel.sh和build_csd.sh脚本文件里面执行jar包路径默认是/home/bigdata/github/cloudera/...
3、制作es的parcel和csd
(1)下载es:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
创建es目录,将包上传到es目录下
(2)下载制作Parcel包和CSD文件的脚本
使用了好几个仓库,只有下面这个可以下载成功
git clone http://github.com/chen32699/elasticsearch-parcel.git
修改配置文件elasticsearch-parcel/parcel-src/meta目录下parcel.json文件中
"depends": "CDH (>= 5.0), CDH (<< 6.0)" 修改成"depends": "CDH (>= 5.0), CDH (<< 10.0)"
修改配置文件elasticsearch-parcel/csd-src/descriptor/目录下service.sd1文件中 "cdhVersion": {"min":5} 修改为:"cdhVersion": {"min":6}
elasticsearch-parcel/csd-src/scripts目录下control.sh文件中注释掉export JAVA_HOME=/usr/java/latest
(3)制作ES的parcel包和CSD文件并校验
cd elasticsearch-parcel
[root@bigdata02 elasticsearch-parcel]# POINT_VERSION=5 VALIDATOR_DIR=/home/bigdata/github/cloudera/cm_ext OS_VER=el7 PARCEL_NAME=ElasticSearch ./build-parcel.sh /home/bigdata/github/cloudera/es/elasticsearch-7.13.2-linux-x86_64.tar.gz
[root@bigdata02 elasticsearch-parcel]# VALIDATOR_DIR=/home/bigdata/github/cloudera/cm_ext CSD_NAME=ElasticSearch ./build-csd.sh
注:OS_VER=el7 是指 linux 使用的CentOS7版本
制作完成之后,elasticsearch-parcel 新增了build-parcel 和 build-csd文件夹
4、在cm中安装部署es
(1)将ELASTICSEARCH-1.0.jar拷贝到cm server所在节点的/opt/cloudera/csd目录下,给cm权限属主
(2)将ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel和manifest.json拷贝到部署了httpd主机上/var/www/html/es目录下
(3)检查新parcel 找到ELASTICSEARCH 下载、分发、激活
(4)重启cm server服务 和cm web页面服务
(5)添加es组件
配置集群ip
(6)验证es是否正常
通过命令验证 curl http://10.102.0.64:9200/
通过页面验证 http://10.102.0.64:9200
总结步骤如下:
1. git clone https://github.com/cloudera/cm_ext.git
2. cm_ext 下 mvn clean package -Dmaven.test.skip=true
3. git clone https://github.com/ibagomel/elasticsearch-parcel.git
4. elasticsearch-parcel 下
4.1:parcel-src/meta/parcel.json >>>> 修改为:"depends": "CDH (>= 5.0), CDH (<< 10.0)",
4.2:csd-src/descriptor/service.sdl >>>> 修改为:"cdhVersion": {
"min": 6
}
4.3:POINT_VERSION=5 VALIDATOR_DIR=/cdh/software/es/cm_ext OS_VER=el7 PARCEL_NAME=ElasticSearch ./build-parcel.sh /cdh/software/es/es/elasticsearch-7.0.1-linux-x86_64.tar.gz
4.4:VALIDATOR_DIR=/cdh/software/es/cm_ext CSD_NAME=ElasticSearch ./build-csd.sh
5. build-csd下的 ELASTICSEARCH-1.0.jar 复制到 /opt/cloudera/csd
6. build-parcel下的 ****.parcel 和 manifest.json 复制到了 /var/www/html/es/ 下
7. /opt/cloudera/csd
/opt/cloudera/parcel-repo
赋权给CM的用户: cd /opt/cloudera/csd
chown -R cloudera-scm:cloudera-scm ./*
cd /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm ./*
8. CM web页面重启服务
9. 主机-parcel-配置 添加远程Parcel存储库URL http:/UserHostname/es/ eg:(http://CDH01/esnew/)
10. 检查新parcel 找到ELASTICSEARCH 下载、分发、激活
11. 重启cm 添加服务注意:以下问题全部节点执行
Q1: could not find java in JAVA_HOME or bundled at /usr/java/latest/bin/java执行: 建立JAVA_HOMR的软连接: ln -s /usr/java/jdk1.8.0_11/ /usr/java/latest (不需要按照上面的步骤重新打包来一遍)
或者:elasticsearch-parcel/csd-src/scripts/control.sh (重新打包)
Q2: Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: org.elasticsearch.cli.UserException:
unable to create temporary keystore at [/opt/cloudera/parcels/ELASTICSEARCH/config/elasticsearch.keystore.tmp], please check filesystem permissions
Likely root cause: java.nio.file.AccessDeniedException: /opt/cloudera/parcels/ELASTICSEARCH-0.0.5.elasticsearch.p0.5/config/elasticsearch.keystore.tmp执行: chmod 777 /opt/cloudera/parcels/ELASTICSEARCH-0.0.5.elasticsearch.p0.5/config/



