-
Notifications
You must be signed in to change notification settings - Fork 840
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
GLIBC Version #335
Comments
@chibberto it looks like there are a number of issues related to different environments where the native .so (shared object) files from lightgbm don't work. I haven't yet figured out the best way to fix them - maybe I could publish multiple lightgbm packages to maven and somehow conditionally build our mmlspark package against them. |
I'm having the same problem. I tried this on dataproc 1.2.40 (gcp) and EMR 5.14.0 (aws). They both use glibc 2.17. I think having a build against that would make it easier to experiment on at least emr & dataproc |
@chibberto I tried upgrading my cluster manually to GLIBC 2.23 by upgrading |
Hi guys, I have the same problem : on my computer everything is fine as I have glibc 2.23, however on my hadoop/spark cluster I have a glibc 2.17 because of centos 7. Several questions :
Thanks for all this work, and ( I hope ) for answers ;) |
I'm currently trying to build mmlspark on a centos 7 but it does not seem easy ^^ |
@VALEK I don't think that will work - the binary in lightgbm needs to be packaged and rebuilding mmlspark won't change this, otherwise you should be able to use the non-native parts of mmlspark out of the box as they are platform agnostic (the java bits) and you don't need to rebuild it |
Thanks for your answer ! You're right @imatiach-msft in fact I meant I was trying to build cntk on centos 7 so as to be able to run mmlspark, but it does not seem the right / appropriate approach Now I'm trying something else : use a specific LD_LIBRARY_PATH for my yarn jobs with a more recent version of glibc. Do you think this may be a solution @imatiach-msft ? |
Did you get this to work @VALEK? We are running on EMR 5.15.0 and here the glibc library is also stuck at 2.17. I did manage to get the LightGBM package to work on its own on EMR, but when running an EMR step will still use the binary shipped with the PIP plugin, unfortunately. |
@jepma @VALEK @rohanmonga @chibberto one possibility would be to have a flag when running lightgbm to specify the version that was built with one or the other GLIBC, but then this would be difficult to maintain. Another option would be to include the newer version of GLIBC binaries with the lib_lightgbm.so and lib_lightgbm_swig.so, I'm not quite sure how to do this though, specifically, I don't know which binaries are needed. |
I was able to compile lightgbm by hand on the cluster and ship it in a jar with my spark code. It seems to be working for me. |
@rohanmonga Could you share your solution please? I can't solve the problem in my spark cluster. Thank you very much. |
@friyal together with @jepma we achieved something like this by compiling lightgbmlib within an amazonlinux based docker container, then added that new jar as a dependency for mmlspark and also built that ourselves. ** We had to comment a few lines in the build script from mmlspark to package all dependencies in a single jar via the Once the above is done it's just a matter of shipping it with your Spark job code to the cluster. |
@jaraujoduarte @jepma what changes did you make in the build script to get it to work? I've been able to get both lightgbm and mmlspark to compile in a docker container, but I'm having trouble in getting lightgbm jar included in mmlspark fat jar. Thanks! |
@acontry look for |
@jaraujoduarte Thanks that did the trick! Now I'm dealing with "connection refused" errors on my cluster... |
@jaraujoduarte works also for me, thanks mate. |
refer to microsoft/LightGBM#1718 |
@imatiach-msft hello: We are currently running glibc version 2.17, and there is no appetite for our IT dept to upgrade due to support etc. 1:I rebuild the lightgbmlib.jar like below to make a jar named lightgbmlib.jar git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM then I use exclusion to delete the lightgbmlib.jar in the mmlspark
but Now I'm dealing with "connection refused" errors on my cluster... and can not resolved git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM Could you give me some advises that 1 or 2 is the right thing? |
@imatiach-msft My issues have been solved on rhel 7.5 by I'm happy to close the issue if you are. Thanks for all your help - looking forward to using it. |
was this solved in #391? i can not download the "lightgbmlib-2.2.100.jar" by using following option in spark-shell @chibberto would you please advise me ? thank you. |
@ostrich-jin I built using code at bottom of this page : |
@land1725 您那个问题解决了没。这个lightgbm.so 我还是找不到,按照你那个最新的pom配置 |
@imatiach-msft ,hello, i got same error : |
with got @imatiach-msft seems not fixed centos 7 problems. |
解决了
|
Is there any solution? |
@wangwei420625 this should already be fixed in the latest master |
Hi @imatiach-msft , I'm not sure if it's related, but I got |
@sherry0531 can you try latest master instead of v0.17? You can also try the recent but not latest versions suggested here with the fix:
|
Thanks for the quick response! I tried that and I'm now having |
@sherry0531 what OS and version are you using? The required GLIBC is quite old so I'm suprised you don't have at least that version, maybe you can update libc on your machines? eg see here:
|
@imatiach-msft oooh yeah we have glibc 2.12. Will try updating glibc. Thanks a lot! |
Hi, i'm trying to run mmlspark (specifically lightgbm) but am getting the following error with glibc
/lib64/libm.so.6: version `GLIBC_2.23' not found (required by /hdfsdata/yarn/nm/usercache/ultra-job/appcache/application_1529615984505_0659/container_1529615984505_0659_01_000002/tmp/mml-natives4539490715051782423/lib_lightgbm.so)
We are currently running glibc version 2.17, and there is no appetite for our IT dept to upgrade due to support etc.
I was wondering whether :
a) I would be able to build the jars myself, and this would work with an older glibc version?
b) This could be incorporated into the build?
The text was updated successfully, but these errors were encountered: