This topic discusses administration activities such as log monitoring, pod scaling, configuration changes, basic administrative tasks (backup, restore, clean, and so on), and Dremio upgrading.
Dremio logs can be viewed by using one of the following methods:
Logs are written to the container’s console (stdout).
These logs can be monitored using the kubectl
command.
All the logs (server.log, server.out, server.gc and access.log) are written to the console simultaneously.
You can view the logs using the kubectl logs
or kubectl logs -f
command.
kubectl logs <container-name>
kubectl logs -f <container-name>
Azure provides integration with AKS clusters and Azure Log Analytics to monitor container logs. This is a standard practice that puts infrastructure in place to aggregate logs from containers into a central log store and analyze them.
Azure AKS log monitoring is useful for the following reasons:
You can enable log monitoring either when creating a AKS cluster and after the cluster has been created.
Once logging is enabled, all your container stdout
and stderr
logs are collected by the infrastructure for you to analyze.
While creating a AKS cluster, enable container monitoring. You can use can existing Log Analytics workspace or create a new one.
In an existing AKS cluster where monitoring was not enabled during creation, go to Logs on the AKS cluster and enable it.
To view all the container logs:
When you scale up or down the number of Dremio’s pods (master-coordinator, executors, or slave-coordinators),
you are changing the number of Dremio pods.
All scaling values remain in affect until another helm upgrade
command is run.
Performance
If you scale down the number of pods (either temporarily or permanently), already created reflections may need to be re-created during the next refresh. This could result in a delay for up-to-date data reflections.
helm list
command. For example:
helm list
NAME REVISION UPDATED STATUS CHART NAMESPACE
plundering-alpaca 1 Wed Jul 18 09:36:14 2018 DEPLOYED dremio-0.0.5 default
helm upgrade --wait <chart release name> . --set <dremio pod=value>
command.For example, Dremio executor pods could be scaled up/down with the following commands where plundering-alpaca is the chart release name and the pod count is 5:
helm upgrade --wait plundering-alpaca . --set executor.count=5
Once you scale up/down a Dremio pod, if helm upgrade
is run again
(either for scaling, changing your configuration, or upgrading)
the configuration resets to the defaults specified in the values.yaml file.
All scaling values remain in affect until another helm upgrade
command is run.
When a subsequent helm upgrade
command is run, values are reset to the default in the value.yaml file.
For example, if you scale up the slave-coordinators to 3 and then scale up the executors to 5,
the slave-coordinator is reset to 0 (default) after the executor is scaled up/down to 5
Scale to Zero
If you scale all of the Dremio pods down to zero (0), you are effectively shutting down the Dremio cluster.
To permanently change your default values, update the values.yaml file. See Changing your Configuration for more information.
If you need to update your configuration, this can be done after installation by
re-editing the configuration files and then upgrading using the helm upgrade <chart release name> .
command.
The upgrade process pushes out your changes to all of the pods in your Kubernetes cluster and restarts the pods.
For example, if you want to permanently increase the number of Dremio executor pods to five (5):
executor.count
.
In this example, executor.count
is 5 and the other executor defaults remain unchanged.
executor:
memory: 16384
cpu: 4
count: 5
volumeSize: 20Gi
helm upgrade --wait <chart release name> .
command.
In this example, plundering-alpaca is the chart release name:
helm upgrade --wait plundering-alpaca .
Tip
If it takes longer than a couple of minutes to complete, check the status of the pods via
kubectl get pods
.If the pods are pending scheduling due to limited memory or cpu, either re-adjust the values in the values.yaml file or add more resources to your Kubernetes cluster.
The following are the Dremio administration command that can be run on the Dremio+Kubernetes cluster.
All commands except for the Dremio backup
command required that Dremio be shutdown/offline.
Command | Offline/Online | Notes |
---|---|---|
backup | online | /opt/dremio/bin/dremio-admin backup See Backup Dremio for more information. |
clean | offline | /opt/dremio/bin/dremio-admin clean See Metadata Cleanup for more information. |
restore | offline | /opt/dremio/bin/dremio-admin restore See Restore Dremio for more information. |
set-password | offline | /opt/dremio/bin/dremio-admin set-password See Reset Password for more information. |
The backup
command is run when Dremio is online.
It is run on the master-coordinator pod from a bash shell.
To run the backup command:
kubectl exec -it dremio-master-0 -- bash
/opt/dremio/bin/dremio-admin backup \
-u <DREMIO_ADMIN_USER> \
-p <DREMIO_ADMIN_PASS> \
-d <BACKUP_PATH>
The following Dremio commands are offline commands, that is, Dremio must not be running.
To temporarily shut down Dremio, scale down the master-coordinator to zero (0).
These offline commands are run by creating a Dremio Admin pod with the Dremio image and mounting the master-coordinator pod’s persistent volume.
To run offline dremio-admin commands:
helm install --wait dremio --set DremioAdmin=true
kubectl exec -it dremio-admin -- bash
bin/dremio-admin <offline command>
kubectl delete pod dremio-admin
After performing the offline command, you can restart your Dremio cluster.
You upgrade Dremio by updating the image
value in the values.yaml file to the new Dremio version and
running the helm upgrade
command.
During the upgrade process, existing pods are terminated and new pods are created with the new image. Once all the newly created pods are restarted and running, your Dremio cluster is upgraded.
To upgrade Dremio:
Ensure that your Dremio+Kubernetes cluster is backed up. See Backup for more information.
Ensure that there are no queries are running on the cluster.
Update the Dremio image tag in your values.yaml file.
For example, to change the Dremio CE image:
image: dremio/dremio-oss
imageTag: 11.0.0
...
Note
If you are changing the Dremio Enterprise Edition image, you do not need to change the
imagePullSecrets
property.
Get the chart release name with helm list
command. In the example below, the chart release name is plundering-alpaca.
helm list
NAME REVISION UPDATED STATUS CHART NAMESPACE
plundering-alpaca 1 Wed Jul 18 09:36:14 2018 DEPLOYED dremio-0.0.5 default
Run the helm upgrade --wait <chart release name> .
command to upgrade the deployment.
In this example, plundering-alpaca: helm upgrade plundering-alpaca .
Tip
The pods are restarted automatically after upgrading. If it takes longer than a couple of minutes to complete, check the status of the pods via
kubectl get pods
.If the pods are pending scheduling due to limited memory or cpu, either adjust the values in the values.yaml file (see Changing your Configuration) or add more resources to your Kubernetes cluster.