-
Notifications
You must be signed in to change notification settings - Fork 232
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
support distributed file path in cloud environment #1787
Conversation
Related issue #1640 |
--rootdir not support distribute file path: #1785 |
build |
Signed-off-by: Tim Liu <timl@nvidia.com>
6e6f0bb
to
43488f5
Compare
build |
TEST_JARS=$(echo "$LOCAL_JAR_PATH"/rapids-4-spark-integration-tests*.jar) | ||
UDF_EXAMPLE_JARS=$(echo "$LOCAL_JAR_PATH"/rapids-4-spark-udf-examples*.jar) | ||
## reset SCRIPTPATH to support alternate scripts path on the cloud environment | ||
SCRIPTPATH="$LOCAL_JAR_PATH/integration_tests" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need not RESET SCRIPTPATH, revert this line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But it is not the SCRIPTPATH any longer. SCRIPTPATH is where this script resides and we are finding other things relative to that path. I would prefer to have a new variable like INTEGRATION_TEST_ROOT or something that can be set to SCRIPTPATH in the common case, and then set here to what we want it to be.
@revans2 Could you please help to review? thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition I really think we need to update the document for this script to include LOCAL_JAR_PATH in integration_tests/README.md.
Before this change LOCAL_JAR_PATH was clear, it was the path to set where the dependency jars come from. After this change it looks like we are forcing a very specific directory layout, which needs to be documented very clearly and we need to be sure none of our CI builds are using LOCAL_JAR_PATH differently, or we need to separate out how to set where to find the integration_tests directory from how to find the local jars.
I also am not sure how this fixes the issues you were seeing with the tests finding std_input_path
TEST_JARS=$(echo "$LOCAL_JAR_PATH"/rapids-4-spark-integration-tests*.jar) | ||
UDF_EXAMPLE_JARS=$(echo "$LOCAL_JAR_PATH"/rapids-4-spark-udf-examples*.jar) | ||
## reset SCRIPTPATH to support alternate scripts path on the cloud environment | ||
SCRIPTPATH="$LOCAL_JAR_PATH/integration_tests" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But it is not the SCRIPTPATH any longer. SCRIPTPATH is where this script resides and we are finding other things relative to that path. I would prefer to have a new variable like INTEGRATION_TEST_ROOT or something that can be set to SCRIPTPATH in the common case, and then set here to what we want it to be.
Why was this causing issues where it does not cause issues in other places? It would be good to add a comment explaining this because a few lines below it in the else clause. --> better to add this, though it does not cause error currently. |
Then lets update it in both places so it is consistent |
But it is not the SCRIPTPATH any longer. --> Sorry, here we need NOT to change |
I also am not sure how this fixes the issues you were seeing with the tests finding std_input_path --> As Why it did not work before? --> We only put the |
In addition I really think we need to update the document for this script to include LOCAL_JAR_PATH in integration_tests/README.md. --> Will update README.md |
This code change as it is now look fine, but it has very little to do with the title of this issue.
It also has almost nothing to do with any of the issues/bugs mentioned in this PR
Before approving this I just want to be sure I understand how this fits into those other issues. Will there be follow on work, especially for |
Updated Jenkins scripts to download the latest udf-example jar with
23:49:36 SKIPPED [1] ../../../../../../integration_tests/src/main/python/conftest.py:468: rapids_udf_example_native is not configured to run
PR #1829, retarget to branch-0.5
Yes, for |
Update the document for how to set 'LOCAL_JAR_PATH' |
build |
I really don't like that. How is it less work to keep that data in sync on all of those nodes than it is to have a script to copy it to a distributed file system? Or worse it is not kept in sync and when we change something with the data the tests start to fail. Like I said I think this code is fine as is and if you want to merge it in we can, but I don't like the current plan for the input test files and to fix it I think we will need changes to these scripts. |
I agree with you, the way of syncing the data onto all the nodes' SCRIPTPATH dir is ugly. I'd prefer to sync As the
Seems the extra too ENVs are introduced in the run_pyspark_from_build.sh? |
I am fine with having extra environment variable to help control |
Under cloud environment, overwrite the '--rootdir' param to point to the working directory of each excutor Under cloud environment, overwrite the '--std_input_path' param to point to the distributed file path Signed-off-by: Tim Liu <timl@nvidia.com>
build |
@revans2 Added |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a minor nit
## Under cloud environment, overwrite the '--rootdir' param to point to the working directory of each excutor | ||
LOCAL_ROOTDIR=${LOCAL_ROOTDIR:-"$SCRIPTPATH"} | ||
## Under cloud environment, overwrite the '--std_input_path' param to point to the distributed file path | ||
CLOUD_INPUTPATH=${CLOUD_INPUTPATH:-"$SCRIPTPATH"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: this is not a CLOUD_INPUTPATH in all cases. I think it would be better to just call it INPUT_PATH
i.e.
INPUTPATH=${INPUTPATH:-"$SCRIPTPATH"}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, updated!
Change the var 'CLOUD_INPUTPATH' to 'INPUT_PATH' Signed-off-by: Tim Liu <timl@nvidia.com>
build |
@NvTimLiu could you please upmerge your branch? it looks like some changes to cudf went in and broke backwards compatibility. |
build |
* support distributed file path in cloud environment Signed-off-by: Tim Liu <timl@nvidia.com> * reset SCRIPTPATH to support alternate scripts path on the cloud environment * set PLUGIN_JARS correctly * Update the document for how to set 'LOCAL_JAR_PATH' * Overwrite parameters Under cloud environment, overwrite the '--rootdir' param to point to the working directory of each excutor Under cloud environment, overwrite the '--std_input_path' param to point to the distributed file path Signed-off-by: Tim Liu <timl@nvidia.com> * change to use a more readable var Change the var 'CLOUD_INPUTPATH' to 'INPUT_PATH' Signed-off-by: Tim Liu <timl@nvidia.com>
* support distributed file path in cloud environment Signed-off-by: Tim Liu <timl@nvidia.com> * reset SCRIPTPATH to support alternate scripts path on the cloud environment * set PLUGIN_JARS correctly * Update the document for how to set 'LOCAL_JAR_PATH' * Overwrite parameters Under cloud environment, overwrite the '--rootdir' param to point to the working directory of each excutor Under cloud environment, overwrite the '--std_input_path' param to point to the distributed file path Signed-off-by: Tim Liu <timl@nvidia.com> * change to use a more readable var Change the var 'CLOUD_INPUTPATH' to 'INPUT_PATH' Signed-off-by: Tim Liu <timl@nvidia.com>
LOCAL_JAR_PATH is set in the cloud environment to support alternate local jars NOT building from the source code