Skip to content

XSEDE/CRI_Bigtop_Stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRI_Bigtop_Stack

Configuration to deploy Apache Bigtop on Rocky Linux 8

Initial OS config:

  1. Enable PowerTools repo

  2. Install dependencies:

       dnf install epel-release vim git strace lsof java ruby puppet \
           wget yum-utils createrepo whois nfs-utils nfs-server bind-utils \
           R-core-devel R-devel openblas-devel httpd python3 python3-devel 
    
  3. Configure firewall as needed - internal net in trusted zone, public allow 80,443, and 22

  4. Generate certificates (this example uses certbot)

  5. Ensure https redirect is in place as usual

  6. Deploy local bigtop rpm repo

       cd /etc/yum.repos.d/
       wget https://dlcdn.apache.org/bigtop/bigtop-3.1.0/repos/rockylinux-8/bigtop.repo
       mkdir -p /usr/share/bigtop/releases/bigtop-3.1.0-rockylinux-8/
       reposync --repo bigtop --download-metadata -p /usr/share/bigtop/releases/bigtop-3.1.0-rockylinux-8/
       createrepo /usr/share/bigtop/releases/bigtop-3.1.0-rockylinux-8/
    
  7. Ensure hostname is resolvable and matches host defined in site.yaml

  8. Ensure /opt/bigtop is entered into /etc/exports for NFS-sharing across the cluster

      /opt/bigtop  10.0.0.0/24(rw,no_subtree_check,no_root_squash)
    
  9. Edit params in site.yaml appropriately

    (ensure desired modules are included, these can be compared against the available modules in /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/manifests/cluster.pp )

  10. Grab bigtop source release:

    mkdir -p /opt/bigtop/ && cd /opt/bigtop
    wget https://dlcdn.apache.org/bigtop/bigtop-3.1.0/bigtop-3.1.0-project.tar.gz
    tar xfvz bigtop-3.1.0-project.tar.gz 
    
  11. Copy hierdata config to main /etc/puppetlabs/puppet config dir:

    cp -r /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/hieradata/ /etc/puppetlabs/puppet/
    cp -r /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/hiera.yaml /etc/puppetlabs/puppet/
    
  12. DOUBLE CHECK THAT /etc/puppetlabs/puppet/hiera.yaml REFLECTS A CORRECT PATH FOR THE PUPPET CONFIG DIR

  13. Generate the necessary puppet modules via gradle

    cd /opt/bigtop/bigtop-3.1.0/
    ./gradlew toolchain-puppetmodules
    
  14. Overwrite the default config with this site.yaml file WHICH YOU HAVE ALREADY EDITED, RIGHT?

    cp ./site.yaml /etc/puppetlabs/puppet/hieradata/site.yaml

  15. Puppet apply! (do this in /tmp to avoid a particular error)

    puppet apply -d --modulepath="/opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/modules:/etc/puppetlabs/code/modules/" /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/manifests |& tee puppet_apply.log

  16. Apply httpd proxy config for zeppelin

  17. DO NOT OPEN THE FIREWALL TO ANTHING ELSE

  18. Change the zeppelin default password - in /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/modules/zeppelin/manifsts/SOMETHING OR better yet, do this in your site.yaml and ACL-protect it to within an inch of its life.

  19. If you wish to use R within Zeppelin:

    ln -s /usr/bin/python3 /usr/bin/python pip3 install jupyter-client grpcio protobuf And also install IRKernel via R and CRAN, then somehow convince the jupyter installation to use it correctly.

  20. Shiro authentication enabled for Zeppelin via:

    cd /etc/zeppelin/conf
    cp shiro.ini.template shiro.ini
    

    Edit shiro.ini to add class level users!

Worker Node Config

  1. Repeat on other nodes in your cluster as needed!?

    Except don't put their name in for the NAMENODE-FQDN. They should be added somewhere in... site.yaml, I suspect, but we haven't gotten that far yet.

  2. Sync /etc/hosts for sanity

  3. Enable PowerTools repo!

  4. Install OS-level deps:

       dnf install epel-release vim git strace lsof java ruby puppet \
           wget whois nfs-utils bind-utils \
           R-core-devel R-devel openblas-devel httpd python3 python3-devel 
    
  5. Add /opt/bigtop mount to /etc/fstab

    mkdir -p /opt/bigtop
    echo "<NAMENDE-FQDN>:/opt/bigtop    /opt/bigtop       nfs       defaults      0 0" > /etc/fstab
    mount -a
    
  6. Configure firewall as needed - internal net in trusted zone, public allow 22 only

  7. Grab site config from NAMENODE:

    #ON NAMENODE!
    scp -r /etc/puppetlabs/puppet/hiera* WORKERNODE:/etc/puppetlabs/puppet
    ``` <!-- end* -->
    
    
  8. Generate the necessary puppet modules via gradle

    cd /opt/bigtop/bigtop-3.1.0/
    ./gradlew toolchain-puppetmodules
    
  9. Puppet apply! (do this in /tmp to avoid a particular error)

    puppet apply -d --modulepath="/opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/modules:/etc/puppetlabs/code/modules/" /opt/bigtop/bigtop-3.1.0/bigtop-deploy/puppet/manifests |& tee puppet_apply.log

About

Configuration to deploy Apache Bigtop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published