hadoop/hadoop-ozone/dist/README.md

85 lines
2.7 KiB
Markdown

<!---
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
# Ozone Distribution
This folder contains the project to create the binary ozone distribution and provide all the helper script and docker files to start it locally or in the cluster.
## Testing with local docker based cluster
After a full dist build you can find multiple docker-compose based cluster definition in the `target/ozone-*/compose` folder.
Please check the README files there.
Usually you can start the cluster with:
```
cd compose/ozone
docker-compose up -d
```
## Testing on Kubernetes
You can also test the ozone cluster in kubernetes. If you have no active kubernetes cluster you can start a local one with minikube:
```
minikube start
```
For testing in kubernetes you need to:
1. Create a docker image with the new build
2. Upload it to a docker registery
3. Deploy the cluster with apply kubernetes resources
The easiest way to do all these steps is using the [skaffold](https://github.com/GoogleContainerTools/skaffold) tool. After the [installation of skaffold](https://github.com/GoogleContainerTools/skaffold#installation), you can execute
```
skaffold run
```
in this (`hadoop-ozone/dist`) folder.
The default kubernetes resources set (`src/main/k8s/`) contains NodePort based service definitions for the Ozone Manager, Storage Container Manager and the S3 gateway.
With minikube you can access the services with:
```
minikube service s3g-public
minikube service om-public
minikube service scm-public
```
### Monitoring
Apache Hadoop Ozone supports Prometheus out-of the box. It contains a prometheus compatible exporter servlet. To start the monitoring you need a prometheus deploy in your kubernetes cluster:
```
cd src/main/k8s/prometheus
kubectl apply -f .
```
The prometheus ui also could be access via a NodePort service:
```
minikube service prometheus-public
```
### Notes on the Kubernetes setup
Please not that the provided kubernetes resources are not suitable production:
1. There are no security setup
2. The datanode is started in StatefulSet instead of DaemonSet (To make it possible to scale it up on one node minikube cluster)
3. All the UI pages are published with NodePort services