Shiva is punch core service. Unlike most of the other services it is developed and maintained by the punch team. This page aims to explain shiva layout and how to patch it in case of issues
Shiva is an application scheduler that lets you schedule and run various applications on to of a punch cluster.
Refer to the shiva documentation for understanding shiva architecture and role.
If you are familiar with kubernetes, see shiva as a lightweigth application scheduler just like kubernetes is a container scheduler. Shiva is much simpler of course, and does not provide any of the (many) kubernetest services such as kubernetes networking capabilities. Yet it allows you to deploy production-ready applications on physical or virtual servers.
A shiva node is a server equipped with shiva packages. It can act as a shiva leader or worker. Only workers run application. Here is the folder layout of shiva:
punchplatform-shiva-6.1.0/ ├── activate.sh ├── bin │ ├── archives-housekeeping │ ├── channels-monitoring │ ├── commons-lib.sh │ ├── elastalert │ ├── elasticsearch-housekeeping │ ├── hjson-manager │ ├── logstash │ ├── mlflow_api │ ├── planctl │ ├── platform-monitoring │ ├── punchlinectl │ ├── punchplatform-env.sh │ ├── punchplatform-lib.sh │ └── sparkctl ├── conf │ └── shiva.conf ├── data ├── log4j2 │ ├── log4j2.properties │ ├── log4j2-punchline.xml │ ├── log4j2-shiva-daemon.properties │ ├── log4j2-shiva-daemon.xml │ ├── log4j2-sparkctl.properties │ ├── log4j2-sparkctl.xml │ └── log4j2-stdout.xml ├── punchplatform.properties └── resolv.hjson
This folder conrains shiva configuration files together with all the startup (shell) command for applications possibly launched by shiva. There are also two punch platform-level configuration
punchplatform.properties) generated at deploy time. These contain the runtime information required to run shiva applications.
The binaries and libraries (i.e. executable) files are provided in a separate folder.
These are provided by a punch uber binary package named
punchplatform-binaries-*. The punch deployer install it on each punch node. Here is its layout:
punchplatform-binaries-6.1.0/ ├── apache-storm-2.1.0 ├── lib │ ├── spark/ │ ├── pyspark/ │ ├── storm/ │ ├── punchplatform-command-cli-6.1.0-jar-with-dependencies.jar │ ├── punchplatform-gateway-app-6.1.0.jar │ ├── punchplatform-log-injector-6.1.0-jar-with-dependencies.jar │ ├── punchplatform-monitoring-service-6.1.0-jar-with-dependencies.jar │ ├── punchplatform-puncher-6.1.0-jar-with-dependencies.jar │ ├── punchplatform-shiva-app-6.1.0-jar-with-dependencies.jar │ └── ... ├── logstash-7.4.2 ├── resources └── spark-2.4.3-bin-hadoop2.7
As you can see this folder contains both
punchplatform-shiva-app-*-jar-with-dependencies.jar which is Shiva service library but also
for example logstash binaries which are necessary to launch logstash as a Shiva application
Patch Shiva Service or a Shiva application¶
Refer to this documentation.