-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
presto can't insert data #1122
Comments
I haven't played around with using a ReadWriteMany PVC for metastore storage in a while, but you may want to try updating your hive:
storage:
type: "sharedPVC"
sharedPVC:
claimName: "reporting-operator-pvc"
mountPath: "/mnt/metering/hive-metastore" I can try re-creating your setup later and report back. |
Thank you for replying. I have tried,but it still not work.... |
Hmm okay, you may need to uninstall and then reinstall again as changes made post-installation to any storage configuration typically don't propagate. |
Yeah, When uninstall, I allways clean all the data, include all pv and pvc, and the data in the pvs. |
I think the issue may be related with the presto..... |
The metering-operator pulls container images from that get built from the |
@timflannagan1 could you tell me how to build a new presto with new version of |
I recent built and pushed a more up-to-date Presto image using the 328 version (330 is the most recent, released version) under the export METERING_OPERATOR_IMAGE_REPO=quay.io/tflannag/origin-metering-ansible-operator
export METERING_OPERATOR_IMAGE_TAG=release-328 If you're interested in using that image, you would need to update the apiVersion: metering.openshift.io/v1
kind: MeteringConfig
...
spec:
...
presto:
spec:
image:
repository: quay.io/tflannag/presto
tag: release-328 I haven't really played around with that Presto image yet and I had to remove one of the Presto plugin/connectors (presto-prometheus) to make it build properly, but I assume it should work out-of-the-box. If that doesn't suffice, then in order to emulate this process, I had to pull down the 328 release tag (or whatever applicable release tag) from the upstream prestosql/presto repository. I then had to update the Here is the full diff of that Dockerfile (with same lazy workarounds like hardcoding the presto version instead of using the tflannag@localhost presto [cherry-pick-hive-metastore-s3-fix] git diff Dockerfile.okd
diff --git a/Dockerfile.okd b/Dockerfile.okd
index a35f9a4554..d63571804e 100644
--- a/Dockerfile.okd
+++ b/Dockerfile.okd
@@ -44,7 +44,6 @@ COPY presto-record-decoder /build/presto-record-decoder
COPY presto-tpcds /build/presto-tpcds
COPY presto-plugin-toolkit /build/presto-plugin-toolkit
COPY presto-spi /build/presto-spi
-COPY presto-prometheus /build/presto-prometheus
COPY presto-thrift-testing-server /build/presto-thrift-testing-server
COPY presto-cli /build/presto-cli
COPY presto-hive /build/presto-hive
@@ -75,7 +74,10 @@ COPY presto-kudu /build/presto-kudu
COPY presto-main /build/presto-main
COPY presto-raptor-legacy /build/presto-raptor-legacy
COPY presto-password-authenticators /build/presto-password-authenticators
+COPY presto-memsql /build/presto-memsql
+COPY presto-testing /build/presto-testing
COPY src /build/src
+COPY src/modernizer/violations.xml /build/src/modernized/violations.xml
COPY pom.xml /build/pom.xml
# build presto
@@ -103,7 +105,7 @@ RUN chmod +x /usr/bin/tini
RUN mkdir -p /opt/presto
-ENV PRESTO_VERSION 322
+ENV PRESTO_VERSION 328
ENV PRESTO_HOME /opt/presto/presto-server
ENV PRESTO_CLI /opt/presto/presto-cli
ENV PROMETHEUS_JMX_EXPORTER /opt/jmx_exporter/jmx_exporter.jar
@@ -113,8 +115,8 @@ ENV JAVA_HOME=/etc/alternatives/jre
RUN mkdir -p $PRESTO_HOME
-COPY --from=build /build/presto-server/target/presto-server-$PRESTO_VERSION $PRESTO_HOME
-COPY --from=build /build/presto-cli/target/presto-cli-$PRESTO_VERSION-executable.jar $PRESTO_CLI
+COPY --from=build /build/presto-server/target/presto-server-328 $PRESTO_HOME
+COPY --from=build /build/presto-cli/target/presto-cli-328-executable.jar $PRESTO_CLI
COPY --from=build /build/jmx_prometheus_javaagent.jar $PROMETHEUS_JMX_EXPORTER
tflannag@localhost presto [cherry-pick-hive-metastore-s3-fix] Here's a link to a local branch that highlights the changes I made: timflannagan/presto@5b6e1c2 |
@timflannagan1 Hi, I have used the new image you pushed. But because there is no prometheus connector, it shows the error as below: And I want to ask two question about building presto
Thank you! |
You would also need to override the metering-operator image to use a custom one I also pushed that removed the export METERING_OPERATOR_IMAGE_REPO=quay.io/tflannag/origin-metering-ansible-operator
export METERING_OPERATOR_IMAGE_TAG=release-328
./hack/openshift-install.sh Like I said, I haven't tested that version yet and I don't know how much changes there are between 322 and 328 in terms of the hive connector catalog configuration. At a glance, it looks like there's some changes to the TLS-related properties which may break some things. If that's the case, you may need to disable TLS entirely in the ...
spec:
tls:
enabled: false
...
Nope, that environment variable only controls copying some versioned files from a previous container layer, and you would need to run pull down the upstream (prestosql/presto) release tag and attempt to merge that (e.g.
It's difficult to say, and the main thing should be copying all the new directories from the upstream release tag ( After that, it can be a bit tricky as the maven build can take quite a while and I've found that those error messages aren't as obvious as the docker-related build ones. |
sorry,i missed the operator images,i am tring now, thanks a lot ! |
@timflannagan1 Hi, if i use 328 version operator, the operator return error :
So i think may be i should use another version of operator-metering that earlier than 4.5... or build a new image by myself. I will try these ways later. |
I have tried new version presto(330), use the presto connect to hive server. But got the same error... Because we don't have the object storage like Amazon S3 or Azure. Just some OBS which implement S3 standard by other Manufacturer. Because presto returns the error when i use this kind of OBS, so i switch to file system volume to see what happend. |
After install metering, I check the logs of
reporting-operator
,it shows error:io.prestosql.spi.PrestoException: Failed checking path: file:/user/hive/warehouse/metering.db/datasource_metering_persistentvolumeclaim_request_bytes
Then i try a test. In Hive i create a table and insert data to the table ,it's successful. I check this table from Prosto, i can see it. But when i insert data in it,it return the same error like:
This is my configuration:
I use a local filesystem to create pvc as the Hive storage.
Anyone help, thanks a lot !
The text was updated successfully, but these errors were encountered: