Cloudera Manager中安装部署Elasticsearch服务

  1. 制作Elasticsearch的Parcel包和csd文件

  2. 将Parcel包和manifest.json文件部署到httpd服务中

    [[email protected] ~]# mkdir -p /var/www/html/elasticsearch
    [[email protected] ~]# cd /var/www/html/elasticsearch
    [[email protected] elasticsearch]# cp /root/github/cloudera/elasticsearch-parcel/build-parcel/ELASTICSEARCH-0.0.5.elasticsearch.p0.5/ ./
    [[email protected] elasticsearch]# cp /root/github/cloudera/elasticsearch-parcel/build-parcel/manifest.json ./
    [[email protected] elasticsearch]# ll
    total 338924
    -rw-r--r-- 1 root root 347041696 May  5 10:23 ELASTICSEARCH-0.0.5.elasticsearch.p0.5-xenial.parcel
    -rw-r--r-- 1 root root       485 May  5 10:23 manifest.json
    

    浏览器访问是否部署成功
    Cloudera Manager中安装部署Elasticsearch服务

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

    [[email protected] ~]# cd /opt/cloudera/csd/
    [[email protected] csd]# cp ~/github/cloudera/elasticsearch-parcel/build-csd/ELASTICSEARCH-1.0.jar ./
    
  4. 重启cloudera-scm-server服务

    [[email protected] ~]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-server restart
    
  5. 配置远程Parcel存储库 Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务

  6. 重启Cloudera Management Service
    Cloudera Manager中安装部署Elasticsearch服务

  7. 下载分发**
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务

  8. 部署Elasticsearch
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务

  9. 配置节点

    cluster.initial_master_nodes: ["bigdata-dev-41","bigdata-dev-42","bigdata-dev-43"]
    

    Cloudera Manager中安装部署Elasticsearch服务
    Cloudera Manager中安装部署Elasticsearch服务

  10. 遇到的问题

    1. 问题一
      could not find java in JAVA_HOME or bundled at /usr/java/latest/bin/java
      
      解决办法:
      [[email protected] cloudera]# cd elasticsearch-parcel
      [[email protected] cloudera]# cd csd-src/scripts/
      [[email protected] cloudera]# vim control.sh
      
      注释掉JAVA_HOME设置
      locateJava() {
      	echo
          #export JAVA_HOME=/usr/java/latest
          echo "Changing Java Home to: $JAVA_HOME"
      	export JAVA="$JAVA_HOME/bin/java"
      	echo "Changing Java to: $JAVA"
          echo
      }
      
    2. 问题二
      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
      	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
      	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
      	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
      	at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
      	at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
      	at java.nio.file.Files.newOutputStream(Files.java:216)
      	at org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:411)
      	at org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:407)
      	at org.apache.lucene.store.FSDirectory.createOutput(FSDirectory.java:255)
      	at org.elasticsearch.common.settings.KeyStoreWrapper.save(KeyStoreWrapper.java:467)
      	at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:232)
      	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:289)
      	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
      	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
      	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
      	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
      	at org.elasticsearch.cli.Command.main(Command.java:90)
      	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
      	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
      
      解决办法:
      在cdh集群各个节点均执行:
      chmod 777 /opt/cloudera/parcels/ELASTICSEARCH-0.0.5.elasticsearch.p0.5/config/