-
Notifications
You must be signed in to change notification settings - Fork 598
upgrade to Apache Bookkeeper 4.7.3 to fix DistributedLog based stateful storage #3219
Conversation
LGTM. We don't use dlog internally. @jerrypeng do you have time to double check? Thanks! |
Thanks @jerrypeng ~ |
has there been a new heron helm package released since these changes have been made? I would like to use the heron helm charts with apache bookkeeper 4.7.3, but I cant find any updated docs/packages. Just wanted to check before I resorted trying to package it myself. Thanks! |
Not yet. Dmitry is working on stmgr memory management and hopefully it fixes a mem leak. I think we can have another RC after the fix is merged: #3282 |
cool thanks, should i expect that to be put here? https://storage.googleapis.com/heron-charts |
Interesting. I have no idea about that chart. :D @kramasamy @jerrypeng @nlu90 @huijunw any idea? |
its referred to in this doc: https://apache.github.io/incubator-heron/docs/operators/deployment/schedulers/kubernetes-helm/ |
That was Streamlio’s chart repository. I think we will have to do vote for an official release. Otherwise you will have to build from source and create your own distribution. We are in progress of updating the docs now. There is an open PR for the website that has about half of the work done with a checklist of things to do for updating our docs. Feel free to check it out. The PR is here -> #3280 |
If I did want to build the chart myself, can I just replace VERSION with 0.17.8, remove ".template" from the Chart.yaml and values.yaml, put it in a folder called heron and run helm package? or are there more steps? asking because I did that and I'm getting "release heron failed: the server could not find the requested resource", wondering if I'm missing something. Also as a side note, I have rook-ceph set up and was previously using that for my bookkeeper storage. Is there a way in the heron helm chart to change the storage class for the journal-disk and ledger-disk volumeClaimTemplates from default using the values.yaml? I also am on a "bare-metal" install, so im not sure I get the option to use the volumeClaimTemplates at all Thanks again |
I am wondering who is the owner of that file and if there is a log of changes in that file? |
I did adapt the relevant Helm templates in this PR. So, theoretically, you should be able to install the chart from locally. But, the tricky part is that there's no post-0.17.8 official release available in public, which means no heron post-0.17.8 docker image in public. The reason you will need post-0.17.8 Heron docker image is because there're other changes across the code base to migrate to newer Bookkeeper Client dependencies. So, what we did in our deployment is to build heron RC release, push the docker image built to our own Artifactory repository, also push the generated maven artifacts there. Then, in our k8s cluster (we're on-promise), we configure the cluster to include our own Artifactory docker image repo. Then we maintain a slightly different version of Helm chart based on the bare metal flavor of the templates available in this code base, because we're on-promise, and we don't need to care about GKE, AWS. So, our in house helm chart is simplified, but fairly close to the one in the source. |
sorry if this isnt the right place for this discussion at this point. I was working through the issue, I've hit a couple issues looking at the code on master that maybe have been fixed in another branch I dont know about.
So I changed it to minikube and got past that error as a temp fix
my theory, is that the"-" in "{{- $platform" and the one on the other side of ".Values.apiServerMemory -}}" removes all white space between the comments and "apiVersion: v1". The problem, I think, is that this removes so much whitespace that "apiVersion: v1" actually gets commented out, like so: That at least gets me to the point where I can helm install and get new errors |
Added storageClassName: nameOfMyStorageClass directly after each of these lines with the same indentation to use rook-ceph for my storage, ended up needing it for bookie and zookeeper. still using "minikube" as my platform so I get the volumeClaimTemplate stuff.
|
This line was also an issue for me:
This seemed to work better for me: |
sorry again if im spamming this, I just want to keep track of these somewhere. On a somewhat more personal preference note, I don't like using the latest tag so that I can better keep track of what versions of things I'm running. It would be a "nice to have" to let the kubectl image be configurable in the values yaml as well
|
No worries. If you like, feel free to file an issue and we can continue the discussion. agree that "latest" can be tricky. |
netcat (nc) is either not installed or not in the path of the container apache/bookkeeper:4.7.3, so the init container steps below fail: incubator-heron/deploy/kubernetes/helm/templates/bookie.yaml Lines 104 to 120 in 9ffeb39
tried using the section from the minikube bookkeeper, I get "Error not able to create the directory /bookkeeper/data/journal" and "Error formatting journal directory failed" ended up removing that section, that seemed to work |
This line needs to change from org.apache.heron.uploader.dlog.DLUploader to com.twitter.heron.uploader.dlog.DLUploader ( see #2913 (comment)) |
so after those changes, everything comes up healthy with a helm install! I now get an error when i try to submit a example topology where it says "Path length must be > 0". any thoughts? |
Which topology? Maybe be good to start with a basic one, like word count. Another guess might be the config. |
…ul storage (apache#3219) * upgrade to bookkeeper 4.7.3 * update kubernetes deployment manifest files
…ul storage (#3219) * upgrade to bookkeeper 4.7.3 * update kubernetes deployment manifest files
This fixes #3210
apache/bookkeeper:4.7.3
to allowDlogStorage
successfully persist stateful state to bookieorg.apache.distributedlog:distributedlog-core-shaded:4.7.3